返回顶部
首页 > 资讯 > 后端开发 > Python >PythonMatplotlib绘制多子图详解
  • 700
分享到

PythonMatplotlib绘制多子图详解

2024-04-02 19:04:59 700人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

通过获取子图的label和线型来合并图例 注意添加label #导入数据(读者可忽略) pre_lp=total_res#组合模型 true=diff1[-pre_day:]#真实值

通过获取子图的label和线型来合并图例

注意添加label

#导入数据(读者可忽略)
pre_lp=total_res#组合模型
true=diff1[-pre_day:]#真实值
pre_ph=results_data["yhat"]#prophet
pre_lstm=reslut#lstm
pre_ari=data_ari['data_pre']#arima
#设置中文字体
rcParams['font.sans-serif'] = 'kaiti'

# 生成一个时间序列 (读者可根据情况进行修改或删除)
time =pd.to_datetime(np.arange(0,21), unit='D',
                    origin=pd.Timestamp('2021-10-19'))
#创建画布
fig=plt.figure(figsize=(20,16))#figsize为画布大小
# 1 
ax1=fig.add_subplot(221)
ax1.plot(time,pre_lp,color='#1bb9f6',marker='^',linestyle='-',label='1')
# ax1.plot(time,true,color='#fd5749',marker='s',linestyle='-',label='true')
ax1.set_title('1',fontsize=15)#设置标题
ax1.set_xlabel('日期/天',fontsize=15)#设置横坐标名称
ax1.set_ylabel('感染人数/人',fontsize=15)#设置纵坐标名称
ax1.xaxis.set_major_fORMatter(mdate.DateFormatter('%m-%d'))#设置横坐标刻度(读者可忽略)
plt.xticks(pd.date_range(time[0],time[-1],freq='D'),rotation=45)#设置横坐标刻度(读者可忽略)

# 2 
ax2=fig.add_subplot(222)
ax2.plot(time,pre_ph,color='#739b06',marker='o',linestyle='-',label='2')
# ax2.plot(time,true,color='#fd5749',marker='s',linestyle='-',label='true')
ax2.set_title('2',fontsize=15)
ax2.set_xlabel('日期/天',fontsize=15)
ax2.set_ylabel('感染人数/人',fontsize=15)
ax2.xaxis.set_major_formatter(mdate.DateFormatter('%m-%d'))
plt.xticks(pd.date_range(time[0],time[-1],freq='D'),rotation=45)
# 3 
ax3=fig.add_subplot(223)
ax3.plot(time,pre_lstm,color='#38d9a9',marker='*',linestyle='-',label='3')
# ax3.plot(time,true,color='#fd5749',marker='s',linestyle='-',label='true')
ax3.set_title('3',fontsize=15)
ax3.set_xlabel('日期/天',fontsize=15)
ax3.set_ylabel('感染人数/人',fontsize=15)
ax3.xaxis.set_major_formatter(mdate.DateFormatter('%m-%d'))
plt.xticks(pd.date_range(time[0],time[-1],freq='D'),rotation=45)

# 4 
ax4=fig.add_subplot(224)
ax4.plot(time,pre_ari,color='#e666ff',marker='x',linestyle='-',label='4')
ax4.plot(time,true,color='#fd5749',marker='s',linestyle='-',label='true')
ax4.set_title('4',fontsize=15)
ax4.set_xlabel('日期/天',fontsize=15)
ax4.set_ylabel('感染人数/人',fontsize=15)
ax4.xaxis.set_major_formatter(mdate.DateFormatter('%m-%d'))
plt.xticks(pd.date_range(time[0],time[-1],freq='D'),rotation=45)

#初始化labels和线型数组
lines=[]
labels=[]
#通过循环获取线型和labels
for ax in fig.axes:
    axLine, axLabel = ax.get_legend_handles_labels()
    lines.extend(axLine)
    labels.extend(axLabel)
#设置图例和调整图例位置
fig.legend(lines, labels,loc='lower center',
           ncol=5,framealpha=False,fontsize=25)

结果如下图

这个时候我们再把原先代码里面的通过循环获取label和线型注释掉,代码如下

#导入数据(读者可忽略)
pre_lp=total_res#组合模型
true=diff1[-pre_day:]#真实值
pre_ph=results_data["yhat"]#prophet
pre_lstm=reslut#lstm
pre_ari=data_ari['data_pre']#arima
#设置中文字体
rcParams['font.sans-serif'] = 'kaiti'

