Matplotlib-图形图例不适用于具有多个轴的多个子图

时间:2019-07-02 16:09:34

标签: python matplotlib

f = plt.figure(figsize=(20, 10))
gs = gridspec.GridSpec(4, 2)
ax0 = plt.subplot(gs[0, 0])
ax1 = plt.subplot(gs[0, 1])
ax2 = plt.subplot(gs[1, 1])
ax3 = plt.subplot(gs[1, 0])
ax4 = plt.subplot(gs[2, 0])
ax5 = plt.subplot(gs[2, 1])
ax6 = plt.subplot(gs[3, 1])
ax7 = plt.subplot(gs[3, 0])

axes = [ax0, ax1, ax2, ax3, ax4, ax5, ax6, ax7]
axes_twin = [ax.twinx() for ax in axes]
for param_set in results.keys():
    for i, (ax, ax_twin) in enumerate(zip(axes, axes_twin)):
        t_test_plot = np.random.uniform(low=0.0, high=1.0, size=100)
        i_test_plot = np.random.uniform(low=0.0, high=1000, size=100)
        d_test_plot = np.random.uniform(low=0.0, high=10, size=100)  

        ax.plot(t_test_plot, i_test_plot, color='lightgrey')
        temp = ax_twin.plot(t_test_plot, d_test_plot, label=keys)

上面的代码将生成一个如下所示的图:

enter image description here

我在stackoverflow上进行了搜索,并获得了以下代码来制作图例:

handles, labels = ax_twin.get_legend_handles_labels()
fig.legend(handles, labels, loc='upper center')

但这没有效果。

这就是我想要的。我拍摄了我的剧情的屏幕截图,并从另一个剧情中生成了一个图例,并对其进行了照片购物:

enter image description here

我该怎么做?

0 个答案:

没有答案