别人没那么重要,我也没那么重要,好好活着,把能做的小事做好,够不到的东西就放弃,承认就好。做一个心情好能睡着的人,你所有事情都会在正轨上。

Python数据分析-Seaborn可视化数据分析

1. Seaborn简介

  Seaborn是一个基于Matplotlib的高级可视化效果库,偏向于统计图表。因此,针对的主要是数据挖掘和机器学习中的变量特征的选取。相比Matplotlib,Seaborn的语法相对简单,绘制图表不需要花很多功夫去修饰,但是它绘图方式比较局限,不够灵活。

2. Seaborn主要包括以下功能

  • 计算多变量间关系的面向数据集接口。
  • 可视化类别变量的观测与统计。
  • 可视化单变量或多变量分布,并与其子数据集比较。
  • 控制线性回归的不同因变量,并进行参数估计与作图。
  • 对复杂数据进行整体结构可视化。
  • 对多表统计图的制作高度抽象,并简化可视化过程。
  • 提供多个主题渲染Matplotlib图表的样式。
  • 提供调色板工具生动再现数据。

3. Seaborn图表的基本设置

  设置Seaborn背景风格,主要使用axes_style()函数和set_style()函数。Seaborn有5个主题,适用于不同的应用场景和人群偏好,具体如下。

  • darkgrid:灰色网格(默认值)。
  • whitegrid:白色网格。
  • dark:灰色背景。
  • white:白色背景。
  • ticks:四周带刻度线的白色背景。

效果如下:

4. 常用图表的绘制(来自本人课上学习代码)

4.1. 绘制折线图(relplot()函数)

代码示例:

 1 import pandas as pd
 2 import matplotlib.pyplot as plt
 3 import seaborn as sns
 4 
 5 sns.set_style('darkgrid')
 6 plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
 7 df1 = pd.read_excel('data.xls')  # 导入Excel文件
 8 
 9 # 绘制多折线图
10 dfs = [df1['语文'], df1['数学'], df1['英语']]
11 sns.lineplot(data=dfs)
12 plt.show()  # 显示

运行结果:

4.2. 绘制直方图(displot()函数)

代码示例:

 1 import pandas as pd
 2 import matplotlib.pyplot as plt
 3 import seaborn as sns
 4 
 5 sns.set_style('darkgrid')
 6 plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
 7 df1 = pd.read_excel('data2.xls')  # 导入Excel文件
 8 data = df1[['得分']]
 9 sns.distplot(data, rug=True)  # 直方图,显示观测的小细条
10 plt.show()  # 显示

运行结果:

4.3. 绘制条形图(barplot()函数)

代码示例:

1 import pandas as pd
2 import matplotlib.pyplot as plt
3 import seaborn as sns
4 
5 sns.set_style('darkgrid')
6 plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决中文乱码
7 df1 = pd.read_excel('data.xls', sheet_name='sheet2')  # 导入Excel文件
8 sns.barplot(x='学号', y='得分', hue='学科', data=df1)  # 条形图
9 plt.show()  # 显示

运行结果:

4.4. 绘制散点图(replot()函数)

代码示例:

1 import matplotlib.pyplot as plt
2 import seaborn as sns
3 import pandas as pd
4 
5 sns.set_style('darkgrid')
6 # 读取数据集tips(小费数据集),并对total_bill和tip字段绘制散点图
7 tips = pd.read_csv('tips.csv')
8 sns.relplot(x='total_bill', y='tip', data=tips, color='r')
9 plt.show()  # 显示

运行结果:

4.5. 绘制线性回归模型(lmplot()函数)

代码示例:

 1 import matplotlib.pyplot as plt
 2 import seaborn as sns
 3 import pandas as pd
 4 
 5 sns.set_style('darkgrid')
 6 # 读取数据集tips
 7 tips = pd.read_csv('tips.csv')
 8 # 绘制回归模型,描述线性关系
 9 sns.lmplot(x='total_bill', y='tip', data=tips)
10 plt.show()  # 显示

运行结果:

4.6. 绘制箱形图(boxplot()函数)

代码示例:

 1 import matplotlib.pyplot as plt
 2 import seaborn as sns
 3 import pandas as pd
 4 
 5 sns.set_style('darkgrid')
 6 # 读取数据集tips
 7 tips = pd.read_csv('tips.csv')
 8 # 绘制箱形图
 9 sns.boxplot(x='day', y='total_bill', hue='time', data=tips)
10 plt.show()  # 显示图表

运行结果:

4.7. 绘制核密度图(kdeplot()函数)

代码示例:

 1 import matplotlib.pyplot as plt
 2 import seaborn as sns
 3 import pandas as pd
 4 
 5 sns.set_style('darkgrid')
 6 # 读取数据集iris
 7 df = pd.read_csv('iris.csv')
 8 # 显示数据集
 9 df.head()
10 # 绘制核密度图
11 # sns.kdeplot(df['sepal_width'], shade=True, bw=.5, color="orange")
12 
13 # 绘制多个变量的核密度图
14 p1 = sns.kdeplot(df['sepal_width'], shade=True, color="r")
15 p1 = sns.kdeplot(df['sepal_length'], shade=True, color="b")
16 plt.show()
17 # 边际核密度图
18 sns.jointplot(x=df["sepal_length"], y=df["sepal_width"], kind='kde', space=0)
19 plt.show()

运行结果:

4.8. 绘制提琴图(violinplot()函数)

代码示例:

1 import matplotlib.pyplot as plt
2 import seaborn as sns
3 import pandas as pd
4 
5 # 读取数据集tips
6 tips = pd.read_csv('tips.csv')
7 sns.violinplot(x='total_bill', y='day', hue='time', data=tips)
8 plt.show()

运行结果:

 

时间:2024年4月23日

 

posted @ 2024-04-23 10:48  一路狂奔的乌龟  阅读(87)  评论(0)    收藏  举报
返回顶部