《Python机器学习》基础代码2

news2024/11/17 21:46:19

👂 逝年 - 夏小虎 - 单曲 - 网易云音乐

目录

👊Matplotlib综合应用:空气质量监测数据的图形化展示

🌼1,AQI时序变化特点

🌼2,AQI分布特征 + 相关性分析

🌼3,优化图形


👊Matplotlib综合应用:空气质量监测数据的图形化展示

🌼1,AQI时序变化特点

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei'] #解决中文显示乱码问题
plt.rcParams['axes.unicode_minus']=False

data=pd.read_excel('北京市空气质量数据.xlsx')
data=data.replace(0,np.NaN) #数据框函数replace()将0替换为缺失值NaN

plt.figure(figsize=(10,5)) #plt.figure说明图形一般特征, 此处指定宽10, 高5
plt.plot(data['AQI'],color='black',linestyle='-',linewidth='0.5') #plt.plot绘制折线图,并指定颜色等
plt.axhline(y=data['AQI'].mean(),color='red',linestyle='-',linewidth='0.5',label='AQI总平均值') #plt.axhline在参数y指定位置,画平行于横坐标的直线
data['年']=data['日期'].apply(lambda x:x.year)

AQI_mean=data['AQI'].groupby(data['年']).mean().values #分组计算各年AQI平均值
year=['2014年','2015年','2016年','2017年','2018年','2019年'] 
col=['red','blue','green','yellow','purple','brown']
for i in range(6): #for循环绘制多条平行横坐标的直线
    plt.axhline(y=AQI_mean[i],color=col[i],linestyle='--',linewidth='0.5',label=year[i])
    
plt.title('2014至2019年AQI时间序列折线图') #plt.title()标题
plt.xlabel('年份') #plt.xlabel()横坐标
plt.ylabel('AQI') #plt.ylabel()纵坐标
plt.xlim(xmax=len(data), xmin=1) #plt.xlim横坐标范围
plt.ylim(ymax=data['AQI'].max(),ymin=1) #plt.ylim纵坐标范围
plt.yticks([data['AQI'].mean()],['AQI平均值']) #指定刻度上给出标签 
plt.xticks([1,365,365*2,365*3,365*4,365*5],['2014','2015','2016','2017','2018','2019'])
plt.legend(loc='best') #plt.legend()指定位置显示图例
plt.text(x=list(data['AQI']).index(data['AQI'].max()),y=data['AQI'].max()-20,s='空气质量最差日',color='red') #plt.text()指定行列位置显示文字

plt.show() #plt.show()本次绘图结束

🌼2,AQI分布特征 + 相关性分析

本节利用Matplotlib,对空气质量监测数据做如下图形化展示:

  • 线图----年均AQI变化特点
  • 直方图----AQI整体分布特征
  • 散点图----AQI和PM2.5的相关性
  • 饼图----空气质量等级分布特征

具体代码

import warnings #导入warnings模块
warnings.filterwarnings(action='ignore') #忽略警告信息
plt.figure(figsize=(10,5)) #指定宽10, 高5

plt.subplot(2,2,1) #绘图区域分为2行2列共4个单元, 下个图在第1个单元展示
plt.plot(AQI_mean, color='black',linestyle='-',linewidth='0.5') #plt.plot()绘制折线图
plt.title('各年AQI均值折线图')
plt.xticks([0,1,2,3,4,5,6],['2014','2015','2016','2017','2018','2019']) #plt.xticks指定刻度给出标签

plt.subplot(2,2,2) #绘图区域分2行2列共4个单元, 下个图在第2个单元展示
plt.hist(data['AQI'],bins=20) #plt.hist()绘制直方图, 包含20个柱形条, 将数据分成20组
plt.title('AQI直方图')

plt.subplot(2,2,3) 
plt.scatter(data['PM2.5'],data['AQI'],s=0.5,c='green',marker='.') #plt.scatter()绘制散点图,s大小,c颜色,marker形状
plt.title('PM2.5与AQI散点图')
plt.xlabel('PM2.5') #横坐标
plt.ylabel('AQI') #纵坐标

plt.subplot(2,2,4)
tmp=pd.value_counts(data['质量等级'],sort=False) #等同: tmp=data['质量等级'].value_counts()
share=tmp/sum(tmp)
labels=tmp.index
explode=[0,0.2,0,0,0,0.2,0]
plt.pie(share, explode=explode,labels=labels,autopct='%3.1f%%',startangle=180,shadow=True) #plt.pie绘制饼图
plt.title('空气质量整体情况饼图')

