• 数据可视化实例(十): 相关图(matplotlib,pandas)


    相关

     https://datawhalechina.github.io/pms50/#/chapter8/chapter8

    导入所需要的库

    import numpy as np              # 导入numpy库
    import pandas as pd             # 导入pandas库
    import matplotlib as mpl        # 导入matplotlib库
    import matplotlib.pyplot as plt
    import seaborn as sns           # 导入seaborn库
    %matplotlib inline              # 在jupyter notebook显示图像

    设定图像各种属性

    large = 22; med = 16; small = 12
    
    params = {'axes.titlesize': large,    # 设置子图上的标题字体
                'legend.fontsize': med,     # 设置图例的字体
                'figure.figsize': (16, 10), # 设置图像的画布
               'axes.labelsize': med,      # 设置标签的字体
                'xtick.labelsize': med,     # 设置x轴上的标尺的字体
                'ytick.labelsize': med,     # 设置整个画布的标题字体
              'figure.titlesize': large}  
    plt.rcParams.update(params)           # 更新默认属性
     plt.style.use('seaborn-whitegrid')    # 设定整体风格
    sns.set_style("white")                # 设定整体背景风格

    程序代码

    # step1:导入数据

    df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv")

    # step2:绘制热力图

        # 画布
    plt.figure(figsize = (12, 10),    # 画布尺寸
              dpi = 80)               # 分辨率
        #热力图
    sns.heatmap(df.corr(),                         # 相关性矩阵数据集
               xticklabels = df.corr().columns,    # 横轴标签
               yticklabels = df.corr().columns,    # 纵轴标签
               cmap = 'RdYlGn',                    # 色谱(调色板)
               center = 0,                         # 将数据设置为图例中的均值数据,即图例中心的数据值
               annot = True)                       # annot默认为False,当annot为True时,在heatmap中每个方格写入数据

    # step3:图像装饰

        # 设置标题和字体
    plt.title('Correlogram of mtcars'   # 设置标题
              , fontsize = 22)          # 设置标题的尺寸
    plt.xticks(fontsize = 12)           # 设置横坐标标尺字体尺寸
    plt.yticks(fontsize = 12)           # 设置横坐标标尺字体尺寸
    plt.show()

    博文总结

    DataFrame.corr(method='pearson', min_periods=1)

    参数说明:

    method:可选值为{‘pearson’, ‘kendall’, ‘spearman’}

                   pearson:Pearson相关系数来衡量两个数据集合是否在一条线上面,即针对线性数据的相关系数计算,针对非线性 数据便会有误差。

                    kendall:用于反映分类变量相关性的指标,即针对无序序列的相关系数,非正太分布的数据

                    spearman:非线性的,非正太分析的数据的相关系数

    min_periods:样本最少的数据量

    返回值:各类型之间的相关系数DataFrame表格。

    seaborn.heatmap

    https://www.cntofu.com/book/172/docs/30.md

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

    将矩形数据绘制为颜色编码矩阵。

    这是一个坐标轴级的函数,如果没有提供给ax参数,它会将热力图绘制到当前活动的轴中。除非cbar为False或为cbar_ax提供单独的Axes,否则将使用此轴空间的一部分绘制颜色图。

    参数:data:矩形数据集

    可以强制转换为ndarray格式数据的2维数据集。如果提供了Pandas DataFrame数据,索引/列信息将用于标记列和行。

    vmin, vmax:浮点型数据,可选参数。

    用于锚定色彩映射的值,否则它们是从数据和其他关键字参数推断出来的。

    cmap:matplotlib 颜色条名称或者对象,或者是颜色列表,可选参数。

    从数据值到颜色空间的映射。 如果没有提供,默认值将取决于是否设置了“center”。

    center:浮点数,可选参数。

    绘制有色数据时将色彩映射居中的值。 如果没有指定,则使用此参数将更改默认的cmap

    robust:布尔值,可选参数。

    如果是True,并且vminvmax为空,则使用稳健分位数而不是极值来计算色彩映射范围。

    annot:布尔值或者矩形数据,可选参数。

    如果为True,则在每个热力图单元格中写入数据值。 如果数组的形状与data相同,则使用它来代替原始数据注释热力图。

    fmt:字符串,可选参数。

    添加注释时要使用的字符串格式代码。

    annot_kws:字典或者键值对,可选参数。

    annot为True时,ax.text的关键字参数。

    linewidths:浮点数,可选参数。

    划分每个单元格的行的宽度。

    linecolor:颜色,可选参数

    划分每个单元的线条的颜色。

    cbar:布尔值,可选参数。

    描述是否绘制颜色条。

    cbar_kws:字典或者键值对,可选参数。

    fig.colorbar的关键字参数。

    cbar_ax:matplotlib Axes,可选参数。

    用于绘制颜色条的轴,否则从主轴获取。

    square:布尔值,可选参数。

    如果为True,则将坐标轴方向设置为“equal”,以使每个单元格为方形。

    xticklabels, yticklabels:“auto”,布尔值,类列表值,或者整形数值,可选参数。

    如果为True,则绘制数据框的列名称。如果为False,则不绘制列名称。如果是列表,则将这些替代标签绘制为xticklabels。如果是整数,则使用列名称,但仅绘制每个n标签。如果是“auto”,将尝试密集绘制不重叠的标签。

    mask:布尔数组或者DataFrame数据,可选参数。

    如果为空值,数据将不会显示在mask为True的单元格中。 具有缺失值的单元格将自动被屏蔽。

    ax:matplotlib Axes,可选参数。

    绘制图的坐标轴,否则使用当前活动的坐标轴。

    kwargs:其他关键字参数。

    所有其他关键字参数都传递给ax.pcolormesh

    返回值:ax:matplotlib Axes

  • 相关阅读:
    洛谷P1908《逆序对》
    洛谷P3884《[JLOI2009]二叉树问题》
    最近公共祖先 LCA
    洛谷P1531《I Hate It》
    洛谷P1563「NOIP2016」《玩具谜题》
    乘法逆元求法
    CF56E 【Domino Principle】
    CF638C 【Road Improvement】
    Luogu
    2018.8.7提高B组模拟考试
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/12891471.html
Copyright © 2020-2023  润新知