首先导入库:
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 直方图
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