• 【图多预警】Pandas绘图函数总结


    简介

    pandas中提供了plot函数用以绘图,并通过kind参数选择具体的图像类型。

    method绘图类别method绘图类别
    ‘line’折线图[默认使用]‘area’堆叠面积图
    ‘bar’纵向条形图‘barh’横向条形图
    ‘kde’概率分布图‘density’概率分布图
    ‘box’箱线图‘hist’数据直方图
    ‘pie’饼图
    ‘scatter’散点图‘hexbin’六角拼接图

    其中scatterhexbin只适用于数据帧,即DataFrame格式。所谓DataFrame,即数据帧,可以理解为一个表格,如果不考虑表头的话,这个表格就是多维数组

    对于这些图像类别,也可以调用专门封装成的函数进行绘制,例如针对下面这组数据

    import matplotlib.pyplot as plt
    import pandas as pd
    s = pd.Series([1, 2, 2.5, 3, 3.5, 4, 5])
    
    • 1
    • 2
    • 3

    s.plot.kde()完全等价于s.plot(kind='kde')

    接下来逐个展示这些图表

    条形图

    pandas中提供横向和纵向两种条形图。

    import numpy as np
    df = pd.DataFrame(np.random.rand(10,5),
        columns=['a','b','c','d','e'])
    df.plot.bar(title="bar")
    df.plot.barh(title="barh", stacked=True)
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    barbarh
    在这里插入图片描述在这里插入图片描述

    折线图

    df.plot.line(title="line")
    df.plot.area(title="area")
    plt.show()
    
    • 1
    • 2
    • 3
    linearea
    在这里插入图片描述在这里插入图片描述

    箱线图

    箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后, 连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数在箱体中间。

    df.plot.box(title='box')
    df.plot.kde(title='kde')
    plt.show()
    
    • 1
    • 2
    • 3
    boxkde
    在这里插入图片描述在这里插入图片描述

    直方图

    hist为数据直方图,多条数据放在一起容易混淆,可以设置透明度alpha。下面对高斯分布的散点进行绘制,分别绘制其数据直方图和概率密度图,可以看出二者之间的关联性。

    rdNormal = np.random.normal
    rand = np.random.rand
    df = pd.DataFrame({
        i : rdNormal(i,rand(),size=(1000)) for i in range(3)})
    df.plot.hist(title='box', bins=30, alpha=0.5)
    df.plot.density(title='density')
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    histdensity
    在这里插入图片描述在这里插入图片描述

    饼图

    饼图对输入数据有一定的限制,即不允许出现负值,故在绘制之前,将df所有值取绝对值,且不支持多组数据在一个图中绘制,故而需要开启subplot选项

    df = pd.DataFrame(np.random.rand(5,3),columns=list('abc'),index=list("ABCDE"))
    df.plot.pie(title='pie', subplots=True)
    plt.show()
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    当然,这个subplots选项是任何一种图像都可以使用的参数。

    散点图和六边形分箱图

    散点图是只有数据帧可以调用的绘图方法,共有两类,分别是scatterhexbin,前者是普通的散点图,后者是六边形分箱图,本质上是一种二维的数据直方图。

    rdNormal = np.random.normal
    rand = np.random.rand
    keys = ['x', 'y', 'c']
    datas = {
        keys[i] : rdNormal(i,rand(),size=(1000)) for i in [0,1,2]
    }
    df = pd.DataFrame(datas)
    df.plot.scatter(x='x', y='y', c='c')
    df.plot.hexbin(x='x', y='y', gridsize=10)
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    scatterhexbin
    在这里插入图片描述在这里插入图片描述
  • 相关阅读:
    面试面经|Java多线程面试题
    2、CSS基础
    表格数据管理的新视角:JVS低代码的两大应用场景
    模板编程:采用vector作为底层实现stack的功能(包括初始化列表和迭代器的实现)
    axios基本使用
    C语言实现简单CRC校验
    CVPR2023新作:源数据集对迁移学习性能的影响以及相应的解决方案
    【OpenVINO】行人摔倒检测 — 基于 OpenVINO C# API 部署PP-Human-下篇
    Java core——注解详解
    面向大规模向量搜索引擎的内存-硬盘优化的近似最近邻搜索算法(GRIP)
  • 原文地址:https://blog.csdn.net/m0_37816922/article/details/128065471