首页 > 解决方案 > 如何将条形图的颜色链接到 yticks?

问题描述

我有以下数据名:

在此处输入图像描述

我想为每一年做一个条形图,排序,每个人用一种颜色。我刚得到固定的颜色,像这样:

在此处输入图像描述

在此处输入图像描述

我使用了这段代码:

color = ['red','blue','green','orange']  
for i in range (2007, 2010):
   fig, ax = plt.subplots()
   x = df2.loc[i,].sort_values()
   y = [x.index[0], x.index[1], x.index[2], x.index[3]]
   ax.barh(y,x, color=color)
   plt.title(i)

如何将颜色链接到名称?

标签: pythonmatplotlibchartscolorsbar-chart

解决方案


您可以创建一个将名称链接到颜色的字典,然后在绘图时使用该信息

fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 6))

color = ['red','blue','green','orange']  
colors_dict = {k:v for k,v in zip(df2.columns, color)}

for i, ax in zip(range(2007, 2011), axes.flatten()):
    x = df2.loc[i,].sort_values()
    color = [colors_dict[i] for i in x.index]
    ax.barh(x.index, x, color=color)
    ax.set_title(i)
plt.tight_layout()    

在此处输入图像描述


推荐阅读