如何解决使用matplotlib绘制熊猫数据框列时为空图例
当我绘制数据框的两列时,其中一列包含x值,另一列包含y值,我无法显示图例。这是因为图例调用中包含非句柄。但是我没有弄清楚如何在数据框中创建这些句柄。
plt.figure(num=None,figsize=(15,6),dpi=80,facecolor='w',edgecolor='k')
colordict = {'m':'blue','f':'red'}
plt.scatter(x=df.p_age,y=df.p_weight,c=df.p_gender.apply(lambda x: colordict[x]))
plt.title('Weight distribution per age')
plt.xlabel('Age [months]')
plt.ylabel('individual weight [kg]')
plt.legend(title="Legend Title")
颜色词典colordict
是这样,所以我可以为两种性别使用不同的颜色。这样可行。我想要一个图例,上面有一个蓝色和红色的点,旁边是“男性”,“女性”。
我尝试过:
plt.legend(title="Legend Title",handles=(df.p_age,df.p_weight))
但是那是行不通的,因为不能将手柄做成非连续的。
解决方法
派生自解决方案here。该解决方案反复绘制每个类的图。
fig,ax = plt.subplots()
for gender,color in colordict.items():
scatter = ax.scatter(x=df.p_age,y=df.p_weight,c=color,label=gender)
ax.legend()
plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。