Sim*_*dio 3 python data-visualization matplotlib legend seaborn
我有以下线图,我需要为两条线创建图例。我的问题是我不知道如何将 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()
Run Code Online (Sandbox Code Playgroud)
Jun*_*rat 10
尝试这个:
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()
Run Code Online (Sandbox Code Playgroud)
我没有你的数据,所以我尝试使用我自己的数据:
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
Run Code Online (Sandbox Code Playgroud)
我做到了
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()
Run Code Online (Sandbox Code Playgroud)
它给了我: