【问题标题】:How to create a legend for a seaborn lineplot with two separately calculated lines如何使用两条单​​独计算的线为 seaborn 线图创建图例
【发布时间】:2019-09-22 16:46:02
【问题描述】:

我有以下线图,我需要为两条线创建一个图例。 我的问题是我无法弄清楚如何在这两行中使用 legend()。

我想要的是将图例框放在图表之外,其中 rvn 线的“收入”和 bgt 线的“预算”。

我试过了

plt.legend(handles=[bgt, rvn])

plt.legend((bgt, rvn), ('Budget', 'Revenue')),

但他们没有工作。

bgt = sns.lineplot(x= 'release_year', y='budget_adj_avg', data= df_bpr_avg) # blue
rvn = sns.lineplot(x= 'release_year', y='revenue_adj_avg', data= df_bpr_avg);# orange
plt.xlabel("Release year")
plt.ylabel("Amount ($)")
plt.title("Comparison average movies Budget and Revenue per year")
#plt.legend((bgt, rvn), ('Budget', 'Revenue'))
plt.legend(handles=[bgt, rvn])
plt.show()

【问题讨论】:

  • 建议有效吗?
  • 感谢您的完美工作,很抱歉没有加载任何数据。

标签: python matplotlib data-visualization seaborn legend


【解决方案1】:

试试这个:

bgt = sns.lineplot(x= 'release_year', y='budget_adj_avg', data= df_bpr_avg, palette = 'blue', label = 'bgt') 
rvn = sns.lineplot(x= 'release_year', y='revenue_adj_avg', data= df_bpr_avg, palette = 'orange', label = 'rvn')
plt.xlabel("Release year")
plt.ylabel("Amount ($)")
plt.title("Comparison average movies Budget and Revenue per year")
plt.legend()
plt.show()

我没有你的数据,所以我尝试了自己的数据:

    index   size    half
0   0   20          10
1   1   28          14
2   2   38          19
3   3   42          21
4   4   42          21
5   5   42          21
6   6   44          22
7   7   124         62
8   8   176         88
9   9   192         96
10  10  194         97
11  11  216         108
12  12  228         114
13  13  316         158
14  14  318         159
15  15  2048        1024
16  16  2714        1357
17  17  2802        1401
18  18  4128        2064
19  19  4186        2093
20  20  6910        3455
21  21  9313        4656
22  22  10816       5408
23  23  16560       8280
24  24  20704       10352
25  25  34766       17383
26  26  91022       45511

我做到了

sns.lineplot(x = s['index'], y = s['size'], palette = 'blue', label="full")
sns.lineplot(x = s['index'], y = s['half'], palette = 'orange', label="half")
plt.legend()

它给了我:

【讨论】:

  • 谢谢你完美的工作,很抱歉没有加载蚂蚁数据。
猜你喜欢
  • 2019-02-17
  • 2019-09-10
  • 2019-04-05
  • 2021-10-09
  • 2015-09-13
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
相关资源
最近更新 更多