我正在使用 seaborn
将多个数据帧绘制为点图。我也在 同一轴上 绘制所有数据帧。
我将如何在情节中添加图例?
我的代码获取每个数据帧并将其一个接一个地绘制在同一个图形上。
每个数据框都有相同的列
date count
2017-01-01 35
2017-01-02 43
2017-01-03 12
2017-01-04 27
我的代码:
f, ax = plt.subplots(1, 1, figsize=figsize)
x_col='date'
y_col = 'count'
sns.pointplot(ax=ax,x=x_col,y=y_col,data=df_1,color='blue')
sns.pointplot(ax=ax,x=x_col,y=y_col,data=df_2,color='green')
sns.pointplot(ax=ax,x=x_col,y=y_col,data=df_3,color='red')
这在同一图上绘制了 3 条线。然而传说不见了。 该文档 不接受 label
参数。
一种可行的解决方法是创建一个新的数据框并使用 hue argument
。
df_1['region'] = 'A'
df_2['region'] = 'B'
df_3['region'] = 'C'
df = pd.concat([df_1,df_2,df_3])
sns.pointplot(ax=ax,x=x_col,y=y_col,data=df,hue='region')
但我想知道是否有一种方法可以为首先向图中添加顺序点图然后添加图例的代码创建图例。
示例输出:
原文由 Spandan Brahmbhatt 发布,翻译遵循 CC BY-SA 4.0 许可协议
我建议不要使用 seaborn
pointplot
进行绘图。这使事情变得不必要地复杂化。而是使用 matplotlib
plot_date
。这允许为绘图设置标签,并使用ax.legend()
自动将它们放入图例中。如果仍然对获取点图的图例感兴趣,可以采用以下方法: