理解fig,ax = plt.subplots()

本文深入解析了matplotlib库中plt.subplots函数的使用方法,包括如何创建单个和多个子图,设置子图的尺寸,以及如何指定默认显示的子图。通过实例展示了不同参数配置下子图的布局变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fig,ax = plt.subplots()等价于:

  1. fig = plt.figure()

  2. ax = fig.add_subplot(1,1,1)

fig, ax = plt.subplots(1,3),其中参数1和3分别代表子图的行数和列数,一共有 1x3 个子图像。函数返回一个figure图像和子图ax的array列表。

fig, ax = plt.subplots(1,3,1),最后一个参数1代表第一个子图。

如果想要设置子图的宽度和高度可以在函数内加入figsize值

fig, ax = plt.subplots(1,3,figsize=(15,7)),这样就会有1行3个15x7大小的子图。

 

### Matplotlib 中 `plt.subplots` 的使用方法 `plt.subplots` 是 Matplotlib 提供的一个便捷函数,用于创建包含单个或多个子图的画布。通过该函数可以轻松定义网格布局中的子图数量及其属性。 #### 基本语法 以下是 `plt.subplots` 的基本语法: ```python fig, axs = plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw) ``` - 参数说明: - `nrows`: 子图的行数,默认为 1。 - `ncols`: 子图的列数,默认为 1。 - `sharex`, `sharey`: 是否共享 x 轴或 y 轴[^1]。 - `squeeze`: 控制返回的对象形状。如果为 True,则当只有一行一列时会简化返回对象;否则始终返回二维数组形式[^2]。 - `subplot_kw`: 字典参数,传递给每个子图实例化时使用的额外关键字参数。 - `gridspec_kw`: 字典参数,控制整个网格布局的行为。 #### 示例代码 以下是一个完整的示例,展示如何使用 `constrained_layout` 和自定义大小来创建多子图: ```python import matplotlib.pyplot as plt # 定义一个具有两行两列的子图,并启用自动布局调整功能 fig, axs = plt.subplots(2, 2, figsize=(8, 6), constrained_layout=True) # 绘制不同数据到各个子图上 axs[0, 0].plot([0, 1, 2], [0, 1, 4]) axs[0, 0].set_title('Plot 1') axs[0, 1].plot([0, 1, 2], [0, 1, 2], 'g--') axs[0, 1].set_title('Plot 2') axs[1, 0].plot([0, 1, 2], [0, 1, 3], 'b-.') axs[1, 0].set_title('Plot 3') axs[1, 1].scatter([0, 1, 2], [0, 1, 5], color='red', marker='o') axs[1, 1].set_title('Scatter Plot') # 显示图像 plt.show() ``` 上述代码中设置了 `figsize` 来指定整体图形的高度和宽度 (单位为英寸),并通过 `constrained_layout=True` 避免标签重叠问题。 #### 自定义高度和宽度 可以通过 `figsize` 参数来自定义生成图表的整体尺寸。例如,在下面的例子中,我们创建了一个较大的绘图区域并绘制单一曲线: ```python fig, ax = plt.subplots(figsize=(10, 5)) # 图形宽10高5 ax.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16], label="Quadratic", linewidth=2.5) ax.set_xlabel("X-axis Label") # X轴标注 ax.set_ylabel("Y-axis Label") # Y轴标注 ax.legend() # 添加图例 plt.show() ``` 此部分展示了如何单独配置某个特定子图以及全局样式设置[^3]。 --- ###
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值