前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据可视化(8)-Seaborn系列 | 分类散点图stripplot()

数据可视化(8)-Seaborn系列 | 分类散点图stripplot()

原创
作者头像
数据分析可视化
修改2019-09-25 15:53:20
5.2K0
修改2019-09-25 15:53:20
举报

分类散点图

stripplot()可以自己实现对数据分类的展现,也可以作为盒形图或小提琴图的一种补充,用来显示所有结果以及基本分布情况。

函数原型

代码语言:txt
复制
seaborn.stripplot(x=None, y=None, hue=None,
                  data=None, order=None, hue_order=None, 
                  jitter=True, dodge=False, orient=None,
                  color=None, palette=None, size=5, 
                  edgecolor='gray', linewidth=0, ax=None, **kwargs)

参数解读

table1
table1
代码语言:txt
复制
x,y,hue:数据字段变量名(如上表,date,name,age,sex为数据字段变量名)
作用:根据实际数据,x,y常用来指定x,y轴的分类名称,
hue常用来指定第二次分类的数据类别(用颜色区分)

data: DataFrame,数组或数组列表

order,hue_order:字符串列表
作用:显式指定分类顺序,eg. order=[字段变量名1,字段变量名2,...]

jitter : float类型,True/1
作用:当数据重合较多时,用该参数做一些调整,也可以设置间距
如,jitter = 0.1 (通俗讲,就是让数据分散开)

dodge:bool
作用:若设置为True则沿着分类轴,将数据分离出来成为不同色调级别的条带,
否则,每个级别的点将相互叠加

orient:方向:v或者h
作用:设置图的绘制方向(垂直或水平),
如何选择:一般是根据输入变量的数据类型(dtype)推断出来。

color:matplotlib 颜色

palette:调色板名称,list类别或者字典
作用:用于对数据不同分类进行颜色区别

size:float
作用:设置标记大小(标记直径,以磅为单位)

edgecolor:matplotlib color,gray
作用:设置每个点的周围线条颜色

linewidth:float
作用:设置构图元素的线宽度

案例教程

代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例1:
水平散点图
"""
sns.stripplot(x=tips["total_bill"])
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例2:
根据x的类别进行分组统计
"""
sns.stripplot(x="day",y="total_bill", data=tips)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例3:
设置jitter来增加数据的抖动(当数据重合较多时,可以让数据更加分散一些)

可以比较案例2和案例3
"""
sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例4:
设置jitter来增加数据的抖动(当数据重合较多时,可以让数据更加分散一些)

可以比较案例2、案例3和案例4
"""
sns.stripplot(x="day", y="total_bill", data=tips, jitter=0.3)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例5:
绘制水平方向的分类散点图

可以对案例1和案例5 进行比较
"""
sns.stripplot(x="total_bill", y="day", data=tips,jitter=True)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例6:
给数据点绘制轮廓,linewidth值越大,轮廓越粗
"""
sns.stripplot(x="total_bill", y="day", data=tips,
              jitter=True, linewidth=2)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例7:
设置hue对每个分组中进行第二次分类(x=sex进行第一次数据分组,
hue=day对每一组进行数据分类)
"""
sns.stripplot(x="sex", y="total_bill", hue="day",
              data=tips, jitter=True)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例8:
设置dodge将数据在分类组中分离出来
"""
sns.stripplot(x="day", y="total_bill", hue="smoker",
              data=tips, jitter=True,
              palette="Set2",dodge=True)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例9:
通过设置order来显式指定分类顺序
order=[字段变量名1,字段变量名2,...]
"""
sns.stripplot(x="time", y="tip", data=tips,
              order=["Dinner", "Lunch"])
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例10:
设置要绘制的点的大小(size)以及点的标记(marker="D")
饱和度alpha
"""
sns.stripplot("day", "total_bill", "smoker", data=tips,
              palette="Set2", size=20, marker="D",
              edgecolor="gray", alpha=.25)
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例11:
根据数据情况绘制箱图和分类散点图
在箱图上绘制分类散点图
"""
sns.boxplot(x="tip", y="day", data=tips, whis=np.inf)
sns.stripplot(x="tip", y="day", data=tips,
              jitter=True, color=".3")
plt.show()
代码语言:txt
复制
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格
sns.set(style="whitegrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例10:
根据数据情况绘制小提琴图和分类散点图
在小提琴图上绘制分类散点图
"""
sns.violinplot(x="day", y="total_bill", data=tips,
               inner=None, color=".8")
sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)
plt.show()

案例地址

案例代码已上传:Github https://github.com/Vambooo/SeabornCN

整理制作:数据分析与可视化学研社

更多分享,请关注公众号
更多分享,请关注公众号

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 分类散点图
  • 函数原型
  • 参数解读
  • 案例教程
  • 案例地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档