可视化-实验四- seaborn工具包绘图基础及关系

一、任务一

1.1 开发环境

多种选择方案(大家根据自己的编程习惯,选择适合自己的工具),老师授课如下:Anaconda3+Jupter

1.2 特殊包

导入工具包设置中文显示:

import matplotlib.pyplot as plt

import pandas as pd

import seaborn as sns

sns.set_style('whitegrid', {'font.sans-serif':['simhei', 'Arial']})

6.1.3 验证性实验

1、利用set_style函数设置样式为"white",验证以下代码,并将结果附截图。

sns.set_style(style="white",rc={'font.sans-serif':['simhei', 'Arial']})

#设置风格,代替中文设置

hr = pd.read_csv(r'第4章/data/hr.csv', encoding='gbk')#hr.csv文件已经上传

hr.head(10)

#  加载数据

data = hr.head(100)#15000数据量取100个

# 使用Matplotlib库绘图

color_map = dict(zip(data['薪资'].unique(), ['b', 'y', 'r']))#薪资低中高映射于3种颜色

#按低中高分组绘制散点图

plt.figure(figsize=(15, 8))

for species, group in data.groupby('薪资'):

    plt.scatter(group['每月平均工作小时数(小时)'],group['满意度'],color=color_map[species], alpha=0.4,edgecolors=None, label=species)

plt.legend(frameon=True, title='薪资')#label=species中低高图例标签

plt.xlabel('平均每个月工作时长(小时)')

plt.ylabel('满意度水平')

plt.title('满意度水平与平均每个月工作小时')

plt.show()

2、验证以下代码,体会'muted'调色板效果,并将结果附截图

plt.figure(figsize=(15, 8))

sns.scatterplot(x='每月平均工作小时数(小时)',y='满意度', data=data, hue='薪资',size='工龄(年)',palette='muted',style='薪资')

#设置hue和size,颜色palette='muted',点按style='薪资'显示

plt.xlabel('平均每个月工作时长(小时)')

plt.ylabel('满意度水平')

plt.title('满意度水平与平均每个月工作小时')

plt.show()

3、验证以下代码,体会color_palette函数设置调色板,体会bright调色板效果,并将结果附截图。

plt.figure(figsize=(15, 8))

pal_hex=sns.color_palette("bright",3).as_hex()#获得颜色16进制码

#markers = {'低' : 'o', '中' : 'D', '高' : 's'}

sns.scatterplot(x='每月平均工作小时数(小时)',y='满意度', data=data, hue='薪资',size='薪资',sizes=(200,50),palette=pal_hex)

plt.xlabel('平均每个月工作时长(小时)')

plt.ylabel('满意度水平')

plt.title('满意度水平与平均每个月工作小时')

plt.show()

 

4、验证以下代码,体会color_palette函数设置调色板,体会dark调色板效果,并将结果附截图。

plt.figure(figsize=(15, 8))

pal_hex=sns.color_palette("dark",3).as_hex()#获得颜色16进制码

#markers = {'低' : 'o', '中' : 'D', '高' : 's'}

sns.scatterplot(x='每月平均工作小时数(小时)',y='满意度', data=data, hue='薪资',size='薪资',sizes=(200,50),palette=pal_hex)

plt.xlabel('平均每个月工作时长(小时)')

plt.ylabel('满意度水平')

plt.title('满意度水平与平均每个月工作小时')

plt.show()

 

5、验证以下代码,体会元素缩放效果,并将结果附截图。

sns.set()

x = np.arange(1, 10, 2)

y1 = x + 1

y2 = x + 3

y3 = x + 5

def showLine(flip=1):

    sns.lineplot(x=x, y=y1)

    sns.lineplot(x=x, y=y2)

    sns.lineplot(x=x, y=y3)

pic = plt.figure(figsize=(8, 8))

# 恢复默认参数

pic = plt.figure(figsize=(8, 8), dpi=100)