效果

据图分析

1,折线图:呈快速下降趋势

2,直方图:呈不对成分布

3,散点图:PM2.5和AQI存在一定程度的正相关

4,饼图:空气良占比最高

🌼3,优化图形

2中的四幅图,出现了重叠现象,下面我们进行优化调整

fig, axes=plt.subplots(nrows=2,ncols=2,figsize=(12,10)) #设置宽高,分成2行2列4个单元,结果赋值给fig和axes对象
#fig设置整个图特征,axes对应每个单元格对象
axes[0,0].plot(AQI_mean,color='black',linestyle='-',linewidth=0.5) #axes[0,0]表示第一行第一列单元格
axes[0,0].set_title('各年AQI均值折线图') #设置标题
axes[0,0].set_xticks([0,1,2,3,4,5,6]) #坐标轴标签
axes[0,0].set_xticklabels(['2014','2015','2016','2017','2018','2019']) #坐标刻度
axes[0,1].hist(data['AQI'],bins=20)
axes[0,1].set_title('AQI直方图')
axes[0,1].scatter(data['PM2.5'],data['AQI'],s=0.5,c='green',marker='.')
axes[1,0].set_title('PM2.5与AQI散点图')
axes[1,0].set_xlabel('PM2.5')
axes[1,0].set_ylabel('AQI')
axes[1,1].pie(share,explode=explode,labels=labels,autopct='%3.1f%%',startangle=180,shadow=True)
axes[1,1].set_title('空气质量整体情况饼图')

fig.subplots_adjust(hspace=0.5) #.subplots_adjust调整各图形单元行和列之间的距离
fig.subplots_adjust(wspace=0.5)

🌼总结

第2章--Python机器学习基础--告一段落,需要说明的是,Scikit-learn是专门面向机器学习的Python第三方包,可支持数据预处理,数据降维,数据的分类和回归建模,聚类,模型评价和选择等各种机器学习建模应用,它后在后续章节讲到

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

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

相关文章

