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

如何为DataFrame柱状图的柱子设置不同颜色?

给Pandas柱状图的每个柱子设置不同颜色

当然可以实现!你只需要在df.plot()方法里指定color参数,传入一个和数据行数量对应的颜色列表就行,列表里的颜色会按顺序对应每一行的柱子。

直接指定每个柱子的颜色

比如你想让John是红色、Mary是橙色,剩下的可以自定义其他颜色,代码修改如下:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({
 'name':['john','mary','peter','jeff','bill','lisa','jose'],
 'age':[23,78,22,19,45,33,20],
 'gender':['M','F','M','M','M','F','M'],
 'state':['california','dc','california','dc','california','texas','texas'],
 'num_children':[2,0,0,3,2,1,4],
 'num_pets':[5,1,0,5,2,2,3]
})

# 定义每个柱子对应的颜色,顺序和df里的name顺序一致
colors = ['red', 'orange', 'blue', 'green', 'purple', 'pink', 'brown']

# 绘制柱状图时传入color参数
df.plot(kind='bar', x='name', y='age', color=colors)
plt.show()

进阶:根据列值动态设置颜色

如果想根据数据里的其他列(比如gender)来自动分配颜色,也可以这样做:

# 定义性别对应的颜色映射
color_map = {'M': 'blue', 'F': 'pink'}
# 根据gender列生成颜色列表
dynamic_colors = df['gender'].map(color_map)

df.plot(kind='bar', x='name', y='age', color=dynamic_colors)
plt.show()

这样就能轻松实现每个柱子颜色不同的效果啦!

内容的提问来源于stack exchange,提问作者Lewis.H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 11:47:48