python 可视化学习(一):seaborn(基础)

python 可视化学习(一)——seaborn(基础)

1. 连续(continous)的单变量特征的数据可视化

1.1导入库

import numpy as np
import pandas as pd
from scipy import stats, integrate
import matplotlib.pyplot as plt 
import warnings  
import seaborn as ans   #绘图库
warnings.filterwarnings('ignore') #忽略“错误警告”

1.2 Hist函数

一般对于单变量,都是直接绘制出直方图。一般用matplotlib中的hist函数
plt.hist(x) : hist默认为10个bins。

 a = np.random.randn(100)
    plt.hist(a)
    plt.show()

在这里插入图片描述

1.3 Kdeplot函数

对于连续变量,看直方图是不够的,数据分布的观察不可少,因此要用到Kdeplot函数

a = np.random.randn(100)
    sns.kdeplot(a, shade=True)
    plt.show()

在这里插入图片描述

1.4Distplot

displot函数包含了绝大多数单变量可视化的能力,默认的distplot能绘制出我们需要的直方图和对应的核密度估计(KDE)

a = np.random.randn(100)
    sns.distplot(a)
    plt.show()

在这里插入图片描述
如果不想看到kde曲线,可以直接去掉kde,想直接看直方图,也可以直接去掉kde。
去掉KDE曲线:
** sns.distplot(x, kde= False, rug = True) **
去掉直方图:
sns.distplot(x, hist = False, rug = True)
displot函数还可以设置bin的个数,会生成对应的bin来告诉你数据的一个分布情况。(通过观察bin来对数据进行切分分并做one-hot编码形成新的特征。

a = np.random.randn(100)
    sns.distplot(a, bins=20, kde=False, rug=True);
    plt.show()

在这里插入图片描述

2.连续(continous)的二元变量特征的数据可视化

** 上面的数据可视化是基于单个变量的,常常用于对连续型式的label(回归问题中较为常见)进行观察处理**
实际上,我们不会仅仅对数只进行观察,还要进行预测等,数据之间的关系很重要,主要是两个连续变量之间的相关性分析。

用高斯分布函数生成两个变量x,y:

mean, cov = [0, 1], [(1, .5), (.5, 1)]
data = np.random.multivariate_normal(mean, cov, 200)
df = pd.DataFrame(data, columns=["x", "y"])

2.1 Scatterplot函数

这个函数是通用的,尤其是两个变量都是连续型变量,希望看到二维平面上二者之间的关系会先想到散点图。Scatterplot我们很容易发现一些数据分布规律,是否有簇的存在,在涉及类似于经纬度的问题,我们通常用scatterplot看数据,然后考虑聚类等

plt.scatter(df['x'].values,df['y'].values)

在这里插入图片描述

2.2 Jointplot

scatterplot函数是非常实用的,但是jointplot函数,可以绘制散点图,还可以帮我们直接进行一些简单的模型的拟合(linearregression,etc)

2.21 默认的jointpot
sns.jointplot(x="x", y="y", data=df)

在这里插入图片描述
Hexbin绘图和KDE绘图,这两个绘图大致可以更加直观炫酷的看出数据的一个分布情况(例如hex图,越白的地方数据就越少,基本没有数据)

sns.jointplot(x="x", y="y", data=df,kind ='hex' )

在这里插入图片描述

sns.jointplot(x="x", y="y", data=df, kind="kde")

在这里插入图片描述
还有更直观的方式,如:

f, ax = plt.subplots(figsize=(6, 6))
cmap = sns.cubehelix_palette(as_cmap=True, dark=0, light=1, reverse=True)
sns.kdeplot(df.x, df.y, cmap=cmap, n_levels=60, shade=True)

在这里插入图片描述

2.3 plot_joint, pairplot函数

2.31 plot_joint函数

plot_joint函数可以将很多绘图形式放在同一张图表中,更加丰富我们的图形比较炫酷

g = sns.jointplot(x="x", y="y", data=df, kind="kde", color="m")
g.plot_joint(plt.scatter, c="w", s=30, linewidth=1, marker="+")

在这里插入图片描述

2.32 pairplot函数

该函数会同时绘制数据中所有特征两两之间的关系图,可以将中间很多函数进行变换。

iris = sns.load_dataset("iris")
sns.pairplot(iris)

在这里插入图片描述
看两两变量之间的kde绘图,例如sepal_width和petal_length这样的图,我们发现kde图自行进行了聚类,此时我们可以观察两个类中label的情况,比如二分类,如果其中一个类中正样本有80%,另外一个负样本有90%,则考虑进行聚类one-hot操作[10].

g = sns.PairGrid(iris)
g.map_diag(sns.kdeplot)
g.map_offdiag(sns.kdeplot, cmap="Blues_d", n_levels=6)

在这里插入图片描述

g = sns.PairGrid(iris)
g.map_diag(sns.kdeplot)
g.map_offdiag(sns.kdeplot)

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值