数据可视化实战(二)

将每个城市在每个月份平均PM2.5绘制成折线图

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('./PM2.5.xlsx')
display(df.head(10))
df.shape #  (161630, 15)
城市年份月份日期小时季节PM2.5露点湿度压强温度风向累计风速降水量累计降水量
0北京20101123129-17.041.01020.0-5.0cv0.890.00.0
1北京2010120148-16.038.01020.0-4.0SE1.790.00.0
2北京2010121159-15.042.01020.0-4.0SE2.680.00.0
3北京2010122181-11.063.51021.0-5.0SE3.570.00.0
4北京2010123138-7.085.01022.0-5.0SE5.360.00.0
5北京2010124109-7.085.01022.0-5.0SE6.250.00.0
6北京2010125105-7.092.01022.0-6.0SE7.140.00.0
7北京2010126124-7.092.01023.0-6.0SE8.930.00.0
8北京2010127120-7.085.01024.0-5.0SE10.720.00.0
9北京2010128132-8.085.01024.0-6.0SE12.510.00.0
# 求PM2.5每个月份均值;根据城市和月份进行分组
df2 = df.groupby(by = ['城市','月份'])[['PM2.5']].mean().round(2)# 数据重塑
df2 = df2.unstack(level = -1)
# 删除最外层列索引PM2.5
df2.columns = df2.columns.droplevel(level=0)
df2
月份123456789101112
城市
上海80.7759.5859.3855.3252.2341.4831.0326.6132.6942.2864.0286.54
北京113.80120.9396.3483.4076.6789.5688.4873.7578.75112.72108.47107.49
广州80.0358.7348.7567.0446.9535.3426.1438.6340.4760.1053.1361.99
成都161.32110.0496.7167.9968.5653.8154.0561.2660.2584.7682.13116.08
沈阳111.04103.1177.3965.5153.8947.8842.2543.9446.7989.03101.67112.61
df2.loc["上海"]
df2.index # Index(['上海', '北京', '广州', '成都', '沈阳'], dtype='object', name='城市')
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['font.size'] = 18months = df2.columns# 创建画布和子图
plt.figure(figsize=(12, 6))# 绘制每个城市在每个月份的折线图
for city in df2.index:
#     print(city, df2.loc[city])plt.plot(months, df2.loc[city], marker='o', label=city)# 设置标题和标签
plt.title('PM2.5 Variation by City and Month')
plt.xlabel('Month')
plt.ylabel('PM2.5')
plt.xticks(months)
plt.grid(True)# 添加图例
plt.legend()# 显示图形
plt.show()

在这里插入图片描述

将每个城市在每个季节最低温度绘制柱状图

df3 = df.groupby(by = ['城市','季节'])[['温度']].min().round(2)
df3 = df3.unstack(level=-1)
df3.columns = df3.columns.droplevel(level=0)
df3 = df3[list('春夏秋冬')]
df3 = df3.loc[['北京','上海','广州','成都','沈阳']]
df3
季节
城市
北京-9.013.0-12.0-19.0
上海-1.017.0-2.0-4.0
广州7.620.56.41.7
成都5.018.05.0-2.0
沈阳-14.010.0-18.0-25.0
fig = plt.figure(figsize=(12,12))
ax = fig.add_subplot(1,1,1)
df3.plot.bar(ax = ax)
plt.grid(color = 'gray',ls = '--')
plt.ylabel('温度')
# 在中文字体下, 默认的负号, 会显示不正常
plt.rcParams['axes.unicode_minus'] = False

在这里插入图片描述

各个城市最大风速随时间变化趋势

