【问题标题】:How to set the default color cycle for all subplots with matplotlib?如何使用 matplotlib 为所有子图设置默认颜色循环?
【发布时间】:2012-03-12 23:12:02
【问题描述】:

如何为使用 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)])

但是有什么方法可以为所有图(包括子图)设置相同的颜色集?

【问题讨论】:

标签: python matplotlib colors


【解决方案1】:

当然! specify axes.color_cycle in your .matplotlibrc file 或在运行时使用 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()

【讨论】:

  • 对于那些想要更多颜色的人:mpl.rcParams['axes.color_cycle'] = ['blue', 'green', 'red', 'cyan', 'magenta', 'yellow' , '黑色', '紫色', '粉色', '棕色', '橙色', '蓝绿色', '珊瑚色', '浅蓝色', '青柠色', '薰衣草色', '绿松石色', '深绿色', '棕褐色, '三文鱼', '黄金']
  • axes.color_cycle is not a valid rc parameter
  • @LudoSchmidt 我刚刚花了大约 4 个小时来处理颜色循环。但你的清单更好。干得好。
  • 如何在不重启内核的情况下将其设置回默认值?我的意思是,假设我只是运行mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "k", "c"]) 并绘制一堆图。现在我想恢复默认的 matplotlib 颜色并绘制另一组图。我该怎么做?
【解决方案2】:

从 matplotlib 1.5 开始,不推荐使用 mpl.rcParams['axes.color_cycle']。你应该使用 axes.prop_cycle:

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

【讨论】:

    【解决方案3】:

    在 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.axes() 或任何轴生成器

    【讨论】:

    • 这是第三方模块吗?
    • 我不这么认为。在我的记忆中,它包含在 matplotlib 中。
    猜你喜欢
    • 1970-01-01
    • 2016-01-16
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多