【学习笔记】Seaborn常用图函数

热图heatmap


seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=None, annot=None, fmt='.2g', annot_kws=None, linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticlabels='auto', yticklabels='auto', mask=None, ax=Node, **kwargs)

  1. 参数解释:
    data - 矩阵数据集。可强制转换为2维数据集。如果提供了DataFrame数据,索引/列信息将用于标记列和行。
    vmin, vmax - 浮点型数据,可选参数。
    用于锚定色彩映射的值。
    cmap - matplotlib颜色条名称或对象,或颜色列表,可选参数。
    从数据值到颜色空间的映射。默认值取决于是否设置了'center'。
    center- 浮点数, 可选参数。
    绘制有色数据时将色彩映射居中的值。如果没有设置,则使用该参数将更改默认的cmap。
    robust - bool值,可选参数。
    若为True,且vminvmax为空,则使用稳健分位数而不是极值来计算色彩映射范围。
    annot - bool值或矩形数据,可选参数。
    True表示在每个热力图单元格中写入数据值。如果数组的形状和data相同,则用它来代替原始数据注释热力图。
    fmt - 字符串,可选参数。
    添加注释时要使用的字符串格式代码。
    annot_kws - 字典或键值对,可选参数。
    annot为True时,ax.text的关键字参数。
    linewidths - 浮点数,可选参数。 划分每个单元格的行的宽度。
    linecolor - 颜色,可选参数。划分每个单元格的线条的颜色。
    cbar - bool值,可选参数。 是否绘制颜色条。
    cbar_kws - 字典或键值对,可选参数。fig.colorbara的关键字参数。
    cbar_ax - matplotlib Axes, 可选参数。 用于绘制颜色条的轴,否则从主轴获取。
    square - bool值,可选参数。 True表示每个单元格为方形。
    xticlabels, yticklabels - 'auto', bool值,类列表值或整型数值,可选参数。
    True表示绘制数据框的列名称。如果是列表,则将标签绘制为xticklabels。如果是整数,则使用列名称,但仅绘制每个n标签。
    mask - bool值或DataFrame数据,可选参数。 如果是空值,数据不会显示在mask为True的单元格中,具有缺失值的单元格自动被屏蔽。
    ax - matplotlib Axes, 可选参数。绘制图的坐标轴。
    kwargs - 其他关键字参数。 都传递给ax.pcolomesh。
  2. 示例
sns.set_style('dark')

plt.figure(figsize=(10,8))
# 提取特征名
colnm = data.columns.tolist()[:11] + ['total acid', 'quality'] 
# 计算协相关
mcorr = data[colnm].corr()   # 相关矩阵
mask = np.zeros_like(mcorr, dtype=np.bool) # 构造一个零数组,形状和mcorr矩阵相同、数据类型为bool,默认为False
mask[np.triu_indices_from(mask)] = True   # 把上三角矩阵的值改为True
cmap = sns.diverging_palette(220, 10, as_cmap=True)   # 设置颜色
sns.heatmap(mcorr, mask=mask, cmap=cmap, square=True, annot=True, fmt='0.2f')
Heatmap.png

线性回归图regplot


sns.regplot(x=None, y=None, data=None, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, dropna=True, x_jitter=None, y_jitter=None, label=None, color=None, marker='o', scatter_kws=None, line_kws=None, ax=None)

  1. 参数解释:
    x, y - x轴、y轴坐标轴名称。字符串, 序列, or 向量数组
    data - 数据。类型为DataFrame。
    scatter - True表示绘制一个散点图。类型为bool值,可选参数。
    fit_reg - True表示绘制回归直线。
    label - 用于散点图或回归线的标签。
    color - 设置颜色
    marker - 散点图的标记,默认为'o'(圆点)
    scatter_kws - 传递给plt.scatter的其他关键字参数。
    line_kws - 传递给plt.plot的其他关键字参数。
    ax - 轴对象
  2. 示例
sns.set_style('ticks')

plt.figure(figsize=(6,4))    # 设置图表大小
sns.regplot(x='density',   # x轴标签
            y='alcohol',    # y轴标签
            data=data,    # 数据
            color=color[2],    # 设置颜色
            scatter_kws={'s': 10})     # 设置样本点大小
plt.xlim(0.989, 1.005)   # x轴取值范围
plt.ylim(7, 16)   # y轴取值范围
Regplot.png

回归模型图lmplot


seaborn.lmplot( x=None, y=None, data=None, hue=None, col=None, row=None, palette=None, col_wrap=None, height=5, aspect=1, markers='o', sharex=True, sharey=True, hue_order=None, col_order=None, row_order=None, legend=True, legend_out=True, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, x_jitter=None, y_jitter=None, scatter_kws=None, line_kws=None, size=None)

  1. 参数解释:
    x - x轴变量,数据data的列名。
    y - y轴变量,数据data的列名。
    data - 数据。
    hue, col, row - 一个变量,用于分类,将data分成几个子集。数据data的列名。

    • hue将子集显示在一张图中;
    • col根据变量的不同值,一个子集一张图,横向排列;
    • row 根据变量的不同值,一个子集一张图,纵向排列。

    palette - 调色盘
    col_wrap - 指定每行的列数,最多等于col参数所对应的不同类别的数量。类型为int。
    order - 控制进行回归的幂次(一次以上即是多项式回归)。类型为int。
    sharex, sharey - 是否共享x、y轴。True表示共享x、y轴。
    scatter_kws - 传递给plt.scatter的其他关键字参数。
    line_kws - 传递给plt.plot的其他关键字参数。
    fit_reg - True表示绘制回归直线。
    size - 设置子图大小。
    aspect - 每个子图的长宽比。

  2. 示例

plt. style.use('ggplot')

sns.lmplot(x='alcohol', y='volatile acidity', data=data, 
           hue='quality',    # 根据属性'quality'分类
           scatter_kws={'s': 10},    # 设置散点大小
           fit_reg=False)   # 不显示回归线
Implot 1.png
# 先用hue把不同分类标为不同颜色,用col分开显示类别,用col_warp指定每行显示几个类别。
sns.lmplot(x='alcohol', y='volatile acidity', data=data, 
           hue='quality',    # 根据属性'quality'分类
           col='quality',    # 属性'quality',一个类别一个图表
           col_wrap=3,    # 设置每行显示的图表个数
           fit_reg=False,    # 不显示回归线
           aspect=0.9,     # 每个子图的长宽比
           scatter_kws={'s': 20}, 
           size=3)     # 设置子图大小
Implot 2.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容