首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python可视化将多张图整合到一起(画布)

python可视化将多张图整合到一起(画布)

作者头像
用户11404404
发布2024-12-13 19:44:48
发布2024-12-13 19:44:48
3520
举报
文章被收录于专栏:Edward的专栏Edward的专栏

        这周有点事忙着,没时间重温刚结束的Mathurcup数学建模,这两天也是再看了下,论文还是赶紧挺烂的,但比国赛又有进步(说起国赛又不得不抱怨了,基本其余省份都发了,但江西......哎)。哎,数模就是这样,想起刚接触数模,也是参加了Mathurcup,结果。。。

        咳咳,跑偏了,就这次Mathurcup而言,还是感觉到了有些乏力,毕竟平常也都不会去专门看数模,都是比赛的时候临时学,有些模型、方法还是很生。但熬了这么久,也算学到了点啥,对于我来说,我是敲代码的,思路方面不用我操心,理解他思路就行,但代码方面,我印象很深刻的就是学会了用画布,之前参考优秀论文的时候经常能看见这种图,一张图中有很多子图。类似下面这种:

        其实实现也蛮简单的,下面是一个例子,也是本次Mathurcup的数据处理某个环节,具体注释也给了:

代码语言:javascript
复制
import matplotlib.pyplot as plt
import pandas as pd

i = 1
# 创建包含 8 个子图的图布
fig, axs = plt.subplots(4, 2, figsize=(12, 8))  #可调整
# 因为要为每个子图进行相同的绘图操作,可以使用 flatten() 将其转换为一维数组
axs = axs.flatten()

# 遍历文件夹中的所有文件
for j in range(140,281, 20):
    file_path = f"D:\\OneDrive\\桌面\\2024Mathurcup\\附件二处理后数据\\category{j}.xlsx"
    # 读取文件
    df = pd.read_excel(file_path)
    # 取数据
    x_axis_data = df['日期']
    y_axis_data = df['销量']
    # 后面子图名称
    line_name = f"category{j}"
    axs[i - 1].plot(x_axis_data, y_axis_data, 'b*--', alpha=0.5, linewidth=1, label=line_name)  # 绘制曲线
    axs[i - 1].legend(loc='upper right', bbox_to_anchor=(1.05, 1), borderaxespad=0.)

    # 设置 X 轴刻度
    axs[i - 1].xaxis.set_major_locator(plt.MaxNLocator(nbins=5))
    # 设置x轴、y轴
    axs[i - 1].set_xlabel('日期', fontdict={"family": "KaiTi", "size": 15, "color": "b"})
    axs[i - 1].set_ylabel('销量', fontdict={"family": "KaiTi", "size": 15, "color": "b"})
    i += 1
# 自动调整子图参数,确保子图之间以及子图和标签之间的间距合理,避免重叠,从而使得图像布局更加整洁和美观。
plt.tight_layout()
plt.savefig("D:/picture_1.png")
plt.show()

        运行结果如下,向这种就适合那些数据文件很多的抽样展示:

看啥。没有了,学习去!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档