【问题标题】:How to set unique colors for each line using matplotlib.pyplot format如何使用 matplotlib.pyplot 格式为每一行设置唯一的颜色
【发布时间】:2020-04-30 01:36:08
【问题描述】:
我在尝试为我制作的图表中的每条线赋予独特的颜色时遇到了很多麻烦。 Matplotlib.pyplot 函数plt.errorbar() 似乎在 10 种颜色之间循环并重复。我的绘图是使用 for 循环生成的,其中包含来自数据框索引的静态 x 和来自数据框列的多个 y:
fig = plt.figure()
for col in df_avg_diff.columns:
plt.errorbar(x=df_avg_diff.index, y=df_avg_diff[col])
plt.show()
如何更改此代码以包含每个 y 的颜色变化?谢谢!
【问题讨论】:
标签:
python
matplotlib
jupyter-notebook
【解决方案1】:
这不是 errorbar 函数的问题,而是 matplotlib 的默认颜色循环(或更一般地说,属性循环)的问题。以this link 为例。
为每一行获得不同颜色的最简单方法可能是自己定义它们,使用任何预定义的colormaps - 例如jet:
colors = plt.cm.jet(np.linspace(0, 1, n_columns))
这会将颜色图范围划分为您需要的颜色数量。然后,您可以将默认属性循环器更改为新创建的循环器,或者简单地为每一行传递颜色代码:
for i, col in enumerate(df_avg_diff.columns):
plt.errorbar(x=df_avg_diff.index, y=df_avg_diff[col], color=colors[i])