# 生成一个时间序列 (读者可根据情况进行修改或删除)
time =pd.to_datetime(np.arange(0,21), unit='D',
                    origin=pd.Timestamp('2021-10-19'))
#创建画布
fig=plt.figure(figsize=(20,16))#figsize为画布大小
# 1 
ax1=fig.add_subplot(221)
ax1.plot(time,pre_lp,color='#1bb9f6',marker='^',linestyle='-',label='1')
ax1.plot(time,true,color='#fd5749',marker='s',linestyle='-',label='true')
ax1.set_title('1',fontsize=15)#设置标题
ax1.set_xlabel('日期/天',fontsize=15)#设置横坐标名称
ax1.set_ylabel('感染人数/人',fontsize=15)#设置纵坐标名称
ax1.xaxis.set_major_formatter(mdate.DateFormatter('%m-%d'))#设置横坐标刻度(读者可忽略)
plt.xticks(pd.date_range(time[0],time[-1],freq='D'),rotation=45)#设置横坐标刻度(读者可忽略)

# 2 
ax2=fig.add_subplot(222)
ax2.plot(time,pre_ph,color='#739b06',marker='o',linestyle='-',label='2')
ax2.plot(time,true,color='#fd5749',marker='s',linestyle='-',label='true')
ax2.set_title('2',fontsize=15)
ax2.set_xlabel('日期/天',fontsize=15)
ax2.set_ylabel('感染人数/人',fontsize=15)
ax2.xaxis.set_major_formatter(mdate.DateFormatter('%m-%d'))
plt.xticks(pd.date_range(time[0],time[-1],freq='D'),rotation=45)
# 3 
ax3=fig.add_subplot(223)
ax3.plot(time,pre_lstm,color='#38d9a9',marker='*',linestyle='-',label='3')
ax3.plot(time,true,color='#fd5749',marker='s',linestyle='-',label='true')
ax3.set_title('3',fontsize=15)
ax3.set_xlabel('日期/天',fontsize=15)
ax3.set_ylabel('感染人数/人',fontsize=15)
ax3.xaxis.set_major_formatter(mdate.DateFormatter('%m-%d'))
plt.xticks(pd.date_range(time[0],time[-1],freq='D'),rotation=45)

# 4 
ax4=fig.add_subplot(224)
ax4.plot(time,pre_ari,color='#e666ff',marker='x',linestyle='-',label='4')
ax4.plot(time,true,color='#fd5749',marker='s',linestyle='-',label='true')
ax4.set_title('4',fontsize=15)
ax4.set_xlabel('日期/天',fontsize=15)
ax4.set_ylabel('感染人数/人',fontsize=15)
ax4.xaxis.set_major_formatter(mdate.DateFormatter('%m-%d'))
plt.xticks(pd.date_range(time[0],time[-1],freq='D'),rotation=45)

#初始化labels和线型数组
# lines=[]
# labels=[]
#通过循环获取线型和labels
# for ax in fig.axes:
#  	 axLine, axLabel = ax.get_legend_handles_labels()
#    lines.extend(axLine)
#    labels.extend(axLabel)
#设置图例和调整图例位置
fig.legend(lines, labels,loc='lower center',
           ncol=5,framealpha=False,fontsize=25)

结果如下图

调整子图间距

plt.subplots_adjust(wspace=0.4,hspace=0.4)

wspace为子图之间宽间距,hspace为子图之间高间距

对比图如下

设置了间距的图像

没有设置间距的图像

到此这篇关于python Matplotlib绘制多子图详解的文章就介绍到这了,更多相关Python Matplotlib多子图内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: PythonMatplotlib绘制多子图详解