import numpy as npfig,axes = plt.subplots(2,2,figsize = (16,12)) # 添加子视图df4 = df.groupby(by = ['城市','年份'])[['累计风速']].max().round(2)
# 数据重塑
df4 = df4.unstack(level = 0)
df4.columns = df4.columns.droplevel(0)
df4 = df4[['北京','上海','广州','沈阳','成都']]# 在第一幅子图上绘制年份与风速
df4.plot(ax = axes[0,0])
axes[0, 0].set_ylabel("风速")df5= df.groupby(by = ['城市','月份'])[['累计风速']].max().round(2)
# 数据重塑
df5 = df5.unstack(level = 0)
df5.columns = df5.columns.droplevel(0)
df5 = df5[['北京','上海','广州','沈阳','成都']]
ax = df5.plot(ax = axes[1,0]) # 子视图索引:第二行,第一列(左下角)# 设置
months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月']
ax.set_xticks(np.arange(1,13)) # 刻度
_ = ax.set_xticklabels(months,rotation = 60)df6 = df.groupby(by = ['城市','季节'])[['累计风速']].max().round(2)
# 数据重塑
df6= df6.unstack(level = 0)
# 调整行索引顺序
df6 = df6.loc[list('春夏秋冬')]
# 删除列索引
df6.columns = df6.columns.droplevel(0)
# 调整列索引顺序
df6 = df6[['北京','上海','广州','沈阳','成都']]
# ax 指定了使用第一行,第二列的子视图:右上角
df6.plot(ax = axes[0,1])df7 = df.groupby(by = ['城市','小时'])[['累计风速']].max().round(2)
# 数据重塑
df7= df7.unstack(level = 0)
df7.columns = df7.columns.droplevel(0)df7 = df7[['北京','上海','广州','沈阳','成都']]# 子视图索引1,1 == 第二行、第二列右下角
ax = df7.plot(ax = axes[1,1])# 设置
_ = ax.set_xticks(np.arange(0,24))# 保存
plt.savefig('./各个城市最大风速随时间变化趋势.png')

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XML语言的学习记录3-解析

学习笔记: 一、 解析XML文档: 1.使用 XMLHttpRequest 对象,将xml文档放入XML DOM对象中: xmlhttpnew XMLHttpRequest(); xmlhttp.open("GET","books.xml",false); xmlhttp.send(); xmlDocxmlhttp.response…

qt+ffmpeg 实现音视频播放(二)之音频播放

一、音频播放流程 1、打开音频文件 通过 avformat_open_input() 打开媒体文件并分配和初始化 AVFormatContext 结构体。 函数原型如下: int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options); 参数说…

visual studio 安装 IronPython

