数据分析之seaborn与热点图

一、安装

pip install seabron

二、分布图

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

1.distplot
参数:
kde是高斯分布密度图,绘图在0-1之间
hist是否画直方图
rug在X轴上画一些分布线
fit可以制定某个分布进行拟合
label legend时的值
axlabel制定横轴的说明
fit选用gamma分布拟合

tips = sns.load_dataset('tips')
from scipy import stats
sns.distplot(tips.total_bill , fit = stats.gamma , kde = False)
plt.show()

在这里插入图片描述

二、pairplot
1、分别取每个标签的做横纵坐标进行数据展示
参数:
data: DataFrame格式的数据
hue: label类别对应的column name
vars: 指定feature的列名
kind: 作图的方式,可以是reg或scatter
diag_kind: 对角线作图的方式,可以是hist或kde

   iris = sns.load_dataset('iris')
    p = sns.pairplot(iris,kind='scatter')
    plt.show()

在这里插入图片描述
三、stripplot和swarmplot
1、stripplot
tips为例,查看不同时间的数据信息
x: X轴数据
y: Y轴数据
hue: 区分不同种类数据的column name
data: DataFrame类型数据
jitter: 将数据分开点,防止重叠

tips = sns.load_dataset('tips')
ax = sns.stripplot(x='day',y='total_bill',data=tips)

在这里插入图片描述
查看关于性别消费的信息

ax = sns.stripplot(x='sex',y='total_bill',hue='day',data=tips)

在这里插入图片描述
四、boxplot
1、boxplot示意图
在这里插入图片描述
参数:
x, y:指定X轴,Y轴的columns name值
hue: 指定要区分的类别

tips = sns.load_dataset('tips')
ax = sns.boxplot(x='day',y='total_bill',data=tips)

在这里插入图片描述
五、jointplot
1、jointplot
联合作图
kind: scatter、reg、resid、kde、hex

tips = sns.load_dataset('tips')
g = sns.jointplot(x='total_bill', y='tip',
                      data=tips, kind="reg", 
                      dropna=True)
plt.show()

在这里插入图片描述
六、violinplot
1、小提琴图,和boxplot很像
对称的kde图
中间的白点是中位数,黑色粗线对应分位数
参数:
inner: 指定图里面用什么划分,有"box", “quartile”, “point”, “stick”, None
quartile为四分位数划分
stick很像rug,就是可以看出密度情况
scale: 缩放每个图对应的area, 取值有 “area”, “count”, “width”
area指定每个有相同的area
count会按数量缩放(数量少的就比较窄扁)

tips = sns.load_dataset('tips')
ax = sns.violinplot(x='day', y='total_bill', 
                    hue='smoker', data=tips)

在这里插入图片描述
七、heatmap
联合使用corr()函数,对各个特征值间的关系表示

# 相关图
corrmat = train.corr()
plt.subplots(figsize=(12,9))
sns.heatmap(corrmat, vmax=0.9, square=True)

在这里插入图片描述

#查看影响最终价格的十个变量
k = 10 
plt.figure(figsize=(12,9))
cols = corrmat.nlargest(k, 'SalePrice')['SalePrice'].index
cm = np.corrcoef(train[cols].values.T)
sns.set(font_scale=1.25)
hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={'size': 10}, yticklabels=cols.values, xticklabels=cols.values)
plt.show()

在这里插入图片描述

#找出相关性>0.5的特征变量
Corr = train.corr()
Corr[Corr['SalePrice']>0.5]

八、画图的几种方法
(1)sns

#sns画图
data = {'a':[1,2,3,4,5],'b':[4,5,6,7,5]}
data = pd.DataFrame(data)
data
fig,ax = plt.subplots(figsize=(2,2))
sns.scatterplot(x=data['a'],y=data['b'])

在这里插入图片描述
(2)plt

plt.clf()
fig,ax = plt.subplots(figsize=(2,2))
ax.scatter(x=data['a'],y=data['b'])

在这里插入图片描述
(3)当处理一个特征时,可以单独对特征处理画图

plt.clf()
fig,ax = plt.subplots()
data['b'].value_counts().plot(kind='bar',color='g')
plt.show()

在这里插入图片描述
(4)对图像进行整理修改

plt.xticks(rotation=90)
plt.xlabel('X~')
plt.ylabel('Y~')
plt.title('Image')
plt.show()

在这里插入图片描述

发布了24 篇原创文章 · 获赞 3 · 访问量 1576

猜你喜欢

转载自blog.csdn.net/xfxlesson/article/details/100861436