数据处理和统计分析——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)处理的,直方图会将数据分组后绘制成图来显示变量的分布状况;

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

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

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

    • 绘图:

相关推荐
Y.ppm14 分钟前
数分思维14:用户研究与数据分析
数据挖掘·数据分析
Damon小智7 小时前
基于华为开发者空间的Open WebUI数据分析与可视化实战
华为·ai·数据挖掘·数据分析
华科云商xiao徐11 小时前
基于Mojo与Mechanize的Perl高效爬虫实现
爬虫·数据挖掘·数据分析
chase。12 小时前
Matplotlib与PySide6兼容性问题及解决方案
matplotlib
青云交12 小时前
Java 大视界 -- Java 大数据在智能医疗电子病历数据分析与临床决策支持中的应用(382)
java·大数据·数据分析·flink·电子病历·智能医疗·临床决策
派可数据BI可视化1 天前
CIO如何规划企业BI分析指标体系 —— 从经营出发到绩效管理
数据仓库·信息可视化·数据挖掘·数据分析·商业智能bi
没有梦想的咸鱼185-1037-16631 天前
Python科研数据可视化技术
python·机器学习·信息可视化·数据分析
SelectDB1 天前
森马服饰从 Elasticsearch 到阿里云 SelectDB 的架构演进之路
大数据·数据库·数据分析
Mr数据杨1 天前
K均值聚类与Apriori应用探索中医证素数据分析
均值算法·数据分析·聚类