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日

Python数据分析-Seaborn可视化数据分析
浙公网安备 33010602011771号