plt中subplot综合实战

目录

  • 背景介绍
  • 实战

背景介绍

下面是一份贸易数据(Prod_Trade.xlsx),需要多角度针对2012年数据进行报表分析,需使用subplot分格展示。Prod_Trade的数据结构包括 Date,Order_Class,Sales Transport,Trans_Cost, Region ,Category, Box_Type等字段,下面展示前5条数据

在这里插入图片描述

实战


# 导入第三方模块
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np 
import seaborn as snsplt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False    # 用来显示负号# 读取数据
Prod_Trade = pd.read_excel(r'Prod_Trade.xlsx')
print(Prod_Trade.head())
# 衍生出交易年份和月份字段
Prod_Trade['year'] = Prod_Trade.Date.dt.year
Prod_Trade['month'] = Prod_Trade.Date.dt.month# 设置大图框的长和高
plt.figure(figsize = (12,6))
# 设置第一个子图的布局
ax1 = plt.subplot2grid(shape = (2,3), loc = (0,0))
# 统计2012年各订单等级的数量
Class_Counts = Prod_Trade.Order_Class[Prod_Trade.year == 2012].value_counts()
Class_Percent = Class_Counts/Class_Counts.sum()
# 将饼图设置为圆形(否则有点像椭圆)
ax1.set_aspect(aspect = 'equal')
# 绘制订单等级饼图
ax1.pie(x = Class_Percent.values, labels = Class_Percent.index, autopct = '%.1f%%')
# 添加标题
ax1.set_title('各等级订单比例')# 设置第二个子图的布局
ax2 = plt.subplot2grid(shape = (2,3), loc = (0,1))
# 统计2012年每月销售额
Month_Sales = Prod_Trade[Prod_Trade.year == 2012].groupby(by = 'month').aggregate({'Sales':np.sum})
# 绘制销售额趋势图
Month_Sales.plot(title = '2012年各月销售趋势', ax = ax2, legend = False)
# 删除x轴标签
ax2.set_xlabel('')# 设置第三个子图的布局
ax3 = plt.subplot2grid(shape = (2,3), loc = (0,2), rowspan = 2)
# 绘制各运输方式的成本箱线图
sns.boxplot(x = 'Transport', y = 'Trans_Cost', data = Prod_Trade, ax = ax3)
# 添加标题
ax3.set_title('各运输方式成本分布')
# 删除x轴标签
ax3.set_xlabel('')
# 修改y轴标签
ax3.set_ylabel('运输成本')# 设置第四个子图的布局
ax4 = plt.subplot2grid(shape = (2,3), loc = (1,0), colspan = 2)
# 2012年客单价分布直方图
sns.distplot(Prod_Trade.Sales[Prod_Trade.year == 2012], bins = 40, norm_hist = True, ax = ax4, hist_kws = {'color':'steelblue'}, kde_kws=({'linestyle':'--', 'color':'red'}))
# sns.displot(Prod_Trade.Sales[Prod_Trade.year == 2012], bins=40, kde=True, color="steelblue", line_kws={'color': 'red', 'linestyle': '--'},ax=ax4)
# 添加标题
ax4.set_title('2012年客单价分布图')
# 修改x轴标签
ax4.set_xlabel('销售额')# 调整子图之间的水平间距和高度间距
plt.subplots_adjust(hspace=0.6, wspace=0.3)
# 图形显示
plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/4703.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Matlab 基于声学超表面的深亚波长厚度完美吸收体

传统吸声器的结构厚度与工作波长相当,这在低频范围的实际应用中造成了很大的障碍。我们提出了一种基于超表面的完美吸收器,能够在极低频区域实现声波的全吸收。该超表面具有深亚波长厚度,特征尺寸为k223,由穿孔板和卷曲共面气室组…

linux之网络子系统- 内核接收数据包以及相关实际问题

一、相关实际问题 RingBuffer是什么,为什么会丢包网络相关的硬中断、软中断是什么Linux里的ksoftirqd内核线程是干什么的为什么网卡开启多队列能提升网络性能tcpdump是如何工作的iptable/netfilter是在哪一层实现的tcpdump能否抓到被iptable封禁的包网络接收过程中…

QML项目实战:自定义CheckBox

目录 一.添加模块 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.4 import QtGraphicalEffects 1.15 二.自定义CheckBox 1.CheckBox设置 2.勾选框设置 3.标签部分 4. 状态变化处理 5.文本设置 三.效果 1.当enabled为true 2.当enabled为true 3.当…

centos7快速安装sqlserver2019

1、centos7节点安装sqlserver 1.1 下载官网的yum源 curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo1.2 yum安装sqlserver yum install -y mssql-server1.3 启动sqlserver服务,并配置密码、版…

PMP--入栏需看

文章目录 报名英文报名中文报名 备考第一步第二步 基础实践冲刺题库一模二模三模冲刺必刷分类常考易错 报名 英文报名 PMP–报名 中文报名 备考 第一步 PMP–学习计划 第二步 PMP–备考书籍说明 基础 PMP–知识卡片 PMP–敏捷Scrum PMP–计算–图示 PMP–计算–挣值分…

西门子PLC使用标签与威伦触摸屏通信

