matplotlib.figure.Figure.add_subplots()和add_axes()返回None而不是轴

时间:2019-06-17 14:05:36

标签: python matplotlib

matplotlib.figure.Figure.add_subplots()doc)应该返回一个轴。

但是,做

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot()
print(ax)

返回None

ax = fig.add_axes()发生了同样的情况

为什么会发生这种情况,如何获得轴手柄?

2 个答案:

答案 0 :(得分:1)

您需要指定要添加的子图,如下所示。在此,111是指1行1列。最后一个索引指定当前子图的索引。

如果有1行和2列,则需要添加两次:121122。现在,121表示1行,2列和第一个子图。同样,122表示1行,2列和第二个子图

ax = fig.add_subplot(111)
print (ax)
# AxesSubplot(0.125,0.125;0.775x0.755)

答案 1 :(得分:1)

您正在参考matplotlib 3.1的文档。在matplotlib 3.1中

ax = fig.add_subplot()

添加一个子图并返回它。

但是,您正在运行早期版本的代码。在matplotlib <3.1中,您需要明确声明子图在网格中的位置

ax = fig.add_subplot(111)

fig.add_axes()是较低级别的函数,它将添加一个轴(而不是网格上的子图),因此它需要一个参数,即轴在图形坐标中的位置