可视化-实验四- 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)绘制特征相关性热力图。

  • 27
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值