Fantastic-Matplotlib第一回

  • Fantastic-Matplotlib
  • Matplotlib初相识
    • 1.1 认识matplotlib
    • 1.2 一个最简单的绘图例子
      • 1.2.1 方法一
      • 1.2.2 方法二
    • 1.3 Figure的组成
    • 1.4 两种绘图接口

Fantastic-Matplotlib

Datawhale 11月组队学习 1

关于matplotlib运用的两个痛点和对应的知识体系构建角度:
1.没有系统的梳理绘图接口,用时查询效率低(从图形、布局、文本、样式等维度系统梳理绘图方法)
2.没有深入了解绘图框架(从绘图API层级、接口等方面阐明matplotlib的设计理念)

Matplotlib初相识

1.1 认识matplotlib

matplotlib是一个Python 2D绘图库,用来绘制各种静态、动态、交互式的图表。
我们熟知的pandas和seaborn的绘图接口其实也是基于matplotlib的高级封装。

1.2 一个最简单的绘图例子

1.2.1 方法一

method 1:创建figure(画在windows或者jupyter窗体)以及axes(每个figure包含一个或多个axes,一个axes可以指定坐标系的子区域),用pyplot.subplots创建figure和axes后,用Axes.plot绘制最简易的折线图

安装指定版本3.3.3的matplotlib

#pip install matplotlib==3.3.3
import matplotlib
matplotlib.__version__

返回:

'3.3.3'
import matplotlib.pyplot as plt
import numpy as np
fig,ax=plt.subplots() #创建一个包含一个axes的figure
ax.plot([1,2,3,4],[1,4,2,3]) #绘制图像

返回:

[<matplotlib.lines.Line2D at 0x2aa89ed06d8>]

上述代码没有显示图,显示的是[<matplotlib.lines.Line2D at 0x2aa89ed06d8>],解决方案有三种:
1.在代码块最后加一个分号;
2.在代码块最后加一句plt.show()
3.在绘图时将绘图对象显式赋值给一个变量,将line=plt.plot([1,2,3,4])

import matplotlib.pyplot as plt
import numpy as np
fig,ax=plt.subplots() #创建一个包含一个axes的figure
ax.plot([1,2,3,4],[1,4,2,3]);#绘制图像

1.2.2 方法二

method 2:利用matplotlib.pyplot直接在当前的axes上绘制图像,如果未指定axes,matplotlib会自动创建一个

line=plt.plot([1,2,3,4],[1,4,2,3])

1.3 Figure的组成

一个完整的matplotlib图像通常会包括四个层级,这些层级也叫容器(container)。
在matplotlib的世界中,我们将通过各种命令方法来操纵图像中的每一个部分,从而达到数据可视化的最终效果,一副完整的图像实际是各类子元素的集合。
Figure: 顶层级,用来容纳所有绘图元素
Axes: matplotlib宇宙的核心,容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成
Axis: axes的下属层级,用来处理所有和坐标轴网格有关的元素
Tick: axis的下属层级,同来处理所有和刻度有关的元素

1.4 两种绘图接口

第一种:显式创建figure和axes,在上面调用绘图方法,也被称为OO模式(object-oriented style)

x=np.linspace(0,2,100) #创建等差数列(样本数据开始点,样本数据结束点,样本数据量)
fig,ax=plt.subplots()
ax.plot(x,x,label='linear') #线性
ax.plot(x,x**2,label='quadratic') #二次方
ax.plot(x,x**3,label='cubic') #立方
ax.set_xlabel('x label')
ax.set_ylabel('y label')
ax.set_title("Simple Plot")
ax.legend()
plt.show()


第二种: 依赖pyplot自动创建figure和axes,并绘图

x=np.linspace(0,2,100)
plt.plot(x,x,label='linear') #线性
plt.plot(x,x**2,label='quadratic') #二次方
plt.plot(x,x**3,label='cubic') #立方
plt.xlabel('x label')
plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
plt.show()


  1. Fantastic-Matplotlib ↩︎