plc侧 创建项目,选择plc,并进行相关配置。创建db块db1,创建以下变量。 取消优化块的访问,不然会出错。在Main的OB块中输入以下程序。 将程序写入到plc中,至此,plc方面配置完成。 触摸屏侧 创建项目&…

前端vue3若依框架pnpm run dev启动报错

今天前端vue3若依框架pnpm run dev启动报错信息: > ruoyi3.8.8 dev D:\AYunShe\2024-11-6【无锡出门证】\wuxi-exit-permit-web > vite error when starting dev server: Error: listen EACCES: permission denied 0.0.0.0:80 at Server.setupListenHand…

基本查询【MySQL】

文章目录 基本查询插入时是否更新替换查询指定列查询查询字段为表达式为查询结果指定别名结果去重where条件NULL 的查询 结果排序筛选分页结果UpdateDelete截断表聚合函数分组(group by)having && where 基本查询 建表 mysql> create table Student (-> id int…

Spring:Bean(创建方式,抽象继承,工厂Bean,生命周期)

1,Bean的创建 1.1,调用构造器创建Bean 调用Bean类的无参构造函数来创造对象,因此要求提供无参构造函数。在这种情况下class元素是必须的,值就是Bean对象的实现类。 如果采用设值注入,Spring容器将使用默认的构造器来创…

Docker:镜像构建 DockerFile

Docker:镜像构建 DockerFile 镜像构建docker build DockerfileFROMCOPYENVWORKDIRADDRUNCMDENTRYPOINTUSERARGVOLUME 镜像构建 在Docker官方提供的镜像中,大部分都是基础镜像,他们只提供某个简单的功能,如果想要一个功能更加丰富…

[SICTF Round4] PWN

这PWN题似乎是给我出的,4个一血1个2血。密码又过于简单。逆向太难了又不大会。 Stack fengshui main可以溢出覆盖rbpret所以它每一步都需要移栈。 可用的ROP里没有pop rdi,在4004c0里有错位的01 5d c3 :add DWORD PTR [rbp-0x3d], ebx 并且有对应的p…

Maven详解—(详解Maven,包括Maven依赖管理以及声明周期,Maven仓库、idea集成Maven)

文章目录 Maven详解一.初始Maven1.1 概述1.2 作用 二.Maven模型2.1 概述2.2 构建生命周期/阶段2.3 项目对象模型2.4 依赖管理模型 三.Maven仓库四.Maven安装4.1 下载4.2 安装步骤 五.Idea集成Maven Maven详解 一.初始Maven 1.1 概述 Maven是Apache旗下的一个开源项目&#x…

大腾智能荣获盐田区黄金珠宝产业“产业赋能数字化优选能力伙伴”荣誉

11月2日,盐田区黄金珠宝产业数智化转型促进中心(简称“促进中心”)揭牌仪式圆满举办。盐田区委书记李忠,市工业和信息化局、市市场监督管理局、华为技术有限公司等相关单位、企业负责人共同见证促进中心揭牌启动。 大腾智能也出席…

DevEco在设备上运行hap报错: Error message: The caller is not a system application

这是因为hap的运行权限不够,需增加权限 找到api目录 tools->SDK manager 查看项目使用的api版本 在文件目录下找到api 9,修改如下框中文件内容

2024-11-6----Android 11(全志713m)----- 关于添加 Selinux 权限

需求 节点: /sys/devices/platform/motor0/motor_ctrl上层 APP 使用 JNI 需要对该节点进行 echo 的操作,操作失败。 添加前的验证工作 adb 进去验证下,如下图所示: 发现权限不够。su 以后再操作是OK的,如下图&…

【蓝队技能】【溯源反制】反打红队-CS反打其他

蓝队技能 CS反打&其他 蓝队技能总结前言一、CS批量上线二、利用漏洞(CVE-2022-39197)三、CS的Server端破解四、旁站反制五、蜜罐反制六、邮件钓鱼反制七、其他反制技术 总结 前言 本文深入探讨了溯源反制中针对远程控制工具CobaltStrike的多种策略与…

linux下一个应用是如何被执行的

Linux系统下,一个应用从启动到执行main函数经历了什么: 加载器(loader):用户在终端启动一个程序时候,shell调用execve,执行程序的启动。内核态操作:execve做了以下几个事情&#xf…

cv.dnn.blobFromImage参数详解

例如: image cv.imread(imgs/img.png) blob cv.dnn.blobFromImage(image, scalefactor1.0, size(224, 224), mean(0, 0, 0), swapRBTrue, cropFalse) print("原始图像形状:", image.shape) print("Blob数据形状:", blob.shape)1. image 含义…

vscode 使用prettier格式化代码 在项目中增加.prettierrc文件,代码结尾不加分号,缩进使用两个空格

.prettierrc: {"tabWidth": 2,"useTabs": true,"semi": false,"singleQuote": false,"printWidth": 100,"trailingComma": "none" }

基于Spring Boot和Vue的电子商城系统功能设计

基于Spring Boot和Vue的电子商城系统功能设计 该系统是一个基于Spring Boot和Vue框架的电子商城平台,包含前台商城和后台管理系统。系统功能设计包括用户购物体验和管理员管理功能,支持商品的分类展示、收藏、购物车和订单管理等模块。以下是系统功能的简…