Python 3.x | 【初见】数据可视化(视觉化)工具之绘图:matplotlib(区别:numpy、scipy、pandas、matplotlib)

环境

  • win 10
  • anaconda 4.2.0(对应python 3.5.2),是Python的一个开源发行版本,自带numpy、pandas、matplotlib等科学包及其依赖项
    • 在命令行窗口输入conda list可列出所安装的包
    • matplotlib 1.5.3
  • notepad++(python环境集成到了notepad++)
    • ctrl+f5调试,执行程序;
    • ctrl+f6调出交互式窗口

区别:numpy、scipy、pandas、matplotlib

  • 1,numpy,基础。以矩阵为基础的数学计算模块,纯数学。存储和处理大型矩阵
    • 这个是很基础的扩展,其余的扩展(如下方的这些)都是以此为基础。所以安装时是依赖关系。
    • N维数组容器
  • 2,pandas,数据分析。基于NumPy 的一种工具,为了解决数据分析任务而创建的。表格容器
    • 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
      最具有统计意味的工具包,某些方面优于R软件。
    • Pandas提供了一套名为DataFrame的数据结构,比较契合统计分析中的表结构,并且提供了计算接口,可用Numpy或其它方式进行计算
    • 数据结构有:
      • 一维的Series
      • 二维的DataFrame(类似于Excel或者SQL中的表,如果深入学习,会发现Pandas和SQL相似的地方很多,例如merge函数)
      • 三维的Panel(Pan(el) + da(ta) + s名字的由来)
    • 学习pandas要掌握:
      • 汇总和计算描述统计,处理缺失数据 ,层次化索引
      • 清理、转换、合并、重塑、GroupBy技术
      • 日期和时间数据类型及工具(日期处理方便到6)。
  • 3,matplotlib,绘图。
    • Python中最著名的绘图系统。很多其他的绘图例如seaborn(针对pandas绘图而来)也是由其封装而成。
    • 这个绘图系统操作起来很复杂,和R的ggplot,lattice绘图相比显得望而却步
    • 但是matplotlib的复杂给其带来了很强的定制性。其具有面向对象的方式及Pyplot的经典高层封装
    • 需要掌握的是:
      • 散点图,折线图,条形图,直方图,饼状图,箱形图的绘制。
      • 绘图的三大系统(模块):pyplot,pylab(不推荐),面向对象
      • 坐标轴的调整,添加文字注释,区域填充,及特殊图形patches的使用
      • 金融的同学注意的是:可以直接调用Yahoo财经数据绘图.
  • 4,scipy,数值计算库(科学计算库,有一些高阶抽象和物理模型)
    • 在NumPy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。即:科学计算函数库
    • 方便、易于使用、专为科学和工程设计的Python工具包
    • 它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理(比如 滤波器),常微分方程求解器等等

参考 matplotlib中文网

Matplotlib,math + plot +lib,一个数学绘图库

plot
n.故事情节、布局、阴谋
v.密谋、暗中策划;(在地图上)画出、标出;绘图(图表)

Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。Matplotlib可在多种环境下运行,包括Python脚本、Python及IPython shell命令行,Jupyter notebook,网络应用服务器与四个图形用户界面工具包。

Matplotlib广泛应用于数据视觉化,运行良好,用户界面与Matlab相似度较低,并给予用户极大的编码灵活度。写编码可能会很无聊,但Matplotlib会给用户极大的自由。

matplotlib 是一个开源项目,由 John Hunter 发起。关于 matplotlib 的由来,有一个小故事。John Hunter 和他研究癫痫症的同事借助一个专有软件做脑皮层电图分析,但是他所在的实验室只有一份该电图分析软件的许可。他和许多一起工作的同事不得不轮流使用该软件的硬件加密狗。于是,JohnHunter 便有了开发一个工具来替代当前所使用的软件的想法。当时MATLAB被广泛应用在生物医学界中,John Hunter等最初是想开发一个基于MATLAB的版本,但是由于MATLAB的一些限制和不足,加上他本身对Python非常熟悉,于是就有了matplotlib的诞生。所以,无论从名字上,还是从matplotlib提供的函数名称、参数及使用方法都与MATLAB非常相似。

参考:

使用Matplotlib一些常见 概念名词:

在绘图结构中
figure,n.图形----创建窗口
subplot----创建子图(或叫 子区)
所有的绘画只能在子图上进行

axis,[ˈæksɪs] 坐标轴,轴线
复数是axes

legend,n.除了译作:传说、传奇故事/人物。之外,还有:
	(地图或书中图表的)图例、说明、解释

tick,表示x/y轴上的刻度
fig = plt.figure()#返回Figure实例。接着才可以添加Axes实例

ax = fig.add_subplot(111)#返回一个Axes实例(坐标轴),含x、y轴
3个参数合为 1个。等价于add_subplot(1,1,1)
- 子图总行数
- 子图总列数
- 子图位置

总结:
这些是作为单个整数编码的子绘图网格参数。
例如:
“111”表示“1×1网格,第一子图”,
“234”表示“2×3网格,第四子图”。
fig = plt.figure()
fig.add_subplot(221)
plt.show()

在这里插入图片描述
把上述fig.add_subplot(221)换成fig.add_subplot(221)
在这里插入图片描述

fig = plt.figure()
fig.add_subplot(111)
plt.show()

运行结果是这样:
在这里插入图片描述

同时运行下方代码,效果:

import matplotlib.pyplot as plt
fig = plt.figure()
fig.add_subplot(221)
fig.add_subplot(222)
fig.add_subplot(223)
fig.add_subplot(224)
plt.show()

在这里插入图片描述


版权声明:本文为weixin_38256474原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>