Python实现GWO智能灰狼优化算法优化循环神经网络回归模型(LSTM回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。1.项目背景灰狼优化算法(GWO),由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优…

Linux和Windows环境下配置Redis开机自启动

Linux和Windows环境下配置Redis开机自启动前言Linux服务器上设置开机自启动前置条件配置开机自启动启动的配置文件添加脚本的设置Windows设置开机自启其他简单命令前言 rt,没怎么接触过服务器还要摊上这么档子事,面试的时候也没说要跟服务器打交道啊。。…

【前端】JS异步加载

文章目录为什么要异步加载如何实现异步加载参考为什么要异步加载 两个原因其实是一个意思。 原因1: JS是单线程的语言,它会同步的执行代码,从上往下执行 但是,一旦网络不好,或要加载的js文件过大的话,会…

记一次真实liunx挖矿病毒处理

在一个周末的晚上,收到了群里一个学弟的消息:话不多说开始应急:发现新增用户包括计划任务,包括使用率为百分百的cpu,可以确定是被入侵且植入了挖矿病毒。后门用户:计划任务:top查看进程信息&…

2.27 junit5常用语法

一.了解junitjunit是一个开源的java单元测试框架,java方向使用最广泛的单元测试框架.所需要的依赖<dependencies><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><groupId>org.seleniumhq.selenium&l…

敏捷测试需要遵循的原则

摘要&#xff1a;与传统的阶段性测试不同的是&#xff0c;敏捷测试能够将测试集成到整个软件开发过程中&#xff0c;尽早、及时地发现缺陷&#xff0c;帮助交付有价值的高质量产品。 传统测试与敏捷测试的比较大的区别在于&#xff1a; 在瀑布方法中&#xff0c;测试只能在开发…

400G光模块知识大全

400G光模块是目前高速传输领域中的一种先进产品&#xff0c;被广泛应用于高性能数据中心、通信网络、大规模计算、云计算等领域。本文将从400G光模块的定义、技术、产品型号、应用场景以及未来发展方向进行详细介绍。一、什么是400G光模块&#xff1f;400G光模块是指传输速率达…

PCI子系统

很多网络接口卡都是外围组件互联&#xff08;Peripheral Compaonent Interconnect&#xff09;设备&#xff0c;必须与Linux PCI子系统协同工作&#xff0c;并非所有的网络接口都是PCI设备&#xff0c;很多嵌入式设备的网络接口连接的就不是PCI总线&#xff0c;这些设备的初始化…

学习 Python 之 Pygame 开发魂斗罗(六)

学习 Python 之 Pygame 开发魂斗罗&#xff08;六&#xff09;继续编写魂斗罗1. 创建碰撞类2. 给地图添加碰撞体3. 让人物可以掉下去4. 实现人物向下跳跃5. 完整的代码继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗&#xff08;五&#xff09;中&#xff0c;我…

单例模式之饿汉、懒汉模式

目录 1.单例模式 1.1 饿汉模式 1.2 懒汉模式 1.单例模式 单例模式能保证类在程序中只存在唯一一份实例.这一点在很多场景中都需要,比如JDBC中的DataSource实例就只需要一个. 单例模式具体的是实现方法主要有两种:饿汉模式和懒汉模式. 1.1 饿汉模式 饿汉摸模式是指,在类加…

多模态推荐系统综述

推荐系统(RS)已经成为在线服务不可或缺的工具。它们集成了各种深度学习技术&#xff0c;可以根据标识符和属性信息对用户偏好进行建模。随着短视频、新闻等多媒体服务的出现&#xff0c;在推荐的同时了解这些内容变得至关重要。此外&#xff0c;多模态特征也有助于缓解RS中的数…

我的 System Verilog 学习记录(6)

引言 本文简单介绍 SystemVerilog 语言的 线程。 前文链接&#xff1a; 我的 System Verilog 学习记录&#xff08;1&#xff09; 我的 System Verilog 学习记录&#xff08;2&#xff09; 我的 System Verilog 学习记录&#xff08;3&#xff09; 我的 System Verilog 学…

Redis之数据类型详解分析

文章目录1 Redis1.1 概述1.2 查看内部编码1.3 String字符串1.3.1 简介1.3.2 应用常景1.3.3 String内部编码1.4 Hash散列1.4.1 简介1.4.2 应用常景1.4.3 Hash内部编码1.4.4 rehash和渐进式rehash操作1.4.4.1 过程1.4.4.2 rehash触发条件1.4.5 跟JDK的HashMap的区别1.5 List列表1…

kibana搭建(windowslinux)

1.说明 搭建kibana方便查询es库&#xff0c;本文分别对windows和linux版本进行安装&#xff0c;因为es集群版本是7.4.1&#xff0c;所以配套的kibana也是选择相同版本 2.下载 https://artifacts.elastic.co/downloads/kibana/kibana-7.4.1-windows-x86_64.zip https://artifact…

newbing的注册使用

newbing是一款全新的智能搜索引擎&#xff0c;它可以帮助你快速、准确地找到你想要的信息&#xff0c;还可以与你进行友好、有趣的对话。newbing不仅拥有强大的搜索功能&#xff0c;还具备创造性和逻辑性&#xff0c;可以为你生成诗歌、故事、代码、歌词等各种内容。newbing还可…

FastDDS-1.开始

开始 这一节定义了DDS和RTPS的概念&#xff0c;也提供了一个逐步讲解的教程&#xff0c;这个教程中讲解了如何开发一个简单的FastDDS发布订阅应用程序。 1.1 什么是DDS DDS是一个以数据为中心的通信一些&#xff0c;主要用在分布式软件的通信领域。它定义了应用程序的通信API…

一文搞懂Python时间序列

Python时间序列1. datetime模块1.1 datetime对象1.2 字符串和datatime的相互转换2. 时间序列基础3. 重采样及频率转换4. 时间序列可视化5. 窗口函数5.1 移动窗口函数5.2 指数加权函数5.3 二元移动窗口函数时间序列&#xff08;Time Series&#xff09;是一种重要的结构化数据形…

【一】kubernetes集群部署

一、docker环境搭建 1、移除以前docker相关包 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine2、配置yam源 sudo yum install -y yum-utilssudo yum-config-manager --ad…

原始GAN-pytorch-生成MNIST数据集(代码)

文章目录原始GAN生成MNIST数据集1. Data loading and preparing2. Dataset and Model parameter3. Result save path4. Model define6. Training7. predict原始GAN生成MNIST数据集 原理很简单&#xff0c;可以参考原理部分原始GAN-pytorch-生成MNIST数据集&#xff08;原理&am…

LightningChart .NET 10.4.1 NEW Crack

实时监控&#xff0c;无闪烁或延迟 完整的数据准确性&#xff0c;无需减少数据点 屏幕上的更多数据 更好的图形质量 响应式用户界面。鼠标或触摸屏操作将立即更新图表&#xff0c;并为其他 UI 控件释放处理器时间以继续操作 Visual Studio Marketplace 中最受欢迎的 .NET 图表控…