数据挖掘——seaborn

import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

绘制单变量分布

# seaborn.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, color=None)
# 上述函数中常用参数的含义如下:
# (1) a:表示要观察的数据,可以是 Series、一维数组或列表。
# (2) bins:用于控制条形的数量。
# (3) hist:接收布尔类型,表示是否绘制(标注)直方图。
# (4) kde:接收布尔类型,表示是否绘制高斯核密度估计曲线。
# (5) rug:接收布尔类型,表示是否在支持的轴方向上绘制rugplot。

np.random.seed(0)#确定随机数生成器中生成的数据是一致的
arr = np.random.randn(100)
sns.displot(arr,bins=10,kde=True,rug=True)
<seaborn.axisgrid.FacetGrid at 0x1dcb31164f0>


png

绘制双变量分布

绘制散点图

# 创建DataFrame数据
df = pd.DataFrame({"x":np.random.randn(500),"y":np.random.randn(500)})
df.head()
xy
01.883151-1.550429
1-1.3477590.417319
2-1.270485-0.944368
30.9693970.238103
4-1.173123-1.405963
# jointplot()函数的语法格式如下。
# seaborn.jointplot(x, y, data=None,
# kind='scatter', stat_func=None, color=None,
# ratio=5, space=0.2, dropna=True)
# 上述函数中常用参数的含义如下:
# (1) kind:表示绘制图形的类型。
# (2) stat_func:用于计算有关关系的统计量并标注图。
# (3) color:表示绘图元素的颜色。
# (4) size:用于设置图的大小(正方形)。
# (5) ratio:表示中心图与侧边图的比例。该参数的值越大,则中心图的占比会越大。
# (6) space:用于设置中心图与侧边图的间隔大小。
# 下面以散点图、二维直方图、核密度估计曲线为例,为大家介绍如何使用 Seaborn绘制这些图形。

sns.jointplot(x="x",y="y",data=df,kind="scatter",color="green",height=8,ratio=2,space=1)
<seaborn.axisgrid.JointGrid at 0x1dcb885e910>

png

绘制二维直方图

# 颜色越深代表数据越密集  颜色越浅代表数据越稀疏
sns.jointplot(x="x",y="y",data=df,kind="hex")
<seaborn.axisgrid.JointGrid at 0x1dcb8938160>

png

绘制核密度估计度

# 看等高线的颜色深浅来绘制  颜色越深代表数据越密集  颜色越浅代表数据越稀疏
sns.jointplot(x="x",y="y",data=df,kind="kde")
<seaborn.axisgrid.JointGrid at 0x1dcb6f31130>

png

sns.kdeplot(x="x",y="y",data=df,shade=True,cbar=True)
<AxesSubplot:xlabel='x', ylabel='y'>

png

绘制成对的双变量分布

dataset = sns.load_dataset("iris")
dataset.head()
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
# 斜线上的是数据本身的一个分布,非斜线的是两个变量之间的一个关系
sns.pairplot(dataset)
<seaborn.axisgrid.PairGrid at 0x1f1a0f3f250>

png

用分类数据绘图

类别散点图

data = sns.load_dataset("tips")
data.head()
total_billtipsexsmokerdaytimesize
016.991.01FemaleNoSunDinner2
110.341.66MaleNoSunDinner3
221.013.50MaleNoSunDinner3
323.683.31MaleNoSunDinner2
424.593.61FemaleNoSunDinner4
# (1) x,y,hue:用于绘制长格式数据的输入。hue根据所指定的属性上色分类
# (2) data:用于绘制的数据集。如果x和y不存在,则它将作为宽格式,否则将作为长格式。
# (3) jitter:表示抖动的程度(仅沿类別轴)。当很多数据点重叠时,可以指定抖动的数量或者设为Tue使用默认值。

sns.stripplot(x="day",y="total_bill",data=data,hue="time",jitter=False)
<AxesSubplot:xlabel='day', ylabel='total_bill'>

png

sns.stripplot(x="day",y="total_bill",data=data,hue="time",jitter=True)
<AxesSubplot:xlabel='day', ylabel='total_bill'>

png

# swarmplot 让所有数据无重合现象
sns.swarmplot(x="day",y="total_bill",data=data)
<AxesSubplot:xlabel='day', ylabel='total_bill'>

png

类别内数据分布

# 箱型图
# (1) palette:用于设置不同级别色相的颜色变量。---- palette=["r","g","b","y"]
# (2) saturation:用于设置数据显示的颜色饱和度。---- 使用小数表示
sns.boxplot(x="day",y="total_bill",data=data,hue="time",palette={"g","r"},saturation=0.5)
<AxesSubplot:xlabel='day', ylabel='total_bill'>

png

# 绘制小提琴图
sns.violinplot(x="day",y="total_bill",data=data,hue="time")
<AxesSubplot:xlabel='day', ylabel='total_bill'>

png

类别内统计估计

sns.barplot(x="day",y="total_bill",data=data,hue="time")
<AxesSubplot:xlabel='day', ylabel='total_bill'>

png

sns.pointplot(x="day",y="total_bill",data=data,hue="time")
<AxesSubplot:xlabel='day', ylabel='total_bill'>


png

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值