seaborn 简单使用

写了matplotlib之后,懒劲复发,不想提笔,蹉跎了多日,今天痛定思痛,下定决心写seaborn,毕竟是很常用的一个包~

  • 目录:
    matplotlib 学习笔记(1): figure
    matplotlib 学习笔记(2):plot
    matplotlib 学习笔记(3): subplot and subplots
    matplotlib 学习笔记(4):ion 和 ioff
    matplotlib 学习笔记(5):scatter
    seaborn 简单使用

下文主要简单介绍 distplot、boxplot、violinplot、countplot 以及 heatmap 的用法。


Distplot


def distplot(data, bins=None, hist=True, kde=True, rug=False, fit=None,
             hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None,
             color=None, vertical=False, norm_hist=False, axlabel=None,
             label=None, ax=None):
  • data:需要绘制的数据。可以是Series对象,一维矩阵或列表。如果是Series对象,则axlabel的值会被设置为Series 的名字。
  • bins:柱状图参数,要绘制的条形柱数目。
  • hist:是否要绘制柱状图。
  • kde:核密度估计(kernel density estimate),是否要绘制密度曲线。
  • rug:控制是否生成观测数值的小细条。
  • norm_hist:如果为True,则直方图纵坐标显示密度而非计数(含有kde图像中默认为True)
  • axlabel:x轴的标签。
  • label:legend标签。
  • ax:如果提供了的话,就在这个axis上面画图。
import matplotlib.pyplot as plt
import seaborn as sns

x=np.random.randn(100) 
sns.distplot(x,axlabel='axlabel',label='label')
plt.legend()
plt.show()

图片如下所示:


seaborn 简单使用_第1张图片
distplot

Boxplot


箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。它能显示出一组数据的最大值、最小值、中位数及上下四分位数。因形状如箱子而得名。

seaborn.boxplot(x=None, y=None, hue=None, data=None, order=None,  
                hue_order=None, orient=None, color=None, palette=None,
                saturation=0.75, width=0.8, dodge=True, fliersize=5,
                linewidth=None, whis=1.5, notch=False, ax=None, **kwargs)
  • x:横轴,可以是列名(如果data是DataFrame的话)或数据。
  • y:纵轴,可以是列名(如果data是DataFrame的话)或数据。
  • data: DataFrame,数组或者列表类型的数组。
  • orient : “v” | “h”,控制绘图方向。
import matplotlib.pyplot as plt
import seaborn as sns

x=np.random.randn(100,3)*3 
df = pd.DataFrame(x,columns=['a','b','c'])
df['label'] = df['a'] // 3
sns.boxplot(x='label',y='a',data=df)
plt.show()

上面绘制了 df['label'] 和 df['a'] 之间关系的箱型图(两者大约为3倍关系)。效果如下:


seaborn 简单使用_第2张图片
boxplot
import matplotlib.pyplot as plt
import seaborn as sns

x=np.random.randn(100,3)*3 
df = pd.DataFrame(x,columns=['a','b','c'])
sns.boxplot(data=df)
plt.show()

这个代码则是分别绘制了 df 中,每列各自的箱型图,效果如下:


seaborn 简单使用_第3张图片
boxplot

Violinplot


violinplot与boxplot扮演类似的角色,它显示了定量数据在一个(或多个)分类变量的多个层次上的分布,这些分布可以进行比较。不像箱形图中所有绘图组件都对应于实际数据点,小提琴绘图以基础分布的核密度估计为特征。

iolinplot(x=None, y=None, hue=None, data=None, order=None,
           hue_order=None, bw='scott', cut=2, scale='area', scale_hue=True, 
           gridsize=100, width=0.8, inner='box', split=False, dodge=True,
           linewidth=None, color=None, palette=None,  ax=None, **kwargs)

栗子如下:

import matplotlib.pyplot as plt
import seaborn as sns

x=np.random.randn(100,3)*3
df = pd.DataFrame(x,columns=['a','b','c'])
sns.violinplot(data=df)
plt.show()

结果如下图:


seaborn 简单使用_第4张图片
violinplot

Countplot


countplot 主要用来统计数目,函数如下:

seaborn.countplot(x=None, y=None, hue=None, data=None, order=None, 
hue_order=None, orient=None, color=None, palette=None, saturation=0.75, 
dodge=True, ax=None, **kwargs)

简单举一个例子:

x=np.random.randint(1,10,(100,))
df = pd.DataFrame(x,columns=['a'])
sns.countplot(x='a',data=df)
plt.show()

结果如下:


seaborn 简单使用_第5张图片
countplot

Heatmap


热图也是常用的数据分析工具,一般会配合相关系数的计算(说白了就是将计算的相关系数矩阵用热图展示出来)。

heatmap(data, vmin=None, vmax=None, cmap=None, center=None, 
            annot=None, fmt=".2g", annot_kws=None,
            linewidths=0, linecolor="white",
            square=False, xticklabels="auto", yticklabels="auto",
            mask=None, ax=None, **kwargs):
  • data:你所要展示的数据。
  • vmin:右侧坐标最小值。
  • vmax:右侧坐标最大值。
  • cmap: 你所使用的颜色图(color map)。
  • annot:是否在每个格子中显示数值。
  • linewidths: 每个格子之间的线宽。
  • linecolor: 每个格子之间线的颜色。
  • square:格子是否为正方形。
    实例如下:
x=np.random.randn(50,5)
df = pd.DataFrame(x)
sns.heatmap(data=df.corr(),linewidths=0.1,linecolor='white',vmax=1.0,
            square=True, annot=True, cmap="RdBu")
plt.show()

结果如下:


seaborn 简单使用_第6张图片
heatmap

好,就先到此为止吧~

你可能感兴趣的