重塑pyplot子图

时间:2016-02-27 15:26:36

标签: python matplotlib jupyter-notebook

我有以下代码:

def plot_yz_over_x_elementwise(zarray):
    for i in range(zarray.shape[1]):
        for j in range(zarray.shape[2]):
            plt.subplot2grid((zarray.shape[1],zarray.shape[2]),(i,j))
            plt.plot(zarray[:,i,j])
            frame = plt.gca()
            frame.axes.get_xaxis().set_ticks([])
            frame.axes.get_yaxis().set_ticks([1,0.5,0])

它采用3D np数组并将其绘制成如下图所示:

enter image description here

这是嵌入在ipython笔记本中的。我需要的是格式化此图形的一些方法,以便轴标签不在彼此之上。我想这意味着要么将它传播到笔记本上......要么在python中的每个单元格内缩小它。我如何做其中一个让这个情节看起来正确?

2 个答案:

答案 0 :(得分:2)

tight_layout可能就是你要找的东西

def plot_yz_over_x_elementwise(zarray):
    for i in range(zarray.shape[1]):
        for j in range(zarray.shape[2]):
            plt.subplot2grid((zarray.shape[1],zarray.shape[2]),(i,j))
            plt.plot(zarray[:,i,j])
            frame = plt.gca()
            frame.axes.get_xaxis().set_ticks([])
            frame.axes.get_yaxis().set_ticks([1,0.5,0])
    plt.tight_layout()

答案 1 :(得分:0)

非常确定这是此question

的副本

底线答案是使用plt.tight_layout