with sns.plotting_context('paper'):  # 选择paper类型

    pic.add_subplot(2, 2, 1)

    showLine()

    plt.title('paper')

with sns.plotting_context('notebook'):  # 选择notebook类型

    pic.add_subplot(2, 2, 2)

    showLine()

    plt.title('notebook')

with sns.plotting_context('talk'):  # 选择talk类型

    pic.add_subplot(2, 2, 3)

    showLine()

    plt.title('talk')

with sns.plotting_context('poster'):  # 选择poster类型

    pic.add_subplot(2, 2, 4)

    showLine()

    plt.title('poster')

plt.show()

6、分别验证以下代码,查看效果,并将结果附截图

sns.dark_palette((20, 60, 50), input="husl")

sns.palplot(sns.dark_palette('yellow'))

sns.palplot(sns.light_palette('blue'))

# 使用husl颜色空间作为种子

pal = sns.dark_palette((200,80, 60), input='husl', reverse=True, as_cmap=True)#(200,80,60)是RGB三基色码

sns.kdeplot(x=x, y=y, cmap=pal)

plt.title('自定义连续调色板')

plt.show()

2 任务二

2.1 matplotlib绘图参数设置

某企业2020年和2019年在全国各地区销售额数据如下:

表3-1 某企业两个年度销售额情况

年度

中南

东北

华东

华北

西南

西北

2019

214.71

445.66

627.11

800.73

956.88

1090.24

2020

223.65

488.28

673.34

870.95

1027.34

1193.34

1、利用matplotlib.pyplot绘制复式条状图,并用legend设置图例,title设置标题“某企业两个年度销售额情况”,xlable和ylable设置坐标名称。

2、利用matplotlib.pyplot在同一幅图片上绘制两条折线图,其他要求同1。

2.2 seaborn工具包绘图

1、按表3-1复现图3-1代码绘制条状图。

2、按表3-1复现图3-2代码绘制散点图。

 

3 任务三(实训)

3.1 实训1 分析各空气质量指数之间的关系及其分布情况

1、训练要点

(1)了解 scatterplot 函数的使用格式。

(2)掌握散点图的绘制方法。

(3)了解 stripplot 函数的使用格式。

(4)掌握分类散点图的绘制方法。

(5)了解 distplot 函数的使用格式。

(6)掌握单变量分布图的绘制方法。

(7)了解 regplot 函数的使用格式。

(8)掌握线性回归拟合图的绘制方法。

2、需求说明

空气质量指数(Air Quality Index,AQI)简而言之就是能够对空气质量进行定量描述的数据。空气质量(Air Quality)的好坏反映了空气污染程度,它是依据空气中污染物浓度的高低来判断的。空气污染是一个复杂的现象,在特定的时间看和地点,空气污染物浓度受到许多因素影响。

芜湖市 2020 年空气质量指数的部分数据如表3-2 所示。表3-2数据文件aqi.csv以上传。

表3-2 芜湖市 2020 年空气质量指数的部分数据

日期

AQI

质量等级

PM2.5含量(ppm)

PM10含量(ppm)

SO2含量(ppm)

CO含量(ppm)

NO2含量(ppm)

O3_8h含量(ppm)

2020/1/1

79

58

64

8

0.7

57

23

2020/1/2

112

轻度污染

84

73

10

1

71

7

2020/1/3

68

49

51

7

0.8

49

3

2020/1/4

90

67

57

7

1.2

53

18

2020/1/5

110

轻度污染

83

65

7

1

51

46

2020/1/6

65

47

58

6

1

43

6

2020/1/7

50

18

19

5

1.5

40

43

2020/1/8

69

50

49

7

0.9

39

45

2020/1/9

69

50

40

6

0.9

47

33

2020/1/10

57

34

28

5

0.8

45

21

将基于表3-2所示的数据绘制关系图、分类图、回归图,分析 PM2.5 与空气质量指数的关系,以及空气质量指数的分类和分布情况。

3、实现步骤

(1)使用 pandas 库读取芜湖市 2020年空气质量指数统计数据。

