我怎样才能在matplotlib中创build一个空白的子图?

我正在matplotlib中制作一组子图(比如说3 x 2),但是我有less于6个数据集。 我怎样才能使剩余的子空间为空?

这个安排看起来像这样:

+----+----+ | 0,0| 0,1| +----+----+ | 1,0| 1,1| +----+----+ | 2,0| 2,1| +----+----+ 

这可能会持续多个页面,但在最后一页,例如,2,1框中的5个数据集将是空的。 不过,我已经宣布这个数字为:

 cfig,ax = plt.subplots(3,2) 

所以在子图2,1的空间中有一个默认的带有刻度和标签的坐标轴。 我怎样才能以编程的方式渲染这个空间,并没有轴?

你总是可以隐藏你不需要的轴。 例如,下面的代码完全转动了第六轴:

 import matplotlib.pyplot as plt hf, ha = plt.subplots(3,2) ha[-1, -1].axis('off') plt.show() 

结果如下图所示:

在这里输入图像说明

或者,查看Matplotlib图中隐藏轴文本问题的接受答案,以获得保持轴但隐藏所有轴装饰(例如刻度标记和标签)的方法。

由于这个问题首先被问到,matplotlib中增加了一个大大改进的subplot接口 。 在这里,您可以创build所需的子图,而不需要隐藏额外的function。 另外,子图可以跨越额外的行或列。

 import pylab as plt ax1 = plt.subplot2grid((3,2),(0, 0)) ax2 = plt.subplot2grid((3,2),(0, 1)) ax3 = plt.subplot2grid((3,2),(1, 0)) ax4 = plt.subplot2grid((3,2),(1, 1)) ax5 = plt.subplot2grid((3,2),(2, 0)) plt.show() 

在这里输入图像说明

当你需要的时候创build子图会是一个select吗?

 import matplotlib matplotlib.use("pdf") import matplotlib.pyplot as plt plt.figure() plt.gcf().add_subplot(421) plt.fill([0,0,1,1],[0,1,1,0]) plt.gcf().add_subplot(422) plt.fill([0,0,1,1],[0,1,1,0]) plt.gcf().add_subplot(423) plt.fill([0,0,1,1],[0,1,1,0]) plt.suptitle("Figure Title") plt.gcf().subplots_adjust(hspace=0.5,wspace=0.5) plt.savefig("outfig") 

也可以使用Axes.set_visible()方法隐藏子图。

 import matplotlib.pyplot as plt import pandas as pd fig = plt.figure() data = pd.read_csv('sampledata.csv') for i in range(0,6): ax = fig.add_subplot(3,2,i+1) ax.plot(range(1,6), data[i]) if i == 5: ax.set_visible(False) 
    Interesting Posts