gpt4 book ai didi

python - 图例颜色与 seaborn 不匹配

转载 作者:行者123 更新时间:2023-12-04 04:21:11 33 4
gpt4 key购买 nike

我正在使用 sns.pointplot,因为没有 label 属性,我决定创建我的自定义图例,但我的问题是颜色不匹配。

我的数据框是这样的:

                  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");

它成功创建了一个图例,但是图例中的颜色与线条不匹配。

enter image description here

最佳答案

来自legend guide ,您可以通过使用 matplotlib.lines.Line2D 像这样为每一行创建一个“代理艺术家”来做到这一点

from matplotlib.lines import Line2D

a = Line2D([], [], color=‘blue’, label=‘total’)
b = Line2D([], [], color=‘green’, label=‘deployed_rent’)
c = Line2D([], [], color=‘#BEC647’, label=‘cum_deploy’)
plt.legend(handles=[a, b, c])

这应该会生成一个图例,其中包含三个默认宽度的不同颜色线条及其各自的标签。

关于python - 图例颜色与 seaborn 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59277973/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com