Python数据分析实战—用matplotlib实现数据可视化(1)

《Python数据分析实战》

matplotlib优点:

  • 使用起来极其简单
  • 以渐进、交互式方式实现数据可视化
  • 表达式和文本使用LaTeX排版
  • 对图像元素控制力更强
  • 可输出PNG、PDF、SVG和EPS等多种格式

1.matplotlib架构

matplotlib的主要任务之一,就是提供一套表示和操作图形对象(主要对象)以及它的内部对象的函数和工具。
然而,matplotlib不仅可以处理图形,还提供事件处理工具,具有为图形添加动画效果的能力。有了这些附加功能,matplotlib就能够生成以键盘按键或鼠标移动的事件的交互式图表。

从逻辑上来讲,matplotlib的整体架构由位于三个不同层级的三层组成。各层之间单向通信,即每一层只能与它的下一层通信,而下层无法与上层通信。
matplotlib的架构分为以下三层:

  • Scripting(脚本)层
  • Artist(表现)层
  • Backend(后端)层

Backend(后端)层:

最下面一层为Backend层。matplotlib API即位于该层,这些API是用来再底层实现图形元素的一个个类。

  • FigureCanvas对象实现了绘图区域这一概念。
  • Renderer对象再FigureCanvas上绘图。
  • Event对象处理用户输入(键盘和鼠标事件)

Artists(表现)层:

中间层为Artist层。图形中所有能看到的元素都属于Artist对象,即标题、轴标签、刻度等组成图形的所有元素都是Artist对象的实例。图形中的每个元素的实例再层级结构中有着自己的位置。

这里写图片描述

图表的各元素分别对应一个Artist实例,所有实例形成层级结构。

Artist类分为两种:原始(primitive)和复合(composite)。

绘制Line2D或矩形、圆形等几何图形,甚至文本等图形时,形成图形表示的基础元素由primitive artist单个对象组成。
由多个基础元素—primitive artist—组成的图表中的图像元素叫作composite artist,例如Axis(单条轴)、Ticks(刻度)、Axes(轴)和Figure(图形)。

这里写图片描述

一般而言,在中国阶段(Artist),你通常需要处理Figure、Axes和Axis等位于高层级的对象。因此,透彻理解这些对象和它们在图形表示中所扮演的角色很重要。

Figure对象在Artist层的最上面,对应整个图形表示,通常可包含多条轴(Axes)。

Axes对象通常表示图形或图表是对什么内容进行作图的。每个Axes对象只属于一个Figure对象,由两个(三维就有三个)Artist Axis对象组成。标题、x标签和y标签等对象都属于Axes这个composite artist类型的对象。

Axis对象负责展示在Axes对象上面的数值,定义数值分为,管理刻度(轴上的标记)和刻度值标签(代表每个刻度大小的文本标签)。刻度的位置用Locator对象调整,刻度标签的格式用Formatter对象调整。

Scripting(脚本)层:

Artist类和相关函数(matplotlib API)非常适合开发人员,尤其时Web应用服务器或GUI开发者使用。但是对于计算,尤其是数据分析和可视化,Scripting层最适合。该层包含pyplot接口。

pylab和pyplot:

pylab在同一命名空间整合了pyplot和Numpy的功能,因此无需再单独导入Numpy。更进一步来说,导入pylab后,pyplot和Numpy的函数就可以直接调用,而不用再指定其所属模块(命名空间),从而使得matplotlib开发环境更像是Matlab。

#1.pylab
from pylab import *
plot(x,y)
array([1,2,3,4])

#2.pyplot
import matplotlib.pyplot as plt
import numpy as np

plt.plot()
np.array([1,2,3,4])

2.pyplot

pyplot具有状态性特征,它能跟踪当前图形和绘图区域得状态。调用函数时,函数只对当前图形起作用。

生成

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值