如何使用 matplotlib 设置所有子图的默认颜色周期?

如何设置用 matplotlib 绘制的图的默认颜色集?我可以像这样设置一个特定的彩色地图

import numpy as np
import matplotlib.pyplot as plt


fig=plt.figure(i)
ax=plt.gca()
colormap = plt.get_cmap('jet')
ax.set_color_cycle([colormap(k) for k in np.linspace(0, 1, 10)])

但是有没有办法为所有的情节,包括次要情节设置相同的颜色?

54733 次浏览

当然! 无论是 在 ABC1文件中指定 axes.color_cycle或设置在运行时使用 matplotlib.rcParamsmatplotlib.rc

后者的一个例子是:

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np


# Set the default color cycle
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "k", "c"])


x = np.linspace(0, 20, 100)


fig, axes = plt.subplots(nrows=2)


for i in range(10):
axes[0].plot(x, i * (x - 10)**2)


for i in range(10):
axes[1].plot(x, i * np.cos(x))


plt.show()

enter image description here

从 matplotlib 1.5开始,不推荐使用 mpl.rcParams [‘ axes.color _ Cycle’]:

import matplotlib as mpl
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "#e94cdc", "0.7"])

在2.1.0版本中,下面的代码对我来说是可以工作的,它使用 set _ prop _ Cycle 和模块循环器

from cycler import cycler
custom_cycler = (cycler(color=['r','b','m','g']))
ax.set_prop_cycle(custom_cycler)

您可以添加额外的行属性

custom_cycler = (cycler(color=['r','b','m','g']) + cycler(lw=[1,1,1,2]))

‘ ax’来自 ax = plt.ax ()或任何轴生成器