(2)解决中文字体的显示问题,设置字体为黑体,并解决保存图像时负号“_”显示为方块的问题。

(3)绘制 AQI 和 PM2.5 的关系散点图。

  1. 绘制空气质量等级分类散点图。

  1. 绘制空气质量等级单变量分布图。

  1. 绘制 PM2.5 与 AQI 的线性回归拟合图。

3.2 实训 2 分析各空气质量指数与 AQI 的相关性

1、训练要点

(1)了解 heatmap 函数的使用格式。

(2)掌握热力图的绘制方法。

2、需求说明

由表3-2所示的数据可知,空气质量指数包括了 PM2.5、PM10、SO2、CO、NO2、O3_8h。不同的指数对 AQI的影响不同。基于实训1的数据绘制热力图,分析各空气质量指数与 AQI 的相关性。

3、实现步骤

(1)使用 pandas 库读取芜湖市 2020 年空气质量指数统计数据。

  1. 解决中文字体的显示问题,设置字体为黑体,并解决保存图像时负号“-”显示为方块的问题。
  2. 计算相关系数。

(4)绘制特征相关性热力图。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在做ESP32-S3模组物联网项目时无法烧录下载怎么排查原因?分享经验

ESP32-S3模组在物联网中非常好用,可以做带屏小音箱、温控器、智能86盒、泳池清洁机器人等等,在烧录的时候经常会遇到一些问题,这里分享一些烧录失败的原因或者烧录遇到的问题,教大家怎么排查原因,希望能帮到大家&#…

参数化建模系列-cityengine篇之:如何基于GIS数据快速构建道路三维建模模型

结合上期介绍的基于GIS数据自动化构建城市三维建筑模型,本期在上期的知识点上继续介绍道路模型的自动化构建方法。 数据获取 本期道路自动化建模从获取道路数据开始。 首先打开“QuickOSM”插件,在“Key”中选择“highway”;其次选择数据范…

Python程序设计 函数(三)

练习十一 函数 第1关: 一元二次方程的根 定义一个函数qg,输入一元二次方程的系数a,b,c 当判别式大于0,返回1和两个根 当判别式等于0,返回0和两个根 当判别式小于0,访问-1和两个根 在主程序中,根据函数返回…

数据结构(四)—— 堆和二叉树(上)

制作不易,三连支持一下呗!!! 文章目录 前言一、树的概念及结构二、二叉树的概念及结构总结 前言 这篇博客我们将进行更加复杂的一种数据结构的学习——树形结构。 一、树的概念及结构 树是一种非线性的数据结构,它是…

如何把多个文件(夹)平均复制到多个文件夹中

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 假定的情况是,共有20个兔兔的图片,想要平均的复制4个文件夹里,那么每个文件夹里面就有5个图片 (如果是5个&a…

一般产品:功能、质量、结构

**一般产品:**功能、质量、结构 通用工程: 收益-风险;过程-结果;少数-多数 风险 vs 收益 过程 vs 结果 少数 vs 多数 工程师的特点: 人道无害雇主实事求是,恪守公心,严守纪律,…

信创 | 信创基础设施建设:国内外对比分析研究

信创基础设施建设在国内外的比较分析涉及到多个方面,包括政策支持、产业发展现状、技术进步、市场应用等。通过综合分析,我们可以得出以下结论: 政策支持与发展方向:中国自2019年以来,陆续出台了一系列政策支持信创产业…

RS485空调系统到BACnet江森楼宇系统的高效整合攻略

智慧城市的每一栋建筑都在追求更高的能效与更佳的居住体验,而这一切的实现离不开强大且灵活的楼宇自动化系统。其中,协议转换网关作为连接不同设备的纽带,扮演着至关重要的角色。本文将以一个典型的商业综合体为例,揭秘BACnet协议…

北交所佣金费率标准是多少?北交所相关信息科普

北交所的佣金费率并非固定不变,而是可以根据投资者的需求和证券公司的政策进行调整。目前北交所的佣金费率最低是万分之二。 一般来说,北交所的佣金费率默认在万分之三左右,但这不是固定的费率。根据证券公司的不同,佣金费率可以…

语义分割——前列腺分割数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

微服务学习笔记

微服务学习笔记 文章目录 微服务学习笔记认识微服务微服务技术栈微服务学习要点微服务远程调用1)注册RestTemplate2) 服务远程调用RestTemplate Eureka注册中心简介操作过程搭建EurekaServer注册user-service在order-service完成服务拉取 Ribbon负载均衡IRule负载均衡策略饥饿加…

