了解matplotlib:plt,fig,ax(arr)吗?
我并不陌生matplotlib
,我很as愧地承认我一直将它用作尽可能快速,轻松地获得解决方案的工具。因此,我知道如何获取基本图,子图和东西,并且有很多代码会不时地被重用…但是我不具备的“较深知识”
matplotlib
。
最近,我认为我应该更改此设置,并通过一些教程来完成自己的工作。不过,我仍然感到困惑matplotlibs
plt
,fig(ure)
和ax(arr)
。真正的区别是什么?
在大多数情况下,对于某些“快速而肮脏的”绘图,我看到人们使用公正pyplot as
plt
而直接的绘图plt.plot
。由于我经常要绘制多个内容,因此我经常使用f, axarr =
plt.subplots()
…但是大多数情况下,您只会看到放置数据的代码进入axarr
并忽略了这个数字f
。
所以,我的问题是:使用matplotlib的一种干净方法是什么?plt
仅何时使用,用途是什么figure
?子图是否应该仅包含数据?还是对子图内部的样式,清理地块等所有内容有效且良好的做法?
我希望这不是范围广泛的。基本上我是在为plt
<-> fig
<->的真正目的ax(arr)
(以及何时/如何正确使用它们)寻求一些建议。
教程也将受到欢迎。matplotlib文档让我很困惑。当人们搜索真正特定的东西时,例如重新设置图例,使用不同的绘图标记和颜色等等,官方文档确实很精确,但我认为一般信息并不是那么好。太多不同的示例,没有目的的真实解释…看起来或多或少像所有可能的API方法和参数的大清单。
-
pyplot
是matplotlib中的“脚本”级API(它是matplotlib的主要功能)。它允许您使用过程接口来使用matplotlib,方法与使用Matlab时类似。pyplot
所有功能都委托给“当前图形”和“当前轴”的概念(@tacaswell
dixit)。因此,当您使用模块上的可用功能时,将pyplot
绘制到“当前图形”和“当前轴”。如果您想对绘制的位置/内容进行“细粒度”控制,则应使用
Figure
和的实例使用面向对象的APIAxes
。中提供的功能在中
pyplot
具有等效的方法Axes
。从matplotlib的回购解剖图中:
- 该
Figure
是在这个层次结构中的顶级容器。这是绘制所有内容的整体窗口/页面。您可以具有多个独立的图形,并且Figure
可以包含多个轴。
但…
-
大多数绘图发生在
Axes
。轴实际上是我们在其上绘制数据以及与之关联的所有刻度线/标签/等的区域。通常我们会建立一个Axes
与以副区调用(哪个地方Axes
经常网格),所以在大多数情况下,Axes
并且Subplot
是同义的。 -
每个
Axes
都有一个XAxis和YAxis。这些包含刻度,刻度位置,标签等。
如果您想了解情节的解剖结构,则可以访问此链接。
- 该