数据处理和统计分析——12 Matplotlib绘图

1 数据可视化简介

1.1 数据可视化概念

  • 数据可视化是指直观展现数据,它是数据处理过程的一部分;
  • 把数值绘制出来更方便比较。借助数据可视化,能更直观地理解数据,这是直接查看数据表做不到的;
  • 数据可视化有助于揭示数据中隐藏的模式,数据分析时可以利用这些模式选择模型。

1.2 数据可视化常用库

  • Matplotlib(功能强大,代码相对复杂)

    • Matplotlib是Python编程语言的开源绘图库。它是Python可视化软件包中最突出的,使用最广泛的绘图工具;
    • Matplotlib在执行各种任务方面非常高效,可以将可视化文件导出为所有常见格式(PDF、SVG、JPG、PNG、BMP和GIF);
    • Matplotlib可以创建流行的可视化类型,比如:折线图、散点图、直方图、条形图、误差图、饼图、箱形图以及更多其他类型的图,还支持3D绘图;
    • 许多Python库都是基于Matplotlib构建的,Pandas和Seaborn是在Matplotlib上构建的;
    • Matplotlib项目由John Hunter于2002年启动。Matplotlib最初是在神经生物学的博士后研究期间开始可视化癫痫患者的脑电图(ECoG)数据;
  • Pandas (使用简单,功能稍弱)

    • Pandas的绘图功能基于Matplotlib,是对Matplotlib的二次封装;
    • Matplotlib绘图时,代码相对复杂,使用Pandas绘制基本图表相对比较简单,更加方便;
    • Pandas中常用的数据结构 Series 和 Dataframe 都有plot()方法,用于绘图;
  • Seaborn (推荐使用)

    • Seaborn是基于Matplotlib的图形可视化python开源库;
    • Seaborn是在Matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易;
    • Seaborn的API设计偏向探索和理解数据;
  • ECharts 和 PyEcharts(更好的可视化效果,推荐使用)

    • ECharts,是百度开源,使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表;
    • PyEcharts 是一个用Python生成 Echarts 图表的类库。

2 Matplotlib 绘图

2.1 入门

  • 使用Matplotlib需要导入pyplot,Matplotlib.pyplot包含一系列绘图函数的相关函数:

    python 复制代码
    import matplotlib.pyplot as plt
    plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示汉字
    plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
  • Matplotlib提供了两种方法来作图:状态接口和面向对象;

  • 状态接口:

  • 面向对象:

2.2 案例

  • Anscombe数据集介绍:

    • Anscombe数据集由英国统计学家Frank Anscombe创建,数据集包含4组数据,每组数据包含两个连续变量;
    • 每组数据的平均值、方差、相关性基本相同,但是当它们可视化后,就会发现每组数据的模式明显不同;
  • 数据集中的dataset列,用来区分整个数据集中的四个子数据集:

  • 查看数据的统计分布情况:

  • 从数据的统计量看,对于变量X和Y,4个子数据集的平均值(mean)和标准差(std)基本相同,那可以说明这几个子数据集就完全相同么?

2.3 绘制统计图

  • 使用tips数据集,其中包含了某餐厅服务员收集的顾客付小费的相关数据;

  • 直方图是观察单变量最常用的方法,这些值是经过"装箱"(bin)处理的,直方图会将数据分组后绘制成图来显示变量的分布状况;

  • 散点图用于表示一个连续变量随另一个连续变量(即双变量情况下)的变化所呈现的大致趋势;

  • 如果是多变量,比如添加一个性别变量,可以通过不同的颜色来表示,还可以通过圆点的大小来区分变量的不同(但如果变量的大小区别不大,可能通过圆点大小来区分效果不是很好);

    • 先对性别列进行重新编码,为后续的绘图设置不同的颜色;

    • 绘图:

相关推荐
战族狼魂2 分钟前
北京大兴区房产数据分析项目
信息可视化·数据挖掘·数据分析
王者鳜錸33 分钟前
企业微信+豆包智能体:实现自动化智能客服与数据分析
数据分析·自动化·企业微信·智能客服·豆包智能体
醉卧考场君莫笑14 小时前
EXCEL数据分析基础(没有数据统计和数据可视化)
信息可视化·数据分析·excel
叁散14 小时前
实验二:船舶雷达感知数据分析与利用
数据挖掘·数据分析
Narrastory16 小时前
给数据“做减法”:PCA与UMAP详解与代码实现
人工智能·数据分析
老歌老听老掉牙17 小时前
使用 Matplotlib 自定义坐标轴字体及刻度样式详解
python·matplotlib
天呐草莓1 天前
聚类(Clustering)算法
人工智能·python·算法·机器学习·数据挖掘·数据分析·聚类
Brduino脑机接口技术答疑2 天前
TDCA 算法在 SSVEP 场景中的 Padding 技术:原理、应用与工程实现
人工智能·算法·机器学习·数据分析·脑机接口
A3608_(韦煜粮)2 天前
从数据沼泽到智慧引擎:现代大数据分析与应用架构全景解密
大数据·数据分析·数据治理·实时计算·数据架构·数据网格·数据湖仓
心无旁骛~2 天前
华为 ModelEngine Nexent低代码平台单智能体评测:数据分析智能体 —— 零代码实现数据洞察与可视化闭环
低代码·数据挖掘·数据分析