使用matplotlib,你可以创建图形,管理这个图形的轴(实际上是子图?)但是我不明白为什么以及如何,最后你做plt.show()
来看情节。为什么这不是fig
或ax
对象的方法?模块(plt)如何知道要绘制什么?
import numpy as np
import matplotlib.pyplot as plt
x, y = np.random.randn(2, 100)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y, "ro")
plt.show()
我问这个问题,因为现在,假设你有一个带有方法的类,以便绘制对象中包含的数据。我的问题是我想回归的对象是什么?轴,图或plt?以下方法之一是正确的方法:
def get_plot(self):
""" return plt """
plt.plot(self.data.x, self.data.y)
return plt
def get_plot(self):
""" return fig """
fig = plt.figure()
plt.plot(self.data.x, self.data.y)
return fig
def get_plot(self):
""" return ax """
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(self.data.x, self.data.y)
return ax
最后一个可能是最清晰的,因为您在每一行上都看到了您正在使用的对象。但是如果我得到一个Figure或Axes对象。我怎样才能轻松策划呢?
答案 0 :(得分:1)
plt.show
将显示已创建的所有数据。因此,pyplot
无需“知道”哪一个,因为所有都将被显示。来自文档:
显示一个数字。当使用其pylab模式在ipython中运行时,显示 所有数字并返回ipython提示符。
在非交互模式下,显示所有数字并阻止直到 数字已经关闭
我会亲自返回fig
或ax
,此后您可以对该对象执行其他功能(例如ax.set_xlim
或fig.savefig()
等)。无需返回plt
,因为这是您已导入的pyplot
模块。