本文链接: https://lsjlt.com/news/139862.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PythonMatplotlib绘制多子图详解
    通过获取子图的label和线型来合并图例 注意添加label #导入数据(读者可忽略) pre_lp=total_res#组合模型 true=diff1[-pre_day:]#真实值...
    99+
    2024-04-02
  • Pythonmatplotlib实现多重图的绘制
    目录Python中插入图片绘制子图绘制1*2的子图绘制2*2的子图绘制不规则子图绘制图中代码from matplotlib import pyplot as plt plt.sty...
    99+
    2024-04-02
  • PythonMatplotlib实现3D绘图详解
    目录第一个三维绘图程序3D散点图3D等高线图3D线框图3D曲面图最初开发的 Matplotlib,仅支持绘制 2d 图形,后来随着版本的不断更新, Matplotlib 在二维绘图的...
    99+
    2024-04-02
  • Pythonmatplotlib动画绘制详情
    目录最最简单的操作Animation类FuncAnimationArtistAnimation动画保存.save()函数最最简单的操作 import numpy as np impo...
    99+
    2024-04-02
  • Python+matplotlib绘制多子图的方法详解
    目录本文速览1、matplotlib.pyplot api 方式添加子图2、面向对象方式添加子图3、matplotlib.pyplot add_subplot方式添加子图4、matp...
    99+
    2024-04-02
  • PythonMatplotlib绘制动画的代码详解
    目录matplotlib 动画人口出生率男女人口总数雨滴matplotlib 动画 我们想制作一个动画,其中正弦和余弦函数在屏幕上逐步绘制。首先需要告诉matplotlib我们想要制...
    99+
    2024-04-02
  • Pythonmatplotlib超详细教程实现图形绘制
    目录前言1. matplotlib.patches概述2. 绘制图形方法3. 绘制图形步骤4. 绘制图形属性设置透明度设置颜色5. 小试牛刀前言 我们前面对matplotlib模块底...
    99+
    2024-04-02
  • Pythonmatplotlib实现散点图的绘制
    目录一、整理数据二、修改点的样式三、呈现半透明的状态四、点呈现多彩的颜色五、让点的大小不一六、侧边呈现颜色卡七、改变集中性一、整理数据 import pandas as pd cn...
    99+
    2024-04-02
  • 基于Pythonmatplotlib库绘制箱线图
    目录1. 关于箱线图 及 plt.boxplot()方法2. 绘制一幅简单的箱线图3. 绘制一幅更精致的图像4. 异常值的标准5. 异常值的输出1. 关于箱线图 及 plt.boxp...
    99+
    2024-04-02
  • Pythonmatplotlib如何绘制各种流线图
    目录前言流线图概述什么是流线图?流线图应用场景获取流线图方法流线图属性设置流线图密度设置流线宽度设置流线颜色设置流线缩放设置流线颜色系绘制流线图步骤小试牛刀总结前言 在Python关...
    99+
    2024-04-02
  • Pythonmatplotlib绘制xkcd动漫风格的图表
    目录XKCDmatplotlib对XKCD风格的支持创建XKCD风格的图表使用中文字体创建XKCD风格的图表1.安装字体2.更新中文字体XKCD xkcd是兰道尔·门罗...
    99+
    2024-04-02
  • Python Matplotlib如何绘制多子图
    这篇文章将为大家详细讲解有关Python Matplotlib如何绘制多子图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通过获取子图的label和线型来合并图例注意添加label#导入数据(读...
    99+
    2023-06-29
  • Python怎么绘制多因子柱状图
    今天小编给大家分享一下Python怎么绘制多因子柱状图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。绘图教程打开Spyder...
    99+
    2023-06-30
  • PythonPyecharts绘制箱线图详解
    本篇博客只是单纯的记录一下自己学习Boxplot,没有过多的解释,官网:》》Boxplot import seaborn as sns import numpy as np impo...
    99+
    2024-04-02
  • Python绘制三维图详解
    利用Python绘制三维图 目标: 绘制图像 z2 = x2 + y2 z^2 = x^2 + y^2 ...
    99+
    2023-09-14
    python numpy 开发语言
  • Python绘制多因子柱状图的实现示例
    目录背景介绍软件介绍绘图教程最后背景介绍 R和Python作为两个开源、且容易上手的数据分析和绘图工具,在科研中应用的比较广泛。 在接下来的日子,我们围绕Python进行绘图和数据分...
    99+
    2024-04-02
  • 利用Matplotlib实现单画布绘制多个子图
    目录Matplotlib实现单画布绘制多个子图Matplotlib绘制多个动态子图总结Matplotlib实现单画布绘制多个子图 最近研究Python数据分析,需要利用Matplot...
    99+
    2023-02-07
    Matplotlib绘制多子图 Matplotlib单画布绘制子图 Matplotlib绘制多个子图
  • Python matplotlib plotly绘制图表详解
    目录一、整理数据二、折线图三、散点图四、饼图五、柱形图六、点图(设置多个go对象)七、2D密度图八、简单3D图一、整理数据 以300部电影作为数据源 import pandas as...
    99+
    2024-04-02
  • Python pyecharts绘制条形图详解
    目录一、简介二、整理数据1、配置主题2、柱状图 Bar - Bar_base_dict_config3、样例数据 Faker.choose()4、滚动条 Bar - Bar_data...
    99+
    2024-04-02
  • Python pyecharts绘制折线图详解
    一、绘制折线图 import seaborn as sns import numpy as np import pandas as pd import matplotlib as m...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作