从Nuget管理工具安装IronPython。 用Visual Studio Installer安装“Python开发”工作负荷。 在解决方案窗口,右键项目根目录:添加->新建文件夹(PythonScripts)。 右键PythonScripts:添加->新建项(mai…

Docker的简介及安装

Docker 是什么 Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。诞生于2013年,最 初的发起者是dotCloud公司,后来改名为Docker Inc,专注于Docker 相关技术和产品的开发。Docker 项目目前已经加入了Linux基金会…

Dubbo是什么?请简要描述其主要功能。Dubbo的架构是怎样的?请解释其核心组件及其作用。

Dubbo是什么?请简要描述其主要功能。 Dubbo是一个高性能、轻量级的Java RPC框架,主要用于构建分布式服务系统。它致力于提供高性能和透明化的远程服务调用方案,以及SOA服务治理方案。Dubbo的主要功能包括: 远程调用:D…

【办公类-22-11】周计划系列(5-3)“周计划-03 周计划内容循环修改“ (2024年调整版本)

背景需求: 前文从原来的“新模版”文件夹里提取了周计划主要内容和教案内容。 【办公类-22-10】周计划系列(5-2)“周计划-02源文件docx读取5天“ (2024年调整版本)-CSDN博客文章浏览阅读1.1k次,点赞29次&…

基于消失点的相机自标定

基于消失点的相机自标定 附赠最强自动驾驶学习资料:直达链接 相机是通过透视投影变换来将3D场景转换为2D图像。在射影变换中,平行线相交于一点称之为消失点。本文详细介绍了两种利用消失点特性的标定方法。目的是为根据实际应用和初始条件选择合适的标…

边缘计算+WEB端应用融合:AI行为识别智能监控系统搭建指南 -- 云端系统数据库设计(五)

专栏目录 边缘计算WEB端应用融合:AI行为识别智能监控系统搭建指南 – 整体介绍(一) 边缘计算WEB端应用融合:AI行为识别智能监控系统搭建指南 – 边缘设备图像识别及部署(二) 边缘计算WEB端应用融合&#xf…

【开发】Redis 的理解与数据存储格式

目录 相关传送门 1. NOSQL和关系型数据库比较 2. 主流的NOSQL产品 3. Redis的理解 4. redis数据存储格式 4.1 String 4.2 Hash 4.3 List 4.4 Set 4.5. sorted_set 注:手机端浏览本文章可能会出现 “目录”无法有效展示的情况,请谅解&#xf…

Hive:数据仓库利器

1. 简介 Hive是一个基于Hadoop的开源数据仓库工具,可以用来存储、查询和分析大规模数据。Hive使用SQL-like的HiveQL语言来查询数据,并将其结果存储在Hadoop的文件系统中。 2. 基本概念 介绍 Hive 的核心概念,例如表、分区、桶、HQL 等。 …

Tomcat Session ID---会话保持

简单拓补图 一、负载均衡、反向代理 7-1nginx代理服务器配置 [rootdlnginx ~]#yum install epel-release.noarch -y ###安装额外源[rootdlnginx ~]#yum install nginx -y[rootdlnginx ~]#systemctl start nginx.service[rootdlnginx ~]#systemctl status nginx.service [ro…

Javaweb学习记录(四)分层处理架构-分层解耦

三层架构 程序设计分为下面三层架构,分别为Controller控制层,Service逻辑处理层,Dao数据访问层。这三层各自执行自己所对应的功能,使程序的扩展性和可维护性提高 例如下面我想设计一个分层的程序,实现Controller层&am…

(二)pulsar安装在独立的docker中,python测试

版本: 3.2.x 官网: https://pulsar.apache.org/docs/3.2.x/getting-started-docker/ 安装pulasr服务 拉取镜像 # sudo docker pull apachepulsar/pulsar:3.0.3 sudo docker pull apachepulsar/pulsar:3.2.1运行docker CURRENT_DIR$(cd dirname $0; pwd) BASE_DIR$(cd $(dir…

MidJourney 使用指北

官网:docs.midjourney.com 文档:docs.midjourney.com/docs/quick-… PS:魔法需要订阅使用了 准备工作 一、进入 discord官网 二、下载 Discord App 三、注册Discord账号 创建服务器 登录 discord App,点击添加按钮&#xff…

AJAX——综合案例

1 Bootstrap弹框 功能&#xff1a;不离开当前页面&#xff0c;显示单独内容&#xff0c;供用户操作 步骤&#xff1a; 引入bootstrap.css和bootstrap.js准备弹框标签&#xff0c;确认结构通过自定义属性&#xff0c;控制弹框的显示和隐藏 <!DOCTYPE html> <html la…

详解Java常用排序算法(10种,含演示动画)

Java常用的排序算法有以下几种&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09;选择排序&#xff08;Selection Sort&#xff09;插入排序&#xff08;Insertion Sort&#xff09;希尔排序&#xff08;Shell Sort&#xff09;归并排序&#xff08;Merge Sort&#x…

Android Studio:你的主机中的软件终止了一个已建立的连接

我不喜欢等人也不喜欢被别人等——赤砂之蝎 一、提出问题 二、分析问题 搜索网上的教程尝试解决 1、任务管理器结束adb进程无用 2、电脑没有开启热点排除热点问题 3、校园网切换到热点 4、项目重新解压打开 5、更换国内镜像源 上述方法全部无法解决问题 分析问题原因在于之前A…

Github 2024-03-18 开源项目周报Top15

根据Github Trendings的统计,本周(2024-03-18统计)共有15个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6TypeScript项目2Go项目2JavaScript项目2非开发语言项目1HTML项目1CSS项目1Rust项目1Dart项目1C++项目1Jupyter Notebook项目1Electr…

JVM中对象创建过程

在JVM中对象的创建&#xff0c;我们从一个new指令开始&#xff1a; 这个过程大概图示如下&#xff1a; 虚拟机收到new指令触发。 类加载检查&#xff1a;如果类没有被类加载器加载&#xff0c;则执行类加载流程&#xff08;将class信息加载到JVM的运行时数据区的过程&#xff…

Stable Diffusion + Segment Anything试用

安装 从continue-revolution/sd-webui-segment-anything安装插件分割模型下载后放到这个位置&#xff1a;${sd-webui}/extension/sd-webui-segment-anything/models/sam下&#xff0c;可以下载3个不同大小的模型&#xff0c;从大到小如下&#xff1a;vit_h is 2.56GB, vit_l i…