seaborn可视化学习

本文详细介绍使用Seaborn库对京东商城耳机销售数据进行多种图表分析的过程,包括散点图、箱线图、小提琴图等,展示了数据可视化在理解复杂数据集中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Seaborn is a Python data visualization library based on matplotlib.

Seaborn提供了大量的高级接口和自定义主题,并能很好地处理数据流。结合美学与技术,其是Python流行的数据可视化库之一。本次学习主要对京东商城爬取的耳机数据进行系列可视化操作。


目录
  1. 散点图
  2. 抖动图
  3. 箱线图
  4. 小提琴图
  5. 直方图
  6. 双变量分布图
  7. 热图
  8. 多二元分布图
  9. 回归图

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综合指南,成为数据可视化专家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZFour_X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值