datawhale-动手学数据分析task4笔记

动手学数据分析task4

数据可视化

基础matplotlib

  1. matplotlib的图像都位于figure对象中,创建新的对象用plt.figure

  2. plt.subplot()方法可以更方便地创建一个新figure,并返回一个含有以创建的subplot对象的numpy数组。

    '''
    参数说明:
    - nrows=int,subplot的行数
    - ncols=int,subplot的列数
    - sharex=Bool/'none'/'all'/'row'/'col',所有subplot是否使用相同的x轴刻度(调节xlim将会影响所以的subplot)
    - sharey=Bool/'none'/'all'/'row'/'col',所有subplot是否使用相同的x轴刻度(调节ylim将会影响所以的subplot)
    - squeeze=Bool,是否返回生成图形的具体对象,如果False,则返回一个字图(numpy数组)
    - subplot_kw=dict,用于创建各subplot的关键字字典
    - gridspec_kw=dict,指定子图网格的大小和比例
    - **fig_kw,创建figure时的其他关键字
    '''
    
    # 以下有具体值的为默认值
    plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)
    
  3. plt.bar()函数可以刻画竖直柱状图。

    '''
    参数说明:
    - x=float/list,表示x坐标
    - y=float/list,表示柱状图的高度(y坐标)
    - width=float(0-1)/list,表示柱状图的宽度
    - bottom=float/list,表示柱状图的起始位置
    - align='center'/'edge',表示柱状图的中心位置
    - label 表示标签
    - color=color/color list 表示柱状图颜色,默认blue
    - linewidth=None/float 表示边框宽度
    - linestyle 表示线条样式
    '''
    
    # 以下有具体值的为默认值
    plt.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
    
  4. 可对Series、DataFrame对象直接使用.plot.bar()绘制柱形图。

    # 绘制柱形图
    Series.plot.bar()
    
    # 为柱形图添加title,并展示
    plt.title('...')
    plt.show()
    
  5. .plot()可直接将DF或series数据可视化。

    '''
    参数说明:
    - x=label/position
    - y=None/label/labels/positions
    - kind=str,'line'折线图、'bar'竖直柱状图、'barh'水平柱状图、'hist'直方图、'box'箱线图、'kde''density'核密度估计图、'area'面积图、'pie'饼图、'scatter'散点图、'hexbin'六边形箱图
    - stacked=Bool,是否堆叠图
    '''
    
    # 以下有具体值的为默认值
    df.plot(*args, **kwargs)
    
  6. 可以先将MutiIndex通过.unstack()方法去掉多层索引然后再使用plot(kind='bar', stacked=True)创建堆叠图柱状图,如果去掉stcaked参数即可获得对比柱状图。

