seaborn单变量/双变量/多变量绘图

首先导入库:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

这里的series表示用图形表示的单变量,dataframe表示需要用图形表示的多变量

如果汉字显示方格,解决方法是导入字体:

from matplotlib.font_manager import FontProperties
sns.set(font=FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf',size=14).get_name())

#以下内容转载自:https://www.cnblogs.com/jianchiai/p/11373805.html
#Matplotlib中文问题
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文显示问题-设置字体为黑体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

#Seaborn中文问题
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
sns.set(font='SimHei') # 解决Seaborn中文显示问题

保存图片:

pig = sns.distplot(x,kde=True)
fig = pig.get_figure()
fig.savefig('保存图像.png')

目录

1 单变量

1.1 直方图

2 双变量

2.1 散点图 

2.2 散点图+回归分析

2.3 strip散点图(适合某一变量的取值有限)

2.4 盒图

2.5 小提琴图

3 多变量

3.1 单变量直方图 + 双变量散点图

3.2 盒图

3.3 小提琴图

参考


 

1 单变量

1.1 直方图

sns.distplot(x,kde=True)

可选参数:

kde:核密度曲线

bins :将x的取值区间等分为bins份,然后绘制直方图

fit:在原图上绘制一条当前数据的统计指标

2 双变量

2.1 散点图 

sns.jointplot(x=dataframe.x,y=dataframe.y)

可选参数:

kind=‘hex':蜂窝状图,通过颜色深浅表示密度

kind='kde':环形图,通过颜色深浅表示密度

2.2 散点图+回归分析

sns.regplot(x=dataframe.x,y=dataframe.y)

可选参数:

x_jitter:当有一个变量是使用ONE-HOT编码的时候,散点图会是多条线,这个参数可以设置散点抖动,看上去更美观。不过这样的图推荐2.3

2.3 strip散点图(适合某一变量的取值有限)

sns.stripplot(x=dataframe.x , y=dataframe.y)

可选参数:

jitter:是否需要值偏移一点,如果jitter=False,那么绘制出来的会在一条线上

2.4 盒图

sns.boxplot(x=dataframe.x,y=dataframe.y)

2.5 小提琴图

sns.violinplot(x=dataframe.total_bill,y=dataframe.day)

 

3 多变量

3.1 单变量直方图 + 双变量散点图

sns.pairplot(dataframe)

如果dataframe只有两个变量,图像是:

如果dataframe有多个变量,图像是:

对角线上显示的是每个单独变量的直方图,其他位置是两两变量的散点图。

3.2 盒图

sns.boxplot(x=dataframe.day,y=dataframe.total_bill,hue=dataframe.sex)

3.3 小提琴图

sns.violinplot(x=dataframe.total_bill,y=dataframe.day,hue=dataframe.time)

第三个维度也可以并不是简单的排列出来,而是分别展示在小提琴图的两边,所以还有第二种方法:

sns.violinplot(x=dataframe.total_bill,y=dataframe.day,hue=dataframe.time,split=True)

 

参考

 

Seaborn样例网址:https://seaborn.pydata.org/examples/index.html

Seaborn教程:https://zhuanlan.zhihu.com/p/40303932

seaborn教程 (2,绘图功能):https://zhuanlan.zhihu.com/p/33290588

python seaborn画图:https://blog.csdn.net/suzyu12345/article/details/69029106

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章