【发布时间】:2019-06-12 12:59:35
【问题描述】:
我正在尝试在两个图上绘制熊猫数据框。一个带有 matplotlib pyplot 饼图,另一个带有 seaborn barchart。在每个图表上,我对数据框进行了排序,但基于不同的列。此外,每个图表都代表数据帧排序所依据的相应值。因此,两个图表中的行顺序是不同的。这样,数据框中的相同索引(或类别)在图表上以不同的颜色出现,令人困惑。如何解决此问题,以便在不同图表上使用相同颜色的索引?
我的代码:
df = pd.DataFrame({"Total":totals,"Infected": infected},
index=category).sort_values("Total", ascending=False)
fig, ax = plt.subplots(ncols=2, nrows=1,figsize=(20,8))
#creating a pie chart with conditional explode option
threshold = new_train.shape[0]*threshold
if explode==-1:
ax[0].pie(df[df["Total"]>threshold]["Total"],
labels=df[df["Total"]>threshold].index.values,
autopct='%1.1f%%',shadow=False, startangle=rotation,
textprops={'fontsize': 15})
else:
ax[0].pie(df[df["Total"]>threshold]["Total"],
labels=df[df["Total"]>threshold].index.values,
autopct='%1.1f%%',shadow=False, startangle=rotation,
textprops={'fontsize': 15}, explode=explode)
ax[0].axis('equal')
ax[0].set_title(col_name)
#created a sorted bar chart
newdf = df[df["Total"]>threshold]
newdf.sort_values("Infected", ascending=False, inplace=True)
ax[1].set_xticklabels(category,rotation=45, horizontalalignment='right')
ax[1].set_title('Infected fractions')
ax[1] = sns.barplot(x=newdf.index, y="Infected",data=newdf,
order=newdf.index)#, orient='h')
plt.show()
例如,1.1.15200.1 在饼图中为蓝色,但在条形图中为橙色。
【问题讨论】:
标签: python matplotlib bar-chart seaborn pie-chart