Matplotlib系列(一):快速绘图入门

Matplotlib绘图
本文介绍Matplotlib绘图库的基础知识,包括过程式和面向对象两种绘图方式,绘图对象层次组成,及如何创建画布、图表,设置点线样式、颜色等。同时提供了丰富的示例代码。

Matplotlib系列目录



一、 简介

‎pyplot‎‎是 matplotlib 的一个基于状态的接口。‎可以快速的绘制图表。通常我们绘图只需要通过pyplot的接口就可以了。

matplotlib还有一个pylab接口,pylab接口实际上就是导入了pyplot接口以及numpy,scipy的一些函数。不推荐使用pylab,官网也同样不推荐。

Matplotlib系列将Matplotlib的知识和重点API,编制成思维导图和重点笔记形式,方便记忆和回顾,也方便应用时参考,初学者也可以参考逐步深入学习。

二、 思维导图

Matplotlib快速绘图

三、 Matplotlib快速绘图

1. 两种绘图方式

1.1 过程式绘图

import matplotlib.pyplot as plt
plt.plot(x,y)            #绘制折线图
plt.show()               #显示图形

就这么简单,依次调用pyplot模块中的相应函数就可以完成绘图。

1.2 面向对象绘图

采用面向对象的方式,也非常方便,并且更加容易对图形进行修改控制。

import matplotlib.pyplot as plt
fig=plt.figure()             #创建画布
ax=fig.subplots()            #在画布上创建一个图表
ax.plot(x,y)                 #图表上绘制线条
plt.show()                   #显示图形

画布上可以显示多个图表,fig.subplots()无参数创建图表,默认创建一个图表。

2. matplotlib绘图对象层次组成

在Matplotlib中,一个图形对象由容器、图表、图表元素几层对象组成。

  • Figure:画布对象。是可以包含多个图表的容器。matplotlib中的顶层对象。
    • Text:suptitle,supxlabel,supylabel等画布级别的文本标签。
    • Axes:图表对象。指一个含坐标轴、点线图形、图例等的图表。
      • Text:title标题文本标签
      • Spine:边框,坐标轴线。
      • Axis:XAxis,YAxis坐标轴。
        • Text:label坐标轴标签
        • Tick:刻度元素
          • 主刻度、次刻度
          • 刻度值
          • 网格线
      • Legend:图例
      • Line2D、Markers等图形元素
      • Text:其他文本
    • Legend:图例(放在图表框之外的画布级图例)。
  • Figure对象的属性texts、axes、legends,以及get_children()函数可以获得子对象。
  • Axes对象的属性title、spines、xaxis、yaxis、legend_、lines、texts,以及get_children()函数可以获得子对象。
  • Axis坐标轴通常可以直接用Axes对象的方法直接操作
  • 所有可见的对象,比如Figure、Axes、Line2D、Text等都继承自Artist类。

Matplotlib中用Axes表示图表有点让人容易误解,可能是一个图表包含多个坐标轴吧,所以有人把Axes翻译为轴域或坐标系。

Matplotlib图形组成

如果上图看不到,请到官网图形组成链接查看。

3. Matplotlib面向对象绘图过程

3.1 典型代码示例

先看一个典型的示例

#准备数据
import numpy as np
x=np.linspace(-np.pi,np.pi,100)
y=np.sin(x)

#导入matplotlib库pyplot模块
import matplotlib.pyplot as plt

#创建画布
fig=plt.figure()

#创建图表
ax=fig.subplots()

#绘制折线图,设置点线样式,设置线条名称
ax.plot(x,y,'+r--', label='line1',mec='b',ms=10)  #点为蓝色+(大小为10),线为红色虚线

#设置坐标轴
ax.set_xlabel('X axis')            #坐标轴文本标签
ax.set_ylabel('Y axis')
ax.set_xticks([-4,
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hustlei

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值