11 matplotlib绘图之Figure和Axes

Figure vs Axes

对象层次结构(object hierarchy.),是Matplotlib概念中一个重要的地方。

下图显示了这种对象层次结构,Figure相当于一张白纸——可称做画布,Axes则是画布中的一块区域。Axes下面又包括了一下绘图较小的对象,如刻度线、图例和文本等。

image-20200830212230126

如下图所示一个Figure中包括两个Axes,每一个Axes又包括不同的曲线。

image-20200830213411295

Matplotlib将其表现为图形解剖,而不是显式的层次结构:

image-20200830213820286

plt.figure() vs plt.axes() vs plt.subplots()

plt.figure()返回Figure实例

plt.axes()返回Axes或其子类

plt.subplots()返回Figure实例和Axes(或一组axes)

在创建一个空白的画布时,建议使用:

fig,ax = plt.subplots()

之后就可以使用ax下面的方法对图像进行调整

plt.xxx vs ax.xxx

plt.plot() → \rightarrow ax.plot()

plt.legend() → \rightarrow ax.legend()

plt.xlabel() → \rightarrow ax.set_xlabel()

plt.ylabel() → \rightarrow ax.set_ylabel()

plt.xlim() → \rightarrow ax.set_xlim()

plt.ylim() → \rightarrow ax.set_ylim()

plt.title() → \rightarrow ax.set_title()

在绘图时,使用ax.set()函数一次性设置完比较好,如:

x = np.linspace(0, 10, 1000)
ax = plt.axes()
ax.plot(x, np.sin(x))
ax.set(xlim=(0, 10), ylim=(-2, 2),
       xlabel='x', ylabel='sin(x)',
       title='A Simple Plot');

在这里插入图片描述

参考链接

[1] matplotlib.pyplot.subplots

[2] matplotlib.pyplot.figure

[3] matplotlib.pyplot.axes

[4] Python Plotting With Matplotlib (Guide)

[5] Simple Line Plots

[6] Matplotlib — Figure & Axes Explained in Detail | Python

[7] matplotlib 先搞明白plt. /ax./ fig再画

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matplotlib是一个Python绘图库,用于制作各种类型的图表,包括线图、柱状图、散点图等。其中,figure、子图和axesMatplotlib中的三个重要概念。 1. figure figureMatplotlib中最顶层的容器,用于存放所有的绘图元素。它可以看作是整个图表的画布,可以设置图表的大小、分辨率和背景颜色等属性。 2. 子图 子图是指在同一个figure中划分出来的不同区域,每个区域可以绘制不同的图表。子图可以通过subplot函数来创建,它接受三个参数,分别表示子图的行数、列数和编号。 例如,以下代码会创建一个2x2的子图,并分别在每个子图中绘制一幅图表: ``` import matplotlib.pyplot as plt # 创建一个2x2的子图 fig, axs = plt.subplots(nrows=2, ncols=2) # 在第一个子图中绘制一幅线图 axs[0, 0].plot([1, 2, 3, 4], [1, 4, 2, 3]) # 在第二个子图中绘制一幅柱状图 axs[0, 1].bar(['A', 'B', 'C', 'D'], [10, 5, 20, 15]) # 在第三个子图中绘制一幅散点图 axs[1, 0].scatter([1, 2, 3, 4], [1, 4, 2, 3]) # 在第四个子图中绘制一幅饼图 axs[1, 1].pie([10, 5, 20, 15], labels=['A', 'B', 'C', 'D']) plt.show() ``` 3. axes axes是指子图中的坐标系,它可以看作是子图中的一个小画板,可以在上面绘制各种图表元素。每个子图中都有一个默认的axes,可以通过gca函数来获取。 例如,在上面的代码中,可以通过以下代码来获取第一个子图的axes: ``` ax = axs[0, 0].gca() ``` 需要注意的是,axes是可以重叠的,即在同一个子图中可以添加多个axes。可以通过add_axes函数来添加一个新的axes。 例如,以下代码会在第一个子图中添加一个新的axes,并在上面绘制一幅散点图: ``` ax = axs[0, 0].add_axes([0.1, 0.1, 0.8, 0.8]) ax.scatter([1, 2, 3, 4], [1, 4, 2, 3]) ``` 综上所述,figure、子图和axesMatplotlib中的三个重要概念,它们分别代表整个图表的画布、划分出来的不同区域和子图中的坐标系。每个概念都有其独特的作用和属性,可以根据需要进行灵活运用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值