Electron学习笔记(二)

文章目录 相关笔记笔记说明 三、引入现代前端框架1、配置 webpack(1)安装 webpack 和 electron-webpack:(2)自定义入口页面 2、引入 Vue(1)安装 Vue CLI (2)调试配置 -- …

【Micropython Pitaya Lite教程】烧录固件

文章目录 前言一、编译固件源码二、烧录固件总结 前言 MicroPython是一种精简的Python 3解释器,可以在微控制器和嵌入式系统上运行。Pitaya Lite是一款基于ESP32的微控制器开发板,它结合了低功耗、Wi-Fi和蓝牙功能。结合MicroPython和Pitaya Lite&#…

Python AI库pandas读写数据库的应用操作——以sqlite3为例

Python AI库pandas读写数据库的应用操作——以sqlite3为例 本文默认读者具备以下技能: 熟悉python基础知识,vscode或其它编辑工具 已阅读Pandas基础操作文章,了解pandas常见操作 具备自主扩展学习能力 在数据分析和人工智能领域,pandas库和s…

Ruby中的字符串转换方法

在Ruby中,你可以使用各种方法来转换字符串。下面是一些常用的方法,当然选择哪种适用的方法还得更具具体项目来做调整。日常使用中下面的错误也是比较常见的,看看我们怎么处理哈。 1、问题背景 在Python中,内置的数据结构都有一个…

VMware 虚拟机打开一段时间后卡死,VNX进程CPU占比高

一、问题描述 打开虚拟机后可以正常运行 运行几分钟后突然卡死 然后通过任务管理器可以观察到VMware Workstation VMX应用进程的CPU占比高,CPU也出现异常 关闭虚拟机重新开启,还是一样卡死 二、系统环境 系统: Windows10 VMware: Workstation 17 Pro …

visa/masterCard虚拟信用卡可以用于欧洲亚马逊店Amazon铺吗?欧洲亚马逊Amazon店铺扣租金

亚马逊是网络上最早开始经营电子商务的公司之一,亚马逊成立于1995年,一开始只经营网络的书籍销售业务,现在则扩及了范围相当广的其他产品,已成为全球商品品种最多的网上零售商和全球互联网企业。 很多小伙伴需要开多个站点店铺&a…

软胶囊硬度计:QC部门保障药品质量的精准工具

软胶囊硬度计:QC部门保障药品质量的精准工具 一、引言 随着医药行业的快速发展和药品监管力度的加强,制药企业对于药品质量的要求越来越高。在药品的生产过程中,软胶囊作为一种常见的剂型,其硬度的控制对于药品质量至关重要。软胶…

数组进了多个obj,但是 在修改某个num值时,导致别的num值也发生了变化如何解决?

问题如下: 遇到的问题,数组monthArr1 push进了多个obj,但是 在修改某个num值时,导致别的num值也发生了变化。 而这就是深拷贝浅拷贝的问题。 解决浅拷贝使用深拷贝最简单方法 :JSON.parse(JSON.stringify(obj)) 或者: 使用深拷…

学习Java的日子 Day44 HTML基础

Day44 HTML 学习路线: 前端:展示页面、与用户交互 — HTML 后端:数据的交互和传递 — JavaEE/JavaWeb 1.网页的组成部分(HTMLCSSJavaScript) 前端开发的工作模式:开发输出htmlcssjs HTML:页面结构 CSS:页面…