Python 根据数据框中的列值对直方图进行着色

Python 根据数据框中的列值对直方图进行着色,python,pandas,matplotlib,plot,Python,Pandas,Matplotlib,Plot,我有以下代码用于显示芝加哥特定地区特定类型(如毒品、电池等)的犯罪数量直方图 df = pd.DataFrame(columns = ["ward", "count", "primary_type"]) for name, group in groups: df = df.append({ "ward" : name, "count": group['Primary Type'].value_counts().nla

我有以下代码用于显示芝加哥特定地区特定类型(如毒品、电池等)的犯罪数量直方图

df = pd.DataFrame(columns = ["ward", "count", "primary_type"])

for name, group in groups:

  df = df.append({
                  "ward" : name,
                  "count": group['Primary Type'].value_counts().nlargest(n=1)[0],
                  "primary_type":(group['Primary Type'].value_counts().nlargest(n=1).keys()[0]
                                  )}, ignore_index=True)



df = df.set_index("ward")

ax = df.plot.bar(rot=0, width=0.75, figsize=(10, 5))
ax.set_xlabel('', fontsize=16)
ax.set_ylabel('Incidents', fontsize=16)

我想做的是根据直方图的
primary\u类型
值,将直方图的条涂成特定的颜色

      count primary_type
ward                    
1.0    9920        THEFT
2.0   18439        THEFT
3.0    7822      BATTERY
4.0    6959        THEFT
5.0    6535      BATTERY
6.0    9294      BATTERY
7.0    8480      BATTERY
8.0    8066      BATTERY
9.0    7847      BATTERY
10.0   4831      BATTERY
假设df=

    ward    count   primary_type
1   1.0     9920    THEFT
2   2.0    18439    THEFT
3   3.0    7822     BATTERY
4   4.0    6959     THEFT
.
.
然后,您可以根据“primart类型”对它们进行分组,并为每个组绘制条形图,如下所示

fig, ax = plt.subplots()
for group_name, group in df.groupby('primary_type'):
    ax.bar(x = group['ward'], height = group['count'], label = group_name)
plt.legend()  
导致


如果没有任何示例数据,很难提供帮助,但是
df.plot()
有一个名为
colormap
的参数,可以与
matplotlib.colors.LinearSegmentedColormap
@Yo Chris应该早些时候包含它,谢谢。我已经更新了问题,很乐意帮忙。如果这回答了您的问题,请将其标记为“已接受”谢谢。