【python学习】matplotlib绘制多子图-plt.subplot()函数

该博客介绍了如何使用matplotlib库在Python中创建一个两行两列的多子图,并详细展示了如何为每个子图添加图例,同时通过`plt.tight_layout()`自动调整子图之间的间距,使得整体布局更加美观。示例代码中还演示了如何设置图例、坐标轴刻度、坐标轴名称的样式和大小,以及颜色和标记的定制。

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

绘制比较简单的两行两列图


import matplotlib.pyplot as plt
fig=plt.figure(figsize=(8,8))
plt.rcParams['figure.figsize']=(8,16)
plt.rcParams['savefig.dpi'] = 600 #图片像素
plt.rcParams['figure.dpi'] = 600
x=[1,2,3,4,5]
y=[2,4,6,8,10]
for i in range(0,4,1):
    number=i+1
    plt.subplot(2,2,number)#建立两行两列的子图,number这里利用for循环进行赋值,实质就是指第一幅,第二幅,第三幅,第四幅
    plt.plot(x,y)
plt.show()

在这里插入图片描述

给图形加上图列,并自动调整其位置


import matplotlib.pyplot as plt
fig=plt.figure(figsize=(8,8))
plt.rcParams['figure.figsize']=(8,16)
plt.rcParams['savefig.dpi'] = 600 #图片像素
plt.rcParams['figure.dpi'] = 600
x=[1,2,3,4,5]
y=[2,4,6,8,10]
label_variable=["fig1","fig2","fig3","fig4"]
color_list=['tab:blue','tab:orange','tab:green','red']
font1 = {'family' : 'Arial',
         'weight' : 'normal',
         'size'   : 12,
        }
for i in range(0,4,1):
    number=i+1
    plt.subplot(2,2,number)#建立两行两列的子图,number这里利用for循环进行赋值,实质就是指第一幅,第二幅,第三幅,第四幅
    plt.plot(x,y,linewidth =1,label=label_variable[i],color=color_list[i],marker='o',markersize=3)
    plt.legend(frameon=False,fontsize='large')#添加图例,设置其背景为透明,并设置图例大小,位置选择默认
    plt.xticks(fontsize=12)#设置坐标轴刻度数值显示大小
    plt.yticks(fontsize=12)
    plt.xlabel("x",font1)#添加坐标轴名称
    plt.ylabel("y",font1)
plt.tight_layout()#让子图自动条件相互间距
plt.show()

在这里插入图片描述

plt.subplot2grid是matplotlib库中的一个函数,用于在绘中创建和管理子的网格布局。它接受以下参数: - shape:指定网格的形状,即行数和列数; - location:指定当前子在网格中的位置,即行索引和列索引; - rowspan:指定当前子跨越的行数; - colspan:指定当前子跨越的列数。 通过使用plt.subplot2grid函数,我们可以在绘中划分出具有不同行列跨度的子区域,并在每个子区域上绘制不同的形。例如,可以通过指定colspan和rowspan参数来控制子区域的大小和位置,然后在每个子区域上使用不同的绘函数绘制相应的形。 函数的语法格式如下: plt.subplot2grid(shape, location, rowspan, colspan) 这样,我们就可以根据需要在绘中创建和管理子的网格布局,并绘制出不同的形。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Matplotlib多子图显示2——网格划分](https://download.csdn.net/download/weixin_38502722/13755574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Matplotlib subplot2grid()函数详解](https://blog.csdn.net/ccc369639963/article/details/123003431)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

electrochemjy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值