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