2

我试图了解 matplotlib 中方法和属性的组织方式。例如,假设我有一个图:

import matplotlib.pyplot as plt
my_fig = plt.imshow(image)

我注意到一些图形属性是通过模块方法设置的,例如:

plt.axis('off')

而其他人则使用对象方法为图形本身设置:

my_fig.set_cmap('hot')

可以以任何一种方式指定图形属性吗?

如何通过调用我的对象上的方法来off打开?axismy_fig

4

2 回答 2

2

这些plt方法是pyplot API的一部分,它旨在为交互使用提供类似 Matlab 的便利(当然似乎受到 Matlab 的很大影响)。但这只是整个matplotlib API的一小部分(更多的是 OOP)。在实践中,我似乎最终自己在 SW 中混合了它们。无论您是通过 pyplot API 还是访问对象,这在很大程度上是一个品味问题。pyplot 当然非常方便,尽管当您想做更复杂/异国情调的事情时,您会发现单独使用 pyplot 可以做的事情是有限的,您至少需要了解完整的 API 的 Axes、Figure、Legend 和 Path 对象更好的。

于 2012-12-05T00:25:04.490 回答
1

Pyplot是使 matplotlib 像 MATLAB 一样工作的命令样式函数的集合,matplotlib.figure.Figure 是面向对象 API 的一部分。

在大多数情况下,您可以像这样通过自身配置图形设置:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
image=mpimg.imread('stinkbug.png')
my_fig = plt.imshow(image)
my_fig.axes.axes.get_xaxis().set_visible(False)
my_fig.axes.axes.get_yaxis().set_visible(False)
plt.show()
enter code here

所需的臭虫.png:

臭虫.png

结果:

屏幕.jpg

于 2012-12-05T00:19:36.420 回答