mis*_*haF 70 python axes matplotlib subplot
我在matplotlib中制作了一组子图(例如,3 x 2),但我的数据集少于6个.如何将剩余的子图留空?
安排如下:
+----+----+
| 0,0| 0,1|
+----+----+
| 1,0| 1,1|
+----+----+
| 2,0| 2,1|
+----+----+
Run Code Online (Sandbox Code Playgroud)
这可能会持续几页,但在最后一页上,例如,2,1框中的5个数据集将为空.但是,我已将该数字声明为:
cfig,ax = plt.subplots(3,2)
Run Code Online (Sandbox Code Playgroud)
因此,在子图2,1的空间中,存在一组带有刻度和标签的默认轴.如何以编程方式将该空间渲染为空白且没有轴?
Chr*_*ris 114
您可以随时隐藏您不需要的轴.例如,以下代码完全转动第6轴:
import matplotlib.pyplot as plt
hf, ha = plt.subplots(3,2)
ha[-1, -1].axis('off')
plt.show()
Run Code Online (Sandbox Code Playgroud)
并得出如下图:

或者,请参阅matplotlib图中隐藏轴文本的问题的接受答案,以获得保持轴但隐藏所有轴装饰(例如刻度线和标签)的方法.
Hoo*_*ked 25
自问这个问题以来,matplotlib已经添加了一个改进得很好的子图界面.在这里,您可以精确创建所需的子图,而无需隐藏附加内容.此外,子图可以跨越其他行或列.
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()
Run Code Online (Sandbox Code Playgroud)

小智 8
也可以使用 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40687 次 |
| 最近记录: |