图例颜色与seaborn不匹配

han*_*kim 5 python matplotlib seaborn

我正在使用 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");
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

Wil*_*ler 3

图例指南中,您可以通过使用以下命令为每行创建 \xe2\x80\x98proxy Artist\xe2\x80\x99 来完成此操作matplotlib.lines.Line2D如下所示

\n
from matplotlib.lines import Line2D\n\na = Line2D([], [], color=\'blue\', label=\'total\')\nb = Line2D([], [], color=\'green\', label=\'deployed_rent\')\nc = Line2D([], [], color=\'#BEC647\', label=\'cum_deploy\')\nplt.legend(handles=[a, b, c])\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n