Fantastic-Matplotlib 第一回相关推荐

  1. [你必须知道的css系列]第一回:丰富的利器2:CSS选择符之子选择符、相邻选择符...

    对了,接下来要讲的属性选择符,相邻选择符,子对象选择符可能大家稍微有点陌生了,这当然也是有原因的,因为IE6及以下的浏览器并不支持这几个选择符,而 大多数从事这方面工作的技术人员,多数时候还是主要考虑 ...

  2. 读书:儒林外史第一回

    第一回讲了王冕的人生经历. 王冕家境贫穷,但聪颖好学,也很会学习.他自学三个月的画画,就能画一幅好画,还能够卖出去.会作诗,诗集也能卖出去.这种人才搁到现在,估计也早实现财务自由. 王冕不是死读书的人 ...

  3. [Sharepoint2007对象模型]第一回:服务器场(SPFarm)

    Sharepoint是微软一个很重要的服务器产品,它可以方便的创建和维护一个网站,在Sharepoint的管理中心提供了很强大的管理工具.同时为了更加灵活的后期定制和开发,Sharepoint提供了完 ...

  4. [从架构到设计]第一回:设计,应该多一点

    [从架构到设计] 第一回:设计,应该多一点 发布日期:2007.8.15 作者:Anytao ©2007 Anytao.com ,原创作品,转贴请注明作者和出处. 设计就像是转魔方,你必须面面俱到. ...

  5. 第一回 开篇 D3D渲染流程简介

    第一回 开篇 D3D渲染流程简介 http://developer.178.com/201004/65293187592.html 开发这个3D engine已经两年半了,从06年8月刚开始统计的4万 ...

  6. MicroPython_ESP8266_IoT——第一回 新手上路(开始之前要准备)

    第一回 新手上路(开始之前要准备) 本系列涉及到使用的软件和硬件并不像以前那样繁琐.复杂.如果之前有这方面的了解,初学过Python或者用过80C51或STM32系列的MCU,那么这一回的内容就跟吃馍 ...

  7. 红楼梦 音频 第一回 甄士隐梦幻识通灵 贾雨村风尘怀闺秀

    因为女娲补天,遗留下一块顽石,便生出了这红楼梦许多故事. 留下一块便生出红楼梦故事,要是留下许多,那得演绎出多少故事来. 红楼梦有好几种书名: 石头记:因为是由这一块石头引起的故事,所以又称石头记 情 ...

  8. 第一回 甲骨文字始流传

    第一回 甲骨文字始流传 火 东 汉 许 慎< 说 文 解 字·叙 >云 : 仓 颉 之 初 作 书 ,盖 依 类 象 形 ,故 谓 之 文 . 其 后 形 声 相 益 ,即 谓 之 字 . ...

  9. C#《原Csharp》第一回 买书未成炁自生 惶惶回屋遇老翁

    这是我在博客园首创的一个随笔性质的小说,旨在用还算风趣通俗的话来传达C#的魅力,在写的过程中发现有不少人有"转载"我的文章且未标明出处(是不是因为咕咕太久了?),所以本着打不过就加 ...

  10. Windows Mobile 进阶系列.第一回.真的了解.NET CF吗?

    第一回. 真的了解.NET Compact Framework吗? 作为系列文章的开篇,有必要先详细了解一下基于CE.NET的.NET Compact Framework(以后简称.NET CF),本 ...

最新文章

  1. TP-link 841N 刷DD-WRT固件
  2. 最简单的t-SNE上手使用
  3. 重记解决kube-dns故障一则---ceph惹的祸
  4. 新建Java文件的 文档注释
  5. 【Luogu】P3356火星探险问题(费用流)
  6. 使用 Jest 和 Enzyme 测试 React 组件
  7. python代码 程序员编程艺术 2.1
  8. HashSet集合存储数据的结构(哈希表)
  9. python ansys workbench联动_联合ANSYS WORKBENCH和经典界面进行后处理
  10. setTimeout() 与 setInterval() 异同
  11. 用虚表和虚表指针实现动态绑定
  12. 关于做ceb转换cebx遇到的问题及解决方案总结
  13. dsp调音一次多少钱_把手教你调音玩转DSP
  14. 基于JavaWEB+MySQL的宾馆管理系统设计与实现
  15. Scrapy 爬虫框架
  16. caffe详解之损失函数
  17. 2.4gwifi最高下载速度_2.4gwifi最高下载速度
  18. android悬浮窗组件,Android 悬浮窗,悬浮view功能实现
  19. 突然无法访问局域网内的共享文件夹
  20. NES专题——NES的游戏硬件

热门文章

  1. vba 冻结窗格_在VBA中进行调试-2A)代码窗格(F7)
  2. AlphaGo对战李世石谁能赢?两万字长文深挖围棋AI技术(一)
  3. Nginx搭建文件下载服务器
  4. 知道创宇区块链安全实验室|Deus Finance预言机攻击事件分析
  5. 错误:1 error and 0 warnings potentially fixable with the `--fix` option. 报错问题解决方法
  6. oracle min(date),Oracle / PLSQL MIN函数
  7. (论文笔记)NeRV: Neural Representations for Videos
  8. Error 4 opening dom ASM/Self in 0x8283c00
  9. CodeForces - 864E FIRE(附带限制条件01背包)
  10. 计算机专业国际竞赛,国际计算机竞赛深度剖析