Matplotlib简介
Matplotlib是一个Python 2D绘图库,可以生成各种硬拷贝格式和跨平台的交互式环境的出版物质量数据。Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。
具体介绍可参考matplotlib官网
通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。具体可查看官网Matplotlib中的示例图
- 是专门用于开发2D图表(包括3D图表)
- 使用起来及其简单
- 以渐进、交互式方式实现数据可视化
Matplotlib可视化的作用
可视化是在整个数据分析的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。
- 能将数据进行可视化,更直观的呈现
- 使数据更加客观、更具说服力
例如下面两个图为数字展示和图形展示:
实现一个简单的Matplotlib画图
import matplotlib.pyplot as plt #导入模块,plt约定俗成的命名
plt.figure(figsize=(6,4))
plt.plot([1,2,3,4],[4,3,9,10])
plt.show()
Matplotlib图像结构
容器层:画布,绘图区,坐标轴
Canvas画布,常规的绘图操作不会涉及这个部件
Figure图,可以通过Figure控制图像的大小
Axes绘图区,用来绘制图像的区域,里面有X/Y轴
辅助显示层:
标题,X/Y轴标题,网格,图例等
图像层:
根据数据绘制出来的内容
Matplotlib三层结构详解
1 容器层
容器层主要由Canvas(画布)、Figure(图形,绘图区)、Axes(轴)
Canvas(画布)底层的系统层,在绘图的过程中充当画板的角色,即放置Figure(绘图区)的工具
Figure是Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在绘图的过程中充当画布的角色。
Axes是应用层的第二层,在绘图的过程中相当于画布上的绘图区的角色。
- Figure:指整个图形(可以通过plt.figure()设置画布的大小和分辨率等)
- Axes(坐标系):数据的绘图区域
- Axis(坐标轴):坐标系中的一条轴,包含大小限制、刻度和刻度标签
特点为:
- 一个figure(画布)可以包含多个axes(坐标系/绘图区),但是一个axes只能属于一个figure。
- 一个axes(坐标系/绘图区)可以包含多个axis(坐标轴),包含两个即为2d坐标系,3个即为3d坐标系
2 辅助显示层
辅助显示层为Axes(绘图区)内的除了根据数据绘制出的图像以外的内容,主要包括
- Axes外观(facecolor)
- 边框线(spines)
- 坐标轴(axis)
- 坐标轴名称(axis label)
- 坐标轴刻度(tick)
- 坐标轴刻度标签(tick label)
- 网格线(grid)
- 图例(legend)
- 标题(title)
等内容。
该层的设置可使图像显示更加直观更加容易被用户理解,但又不会对图像产生实质的影响。
3 图像层
图像层指Axes内通过
- plot(折线图)
- scatter(散点图)
- bar(柱状图)
- histogram(直方图)
- pie(饼图)
等函数根据数据绘制出的图像。
总结:
- Canvas(画板)位于最底层,用户一般接触不到
- Figure(画布)建立在Canvas之上
- Axes(绘图区)建立在Figure之上
- 坐标轴(axis)、图例(legend)等辅助显示层以及图像层都是建立在Axes之上