Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。在matplotlib中使用最多的模块就是pyplot,pyplot非常接近Matlab的绘图实现,而且大多数的命令与Matlab类似。

  第一篇就简要概括一下matplotlib的几种工作流程,这和matlab还是很相似的,可以对照学习。

matplotlib WorkFlow

plt.plot

import matplotlib.pyplot as plt
import numpy as npt1 = np.arange(0.0, 1.0, 0.01)for n in [1, 2, 3, 4]:plt.plot(t1, t1**n, label="n=%d"%(n,))plt.ylabel('values')plt.axis([0, 1, 0, 1])  # 设置坐标轴范围
# plt.axis 注意与plt.xlim区分, 后者可用于翻转刻度,如x轴 5-->0leg = plt.legend(loc='best', ncol=2, mode="expand", shadow=True, fancybox=True)
leg.get_frame().set_alpha(0.5)# latex写法
# plt.title(r'$\alpha_i > \beta_i$', fontsize=20)
# plt.text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20)plt.savefig('test.png')
plt.show()

plt.subplot

import numpy as np
import matplotlib.pyplot as pltdef f(t):return np.exp(-t) * np.cos(2*np.pi*t)t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)plt.figure(1)
ax1 = plt.subplot(211)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')ax2 = plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()

plt.subplots

import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import numpy as np
from numpy.random import multivariate_normaldata = np.vstack([multivariate_normal([10, 10], [[3, 2], [2, 3]], size=100000),multivariate_normal([30, 20], [[2, 3], [1, 3]], size=1000)
])gammas = [0.8, 0.5, 0.3]# 特别注意该种用法, 体现出matlib的原生特点
fig, axes = plt.subplots(nrows=2, ncols=2)axes[0, 0].set_title('Linear normalization')
axes[0, 0].hist2d(data[:, 0], data[:, 1], bins=100)for ax, gamma in zip(axes.flat[1:], gammas):ax.set_title('Power law $(\gamma=%1.1f)$' % gamma)ax.hist2d(data[:, 0], data[:, 1],bins=100, norm=mcolors.PowerNorm(gamma))fig.tight_layout()plt.show()

add_subplot

x = np.arange(0, 10, 0.2)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y)
plt.show()

小技巧

# Format the minor tick labels of the y-axis into empty strings with
# `NullFormatter`, to avoid cumbering the axis with too many labels.plt.gca().yaxis.set_minor_formatter(NullFormatter())# Adjust the subplot layout, because the logit one may take more space
# than usual, due to y-tick labels like "1 - 10^{-3}"
plt.subplots_adjust(top=0.92, bottom=0.08, left=0.10, right=0.95, hspace=0.25,wspace=0.35)

小结 (重点)

  上面所列举的四个常见WorkFlow其实分为两大类, 一大类是类似于Matlab命令式的绘图方式;另一大类是面向对象的绘图方式。前两种属于Matlab命令式绘图;后两种属于面向对象绘图。pyplot API属于前者,通常它不如面向对象的API灵活,其大多数函数调用也可以作为Axes对象中的方法调用。所以,推荐的学习方法是,了解matplotlib绘图原理,然后推荐大多数场景使用面向对象的绘图方式,这样可以使代码更加简洁明了,便于维护。

Matplotlib(一)工作流程相关推荐

  1. 批处理节省时间_简单的设计工作流程技巧,节省时间和头痛

    批处理节省时间 Does the way you work help you or slow you down? Do you feel efficient in your design workfl ...

  2. 笔记:机器学习的工作流程

    1.机器学习工作流程介绍 本文学习如何思考机器学习问题.机器学习(ML)不仅关于数学和建模,而且关于选择问题的设置,识别客户需求和长期目标.本文的组织如下: 1.通过识别关键利益相关者,选择正确的度量 ...

  3. 机器学习-工作流程与模型优化

    一.前序工作流程 1. 数据处理 数据清洗     不可信的样本丢掉     缺省值极多的字段考虑不用 数据采样     下/上采样     保证样本均衡 2. 特征工程 特征处理:     数值型 ...

  4. 人工智能开发人员工作流程、看法、工具统计数据

    人工智能开发人员工作流程.看法.工具统计数据 本文目录: 一.人工智能开发所需要的技能和知识 二.开发人工智能需要以下工具 2.1.开发过程中的人工智能工具调查 2.2.AI 工具情绪调查 2.3.A ...

  5. GPU—加速数据科学工作流程

    GPU-加速数据科学工作流程 GPU-ACCELERATE YOUR DATA SCIENCE WORKFLOWS 传统上,数据科学工作流程是缓慢而繁琐的,依赖于cpu来加载.过滤和操作数据,训练和部 ...

  6. python爬虫之Scrapy框架的post请求和核心组件的工作 流程

    python爬虫之Scrapy框架的post请求和核心组件的工作 流程 一 Scrapy的post请求的实现 在爬虫文件中的爬虫类继承了Spider父类中的start_urls,该方法就可以对star ...

  7. WifiP2pSettings工作流程

    本文为<深入理解Android Wi-Fi.NFC和GPS卷>读书笔记,Android源码为Android 5.1 Android平台中,P2P操作用户只需执行如下三个步骤: 1)进入Wi ...

  8. Blender+SP+UE5游戏艺术工作流程学习

    Blender到虚幻引擎5 Blender游戏艺术 Blender for Game Art 你会学到: 如何在Blender中创建三维模型 UV如何展开和布局 如何在Substance Painte ...

  9. Revit: Twinmotion工作流程学习

    Revit: Twinmotion Workflow MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 技能等级:中级|语言:英语+中英文字幕(根据原英文字幕机译 ...

最新文章

  1. 快手EB级HDFS挑战与实践
  2. IntelliJ IDEA中Maven插件无法更新索引之解决办法
  3. 1009 产生数 2002年NOIP全国联赛普及组
  4. MapReduce操作时Error:The method setInputPaths(JobConf, String) in the type FileInputFormat is not
  5. C++学习笔记系列一
  6. varnish 高性能方向代理服务器
  7. [转]设计模式六大原则[1]:单一职责原则
  8. 不要根据自己的喜好创业
  9. python传递list给前端并在前端成功显示图片·可以显示多张后台传过来的图片
  10. 楷书书法规则_书法结构|楷书10大结构原则详解之3--主笔突出原则
  11. js设置禁止浏览器刷新,右键和F5键
  12. 个人晋升演讲ppt_晋升面试ppt自我展示演讲稿
  13. PhotoShop十大使用技巧总结
  14. 嘿,妈妈,我是设计师
  15. C语言|博客作业07
  16. CSS选择器的优先级的相关介绍
  17. 计量经济学及stata应用思维导图_陈怡丨 例谈“思维导图”在小学英语读写课中的应用...
  18. css内行样式、外部样式、内部样式
  19. HashMap源码阅读启读
  20. Kotlin学习(6)-类和对象之类成员介绍

热门文章

  1. hadoop学习之:Map、Reduce详解
  2. @ComponentScan配置扫描多个包
  3. Select的OnChange()事件中获取选中的值
  4. HTML 取消超链接下划线
  5. mysql数据库内置函数大全_MySQL数据库——内置函数
  6. ale插件 vim_Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性
  7. wxif 判断字符串相等_ES6:字符串、数组、对象的扩展
  8. Linux 进内核,arm linux 启动流程之 进入内核
  9. 大连学业水平考试计算机,2016年大连市普通高中学生学业水平考试模拟题(一)
  10. flash大作业一分钟源文件_初中生写作业慢的7个原因及对策