You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用列表为Matplotlib柱状图着色时遇到错误

解决Matplotlib柱状图颜色列表长度不匹配的问题

我来帮你搞定这个颜色报错的问题!你遇到的核心矛盾很明确:你生成了16种颜色对应16组实验,但df.A有48个数据点(16组×3次重复),Matplotlib的bar()方法要求每个柱子对应一个颜色值,长度不匹配自然会报错。

解决方案:扩展颜色列表匹配柱子数量

结合你的实验分组逻辑,最合理的做法是让每组的3个重复柱子使用同一种颜色。我们可以用np.repeat()把16种基础颜色各自重复3次,生成刚好对应48个柱子的颜色列表。

修改后的完整代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 生成示例数据
df = pd.DataFrame(np.abs(np.random.randn(48, 4)), columns=list("ABCD"))
# 生成16种基础颜色,再扩展为48个(每组颜色重复3次)
color_list = plt.cm.gnuplot(np.linspace(0,1,16))
expanded_colors = np.repeat(color_list, 3, axis=0)

# 绘制柱状图,使用扩展后的颜色列表
df.A.plot.bar(figsize=(16,7), color=expanded_colors)
# 保留你原来的分组分隔线
plt.axvline(15.5, c="black", lw=1)
plt.axvline(31.5, c="black", lw=1)
plt.show()

补充说明

  • 如果你后续调整了每组的重复次数,只需要修改np.repeat()的第二个参数(比如每组重复5次就改成5)就能快速适配。
  • 要是你想给同组的重复柱子加细微颜色渐变,也可以基于基础颜色做亮度/饱和度微调,但同组同色是最清晰的实验结果展示方式。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:28:17