seaborn快速入门

  1. 直方图(displot)。

    sns.displot()可以绘制直方图。

    '''
    简易参数说明:
    - x=df中的变量,x轴
    - y=df中的变量,y轴
    - data=df/series/list,需要绘制的数据
    - kde=Bool,是否绘制密度估计曲线
    - bins=int,控制分布矩形数量的参数
    - rug=Bool,毛毯是否显示(代表数据点的位置)
    - width=float,控制直方图中每个柱子的宽度。
    - hist_kw=dict,直方图直方的参数,通过字典显示color、lable...
    - kde_kw=dict,密度曲线的参数,通上hist
    - rug_kw=dict,同上
    '''
    
    # 以下有具体值的为默认值
    sns.displot(df, kde=False, rug=False, width=0.8)
    
  2. 条形图(barplot)。

    sns.barplot()可以绘制条形图。

    '''
    简易参数说明:
    - x=df中的变量,x轴
    - y=df中的变量,y轴
    - data=df/series/list,需要绘制的数据
    - hue=df中的变量,可以对x轴的数据进行细分,细分条件就是hue的参数
    - orient='v'/'h',作图的方向v垂直,h水平
    - order=list,控制轴上展示的顺序
    - hue_order=list,控制轴上hue的展示的顺序
    - width=float,控制条形的宽度
    '''
    
    # 以下有具体值的为默认值
    sns.barplot(df, x, y, orient='v', width=0.8)
    
  3. 计数图(countplot)。

    sns.countplot()可以绘制计数图。

    '''
    简易参数说明:
    - x=df中的变量,x轴
    - y=df中的变量,y轴(改变水平或竖直仅需选择将变量传给参数x或y)
    - data=df/series/list,需要绘制的数据
    - hue=df中的变量,可以对x轴的数据进行细分,细分条件就是hue的参数
    - order=list,控制轴上展示的顺序
    - hue_order=list,控制轴上hue的展示的顺序
    - width=float,控制条形的宽度
    '''
    
    # 以下有具体值的为默认值
    sns.countplot(df, x/y= ,width=0.8)
    
  4. 散点图(stripplot/swarmplot)。

    sns.stripplot()是用少量的随机“抖动”调整分类轴上的点的位置。

    '''
    简易参数说明:
    - x=df中的变量,x轴
    - y=df中的变量,y轴
    可以通过调换x/y轴,实现横向显示
    - data=df/series/list,需要绘制的数据
    - jitter=Bool/int,可以控制抖动的大小
    - hue=df中的变量,对散点图添加更多细分的维度,其会以颜色来进行区分
    - order=list,控制轴上展示的顺序
    - width=float,控制每个类别的点的分布宽度
    '''
    
    # 以下有具体值的为默认值
    sns.stripplot(df, x, y, jitter=True, width=0.8)
    

    sns.swarmplot()表示的是带分布属性的散点图,其使用防止它们重叠的算法沿着分类轴调整点,可以更好地表示观测的分布。

    '''
    简易参数说明:
    - x=df中的变量,x轴
    - y=df中的变量,y轴
    可以通过调换x/y轴,实现\横向显示
    - data=df/series/list,需要绘制的数据
    - hue=df中的变量,对散点图添加更多细分的维度,其会以颜色来进行区分
    - order=list,控制轴上展示的顺序
    - width=float,控制每个类别的点的分布宽度
    '''
    
    # 以下有具体值的为默认值
    sns.swarmplot(df, x, y, jitter=True, width=0.8)
    
  5. 箱线图(boxplot)。
    boxplot(箱线图)是一种用作显示一组数据分散情况的统计图。它能显示出一组数据的最大值、最小值、中位数及上下四分位数。
    h9

    '''
    简易参数说明:
    - x=df中的变量,x轴
    - y=df中的变量,y轴
    可以通过调换x/y轴,实现箱线图的横向显示
    - data=df/series/list,需要绘制的数据
    - hue=df中的变量,对x轴的字段进行细分
    - order=list,控制x轴上展示的顺序
    - hue_order=list,控制x轴上hue的展示的顺序
    - width=float,控制箱体的宽度
    - linewidth=float,控制线条的粗细
    '''
    
    # 以下有具体值的为默认值
    sns.boxplot(df, x, y)
    
  6. 小提琴图(violinplot)。
    小提琴图是箱线图与核密度图的结合,其展示了任意位置的密度。
    在图中,白点是中位数,黑色盒型的范围是下四分位点到上四分位点,细黑线表示须。外部形状即为核密度估计。

    h10

    '''
    简易参数说明:
    - x=df中的变量,x轴
    - y=df中的变量,y轴
    可以通过调换x/y轴,实现横向显示
    - data=df/series/list,需要绘制的数据
    - hue=df中的变量,对x轴的字段进行细分
    - split=Bool,当hue参数只有两个级别时,通过设置此参数“拆分”小提琴,使提琴两边分别表示两个分类的情况
    - inner=None/'box'/'stick'/'quart'/'point'
    None不绘制任何东西,point在内部为每个观测值绘制一个点,quart在内部绘制四分位数线,stick在内部,为每个观测值绘制一条垂直的线
    - order=list,控制x轴上展示的顺序
    - hue_order=list,控制x轴上hue的展示的顺序
    - width=float,控制内部的核密度估计的宽度
    - linewidth=float,控制线条的粗细
    '''
    
    # 以下有具体值的为默认值
    sns.violinplot(df, x, y)
    
  7. 回归图(regplot/lmplot)。

    h11

    '''
    简易参数说明:
    - x=df中的变量,x轴
    - y=df中的变量,y轴
    可以通过调换x/y轴,实现横向显示
    - data=df/series/list,需要绘制的数据
    - ci=None/int(0-100),是否绘制估计的置信区间(一个估计值的不确定性范围)以及该区间的宽度
    - color=matplotlib color,图形的颜色
    - marker=matplotlib marker code/list,数据点的形状
    - linewidth=float,控制回归线的粗细
    - fit_reg=True,是否显示拟合的直线
    '''
    
    # 以下有具体值的为默认值
    sns.regplot(df, x, y, ci=95, color=None)
    

    lmplot()中还可使用hue参数,如果使用col代替hue参数即可将不同的类别分开绘制。

  8. 热力图(heatmap)。
    热力图通常用来表示特征之间的相关性,一般通过颜色的深浅来表示数值的大小或者相关性的高低。

    h12

    # 一般先将df数据用pivot(index, column, value)方法重塑。
    df.pivot(index= , column= , value= )
    
    # 然后再进行热力图的绘制
    # annot=Bool,annot参数控制是否显示数值
    sns.heatmap(f)
    
posted @ 2024-03-18 22:24  LPF05  阅读(11)  评论(0编辑  收藏  举报