关于 matplotlib 中图和轴的基本问题
basic questions about fig and axes in matplotlib
我是自学python,对matplotlib这个包很迷茫
绘图时,真的有必要使用下面的代码吗?
fig = plt.figure()
我以为代码是定义一个空的canvas,然后我们可以在canvas中添加子图,但我也看到很多情况下没有包含这段代码,plt.plot() 或 plt.subplot() 直接使用。
- ax和axes有什么区别?以前一直以为都是子图变量,后来发现axes在作图时有时作为变量,有时作为参数,例如:
作为变量,从这个post:
fig, axes = plt.subplots(nrows=3, ncols=2, figsize=(12, 8))
作为论据,来自这个post
n = len(fig.axes)
如有任何帮助,我们将不胜感激。
可以在不设置任何变量的情况下进行绘图。示例:
plt.figure()
plt.plot([1, 2], [5, 8])
plt.show()
您必须在某处初始化图形,因此 plt.figure()
。正如您所指出的,您还可以使用 plt.subplots()
:
fig, ax = plt.subplots()
ax.plot([1, 2], [5, 8])
plt.show()
请注意,我们没有设置 ncols
和 nrows
关键字参数。由于两者的默认值都是 1
,我们得到一个轴(这就是我选择变量名称 ax
的原因)。对于 n × 1
或 1 × n
子图,plt.subplots()
返回的第二个变量是 one-dimensional 数组。
fig, axes = plt.subplots(ncols=1, nrows=2)
axes[0].plot([1, 2], [5, 8])
axes[1].plot([2, 3], [9, 3])
对于 m × n
个子图 (m, n > 1
),axes
是一个 two-dimensional 数组。
fig, axes = plt.subplots(ncols=2, nrows=2)
axes[0][0].plot([1, 2], [5, 8])
axes[1][0].plot([2, 3], [9, 3])
axes[0][1].plot([3, 4], [5, 8])
axes[1][1].plot([4, 5], [9, 3])
使用ax
还是axes
作为第二个变量的名称是你自己的选择,但是axes
表示有多个轴,ax
表示只有一个。当然,也有其他构造子图的方式,如your linked post.
我是自学python,对matplotlib这个包很迷茫
绘图时,真的有必要使用下面的代码吗?
fig = plt.figure()
我以为代码是定义一个空的canvas,然后我们可以在canvas中添加子图,但我也看到很多情况下没有包含这段代码,plt.plot() 或 plt.subplot() 直接使用。
- ax和axes有什么区别?以前一直以为都是子图变量,后来发现axes在作图时有时作为变量,有时作为参数,例如:
作为变量,从这个post:
fig, axes = plt.subplots(nrows=3, ncols=2, figsize=(12, 8))
作为论据,来自这个post
n = len(fig.axes)
如有任何帮助,我们将不胜感激。
可以在不设置任何变量的情况下进行绘图。示例:
plt.figure()
plt.plot([1, 2], [5, 8])
plt.show()
您必须在某处初始化图形,因此 plt.figure()
。正如您所指出的,您还可以使用 plt.subplots()
:
fig, ax = plt.subplots()
ax.plot([1, 2], [5, 8])
plt.show()
请注意,我们没有设置 ncols
和 nrows
关键字参数。由于两者的默认值都是 1
,我们得到一个轴(这就是我选择变量名称 ax
的原因)。对于 n × 1
或 1 × n
子图,plt.subplots()
返回的第二个变量是 one-dimensional 数组。
fig, axes = plt.subplots(ncols=1, nrows=2)
axes[0].plot([1, 2], [5, 8])
axes[1].plot([2, 3], [9, 3])
对于 m × n
个子图 (m, n > 1
),axes
是一个 two-dimensional 数组。
fig, axes = plt.subplots(ncols=2, nrows=2)
axes[0][0].plot([1, 2], [5, 8])
axes[1][0].plot([2, 3], [9, 3])
axes[0][1].plot([3, 4], [5, 8])
axes[1][1].plot([4, 5], [9, 3])
使用ax
还是axes
作为第二个变量的名称是你自己的选择,但是axes
表示有多个轴,ax
表示只有一个。当然,也有其他构造子图的方式,如your linked post.