【发布时间】:2020-09-15 16:39:11
【问题描述】:
我正在尝试为 matplotlib 中的所有子图制作一个图例。但是,图例根本没有出现,而是在指定位置看到了一个灰色的小方块。下图说明比较好(图右上角):2
代码sn-p:
sns.set(context='notebook')
fig,axs = plt.subplots(2,2, figsize=(7,4))
date_form = DateFormatter("%m-%d")
axs[0,0].plot(time,diag[:,0],color='r')
axs[0,0].plot(time,diag_ctrl[:,0],color='k')
#axs[0,0].set_title('Net heat flux')
axs[0,1].plot(time,diag[:,1],color='r')
axs[0,1].plot(time,diag_ctrl[:,1],color='k')
#axs[0,1].set_title('Sensible heat flux')
axs[1,0].plot(time,diag[:,2],color='r')
axs[1,0].plot(time,diag_ctrl[:,2],color='k')
#axs[1,0].set_title('Latent heat flux')
axs[1,1].plot(time,diag[:,3],color='r')
axs[1,1].plot(time,diag_ctrl[:,3],color='k')
#axs[1,1].set_title('LWR')
for ax in axs.flat:
ax.xaxis.set_major_formatter(date_form)
ax.xaxis.set_major_locator(ticker.AutoLocator())
lines, labels = fig.axes[-1].get_legend_handles_labels()
fig.legend(lines, ('sensitivity','control'), loc = 'upper right')
plt.show()
【问题讨论】:
-
你可以尝试这样做:leg = fig.legend(lines, ('sensitive','control'), loc = 'upper right') leg.set_zorder(10)
标签: python matplotlib legend