python - 如何使用 matplotlib.pyplot 格式为每一行设置唯一的颜色
问题描述
试图让我制作的图表中的每一行都具有独特的颜色时,我遇到了很多麻烦。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 的颜色变化?谢谢!
解决方案
这不是 errorbar 函数的问题,而是 matplotlib 的默认颜色循环(或更一般地说,属性循环)的问题。查看此链接以获取示例。
为每一行获得不同颜色的最简单方法可能是使用任何预定义的颜色图自己定义它们- 例如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])
推荐阅读
- reactjs - 将参数传递给另一个组件
- ios - 修改 UICollectionView 的单元格大小
- ruby-on-rails - 引用另一个工作表中的单元格时公式中的问题
- c# - 如何对 SSDT 的自定义代码分析程序集进行故障排除
- jquery - 为什么 jquery 动画在 boostrap 中弄乱了我的导航 flexbox 属性?
- apache-nifi - Apache NiFi:节点状态不会从“正在连接”变为“已连接”
- javascript - firestore.onSnapshot 回调函数阻塞渲染进程
- caching - 连续 DNS 缓存
- azure - 创建 2 个公共 IP 并分配给 nics
- python - 存储类方法/静态方法的数据库连接的位置