如何使用两条单​​独计算的线为海洋线图创建图例

时间:2019-05-04 10:31:28

标签: python matplotlib data-visualization seaborn legend

我有下面的线图,我需要为这两条线创建一个图例。 我的问题是我无法弄清楚如何在这两行中使用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()

1 个答案:

答案 0 :(得分: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()

它给了我

enter image description here