我使用的是sns.pointplot,由于没有label
属性,我决定创建自己的自定义图例,但问题是颜色不匹配。
我的 Dataframe 看起来像这样:
deploy deployed_today_rent total_rent cum_deploy hourly percent cum_percent
10min
2019-10-01 05:30:00 6 0 0 6 0.000000 0.000000
2019-10-01 05:40:00 0 0 0 6 0.000000 0.000000
2019-10-01 05:50:00 6 0 0 12 0.000000 0.000000
2019-10-01 06:00:00 13 0 0 25 0.000000 0.000000
2019-10-01 06:10:00 0 0 0 25 0.000000 0.000000
2019-10-01 06:20:00 0 1 1 25 0.040000 0.040000
2019-10-01 06:30:00 0 0 0 25 0.000000 0.040000
2019-10-01 06:40:00 0 1 1 25 0.040000 0.080000
2019-10-01 06:50:00 1 1 1 26 0.038462 0.118462
fig,(ax1)= plt.subplots(nrows=1)
fig.set_size_inches(22,17)
sns.pointplot(data=test, x=test.index, y="total_rent", ax=ax1,color="blue", label="total")
sns.pointplot(data=test, x=test.index, y="deployed_today_rent", ax=ax1, color="green", label="deployed_rent")
sns.pointplot(data=test, x=test.index, y="cum_deploy", ax=ax1, color="#BEC647", label="cum_deploy")
ax1.legend(labels=["total", "deployed_rent", "cum_deploy"], fontsize=15)
plt.savefig("test.png", dpi=300, bbox_inches="tight");
它成功创建了图例,但图例中的颜色与线条不匹配。
1条答案
按热度按时间roejwanj1#
在图例指南中,您可以使用
matplotlib.lines.Line2D
为每条线创建一个“代理艺术家”,如下所示这将生成一个图例,其中包含三条不同颜色的默认宽度的线以及它们各自的标签。