关于带有GridSpec的子图的问题

时间:2019-01-07 06:17:58

标签: python matplotlib

import matplotlib.gridspec as gridspec

plt.figure()
gspec = gridspec.GridSpec(3, 3)

top_histogram = plt.subplot(gspec[0, 1:])
side_histogram = plt.subplot(gspec[1:, 0])
lower_right = plt.subplot(gspec[1:, 1:])

X = np.random.random(size=10000)
Y = np.random.normal(loc=0.0, scale=1.0, size=10000)

lower_right.scatter(X, Y)
top_histogram.hist(X, bins=100)
s=side_histogram.hist(Y, bins=100, orientation='horizontal')

我的问题是: 为什么我们需要在此代码的最后一行添加s=

我尝试删除s=,子图看起来没有什么不同,但是输出将打印一个数组。

有人可以告诉我吗 (1) 数组是什么意思? (2) 为什么我们不需要将变量分配给lower_right子图和top_histogram子图?

1 个答案:

答案 0 :(得分:0)

您正在使用Juypter / IPython编码环境。在这样的环境中,最后一行代码的返回被打印出来。例如。如果键入5*3,将打印返回15

ax.hist的输出是直方图值以及使用的bin。那就是你在笔记本上看到的。

如果将结果分配给变量,则该分配没有返回值,s = 5*3将不会打印任何内容。相应地,不会打印直方图的值。

不打印值的另一种选择是在行;的末尾使用分号(5*3;)。

enter image description here