如何为matplotlib/pandas柱状图的第四个柱体单独设置红色
实现柱状图单个柱体自定义颜色的方法
直接向df.plot()的color参数传入单个颜色值时,pandas会默认将该颜色应用到所有柱体,要实现单个柱体改色,只需传入与柱体数量等长的颜色列表,给目标柱体对应位置指定目标颜色,其余位置保留默认颜色即可。
注意柱体索引从0开始计数,需要修改的第四个柱体对应索引为3。
可直接运行的修改后代码
import pandas as pd import matplotlib.pyplot as plt data = { 'type_sale': ['g_1','g_2','g_3','g_4','g_5','g_6','g_7','g_8','g_9','g_10'], 'open':[70,20,24,150,80,90,60,90,20,20], } df = pd.DataFrame(data, columns=['type_sale', 'open']) # 初始化颜色列表,所有柱体先设为pandas柱状图默认蓝色 bar_colors = ['#1f77b4'] * len(df) # 将第四个柱体(索引3)设置为红色 bar_colors[3] = 'red' # 传入自定义颜色列表绘图 df.plot(x='type_sale', kind='bar', title='Bar Graph', color=bar_colors) plt.show()
补充说明
- 颜色列表支持传入matplotlib兼容的所有颜色格式:包括命名颜色(如
red/blue)、十六进制色值、RGB/RGBA元组等,可以按需调整其他柱体的颜色。 - 如果需要修改其他位置的柱体颜色,只需修改颜色列表对应索引位置的色值即可,例如修改第一个柱体就调整
bar_colors[0],修改最后一个柱体就调整bar_colors[-1]。
内容的提问来源于stack exchange,提问作者silent_hunter
相关产品推荐
相关产品推荐

