Matplotlib 在不更改默认值的情况下为一个轴对象设置颜色图

Matplotlib set colormap for one axes object without changing default

如何将一个 matplotlib.pyplot.axes 对象(或图形)的颜色循环器设置为预定义的彩色图,而不像 plt.set_cmap 那样更改默认值?

假设我想在一个图中使用 'tab20' 颜色图,使用以下代码:

from matplotlib import pyplot as plt
fig, ax = plt.subplots()
# something like ax.set_cmap('tab20')
ax.scatter([1,2,3],[2,1,3])
ax.scatter([1,2,3],[3,2,1])

我找到了一个解决方案,下面的方法可以解决问题:

from matplotlib import pyplot as plt
from cycler import cycler
import numpy as np

fig, ax = plt.subplots()
ax.set_prop_cycle(cycler('color', plt.cm.tab20.colors))
ax.scatter([1,2,3],[2,1,3])
ax.scatter([1,2,3],[3,2,1])

它使用颜色图中的颜色创建颜色循环并将其分配给坐标区对象。