BBr*_*lyn 7 matplotlib seaborn
我正在尝试从 Seaborn 的线图中完全删除图例。2x2 子图中包含三个线图,每个线图的调用方式如下:
g = sns.lineplot(data=df, dashes=False, ax=axs[0,1])
更具体地说,我想删除三个线图中每一个中的图例,然后使用 2x2 图中的第四个区域来显示图例。任何建议表示赞赏!
ber*_*nie 10
您可以删除前三个轴的每个图例,然后使用plt.figlegend()整个图的图例。您可能需要bbox_to_anchor()根据图例中的内容调整参数。(请忽略我的绘图的细节,这些细节仅用于说明目的。)
import seaborn as sns
df = sns.load_dataset('flights')
fig, ax = plt.subplots(2,2)
ax1 = sns.lineplot(x=df['year'],y=df['passengers'],
color='b',dashes=False,label='ax 1 line',ax=ax[0,0])
ax2 = sns.lineplot(x=df['year'],y=df['passengers'],
color='r',dashes=False,label='ax 2 line',ax=ax[0,1])
ax3 = sns.lineplot(x=df['year'],y=df['passengers'],
color='g',dashes=False,label='ax 3 line',ax=ax[1,0])
ax1.get_legend().remove()
ax2.get_legend().remove()
ax3.get_legend().remove()
plt.figlegend(loc='lower right',bbox_to_anchor=(0.85,0.25))
plt.show()
Run Code Online (Sandbox Code Playgroud)
结果: