Seaborn is a Python data visualization library based on matplotlib.
Seaborn提供了大量的高级接口和自定义主题,并能很好地处理数据流。结合美学与技术,其是Python流行的数据可视化库之一。本次学习主要对京东商城爬取的耳机数据进行系列可视化操作。
目录
- 散点图
- 抖动图
- 箱线图
- 小提琴图
- 直方图
- 双变量分布图
- 热图
- 多二元分布图
- 回归图
seaborn库有四个必需依赖项:
- NumPy (>= 1.9.3)
- SciPy (>= 0.14.0)
- matplotlib (>= 1.4.3)
- Pandas (>= 0.15.2)
在安装好相关库后导入依赖项和seaborn本身
import numpy as np
from scipy import stats
from pylab import *
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
导入数据(京东商城爬取的耳机数据)进行查看
df = pd.read_excel('D:/python/dachuang/erjidata.xlsx')
1 散点图
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文
sns.relplot(x='点赞数', y='评论数', data=df) # 绘制散点图
sns.relplot(x='点赞数', y='评论数', hue='评价星级', data=df) # 可以看到与数据相关的标签
在上图中,色调代表样本类别,是离散的。而如果色调代表数字,则应该是连续的。
因此,将字段“评价星级”字符型进行转化(此处没找到简单函数操作,直接用if语句)
df['新评价星级'] = 'NA' # 新增一列
for i in range(len(df)):
if df['评价星级'][i] == 'star1':
df['新评价星级'][i] = 1.0
elif df['评价星级'][i] == 'star2':
df['新评价星级'][i] = 2.0
elif df['评价星级'][i] == 'star3':
df['新评价星级'][i] = 3.0
elif df['评价星级'][i] == 'star4':
df['新评价星级'][i] = 4.0
else:
df['新评价星级'][i] = 5.0
df['新评价星级'] = (df['新评价星级']).astype(np.float) # 类型转换
sns.relplot(x='点赞数', y='评论数', hue='新评价星级', data=df) # 色调代表样本类别,样本类别连续
sns.relplot(x='点赞数',y='评论数',size='新评价星级',data=df) # 改变点大小
2 抖动图
sns.catplot(x='新评价星级',y='评论数',data=df) # 绘制抖动图
我们可以看到图表是散开的,所以为了处理这个问题,我们可以将抖动设置为false。抖动是偏离真实值。因此,我们将使用另一个参数将抖动设置为false。
sns.catplot(x='新评价星级',y='评论数',jitter=False,data=df) # 使抖动集中
如果想在图中引入另一个变量或另一个维度,可以使用hue参数。
sns.catplot(x='点赞数', y='评论数', hue='新评价星级', data=df) # 在图中引入另一变量或维度
sns.catplot(x='点赞数', y='评论数', kind='swarm', data=df) #swarm使用一种算法来防止点重叠
3 箱线图
sns.catplot(x='新评价星级', y='评论数', kind='box', data=df) # 箱线图
4 小提琴图
sns.catplot(x='新评价星级', y='评论数', kind='violin', data=df) # 小提琴图
5 直方图
sns.distplot(df.点赞数) # 默认情况下,distplot()函数绘制柱状图并适合内核密度估计
sns.distplot(df.点赞数, kde=False, rug=True) # 有垂直标尺的直方图
6 双变量分布图
sns.jointplot(x='新评价星级', y='评论数', data=df) # 可视化双变量分布
sns.jointplot(x='新评价星级', y='评论数', kind='hex', data=df) # Hexplot是一个双变量的直方图,显示了在六边形区域内的观察次数
sns.jointplot(x='新评价星级', y='评论数', data=df, kind='kde') # KDE绘图,很好的可视化双变量分布的方法
7 热图
# Heatmaps中每个变量都表示为一种颜色
corrmat = df.corr()
f, ax = plt.subplots()
sns.heatmap(corrmat, vmax=.8,square=True)
8 多二元分布图
sns.pairplot(df) # 绘制数据集中的多个二元分布,并绘制各变量在对角线上的单变量分布图
9 回归图
sns.lmplot(x='点赞数', y='评论数', hue='新评价星级', data=df)
本次学习主要参考资料:Python Seaborn综合指南,成为数据可视化专家