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应该早些时候包含它,谢谢。我已经更新了问题,很乐意帮忙。如果这回答了您的问题,请将其标记为“已接受”谢谢。