matplotlib 教程简析

  • 介绍

    • 功能简介

      • 基础功能

        • 使用简介
        • Pyplot示例
        • 图的种类
        • 图片示例
        • 一个完整的plot的例子
        • 使用style sheets与 rcParams控制格式
          • style sheets
          • rcParams
      • 中级功能
        • Artist 教程
        • legend 教程
        • cycler教程
        • 改变Figure布局
        • 布局教程
        • 控制图片方向
      • 高级功能
        • 路径
        • 路径效果
        • 转换坐标系
      • 颜色
        • 指定颜色
        • 定制Colorbars
        • 定制colormap
        • colormap 分布
        • 选择colormap
      • 文本
        • Matplotlib Plots 中的文本
        • 文本的属性与布局
        • 注释
        • 数学表达式
        • 使用latex渲染文本
  • 实际使用

介绍

官方教程
中文教程

功能简介

基础功能

使用简介

  • 基础概念
    legend,marker; figure,axes,axis ; spines
    Artist( text, line2D , collection , patch ... )
  • 数据类型
    array
  • 命名空间
    matplotlib.pyplot 可与 numpy 使用 (pylab已经弃用)
  • 生成多个图
    plt.subplots(row,col) 可生成多个axes
  • 交互模式
    plt.draw() 如果不需要在屏幕显示,调用该函数
  • 便捷功能
    线段的简化:
    通过 path.simplify and path.simplify_threshold
    Marker的简化:
    通过markevery plt.plot(x, y, markevery=10)详情参看Markevery Demo
    线分块:
    mpl.rcParams[‘agg.path.chunksize‘] = 0
    使用快速格式:
    为了避免其他格式被改变,可以在最后部分调用,不会改变其他设置
    import matplotlib.style as mplstyle
    mplstyle.use(‘fast‘)

    Pyplot示例

  • 折线图、散点图、柱状图
  • 散点图的图示、图的颜色
  • 绘制多个图
  • 插入文本
  • 插入数学公式
  • 插入注释文本
  • 坐标轴会自动适应不同数据:线性、指数等

图的种类

  • 线 plot()
  • 多个子图 subplot()
  • 显示图片 imshow()
  • 轮廓线与伪彩色 pcolormesh() , contour()
  • 直方图 hist()
  • 路径 matplotlib.path
  • 3D 3D plotting
  • 流量图 streamplot()
  • 椭圆 为了某些具体任务..
  • 条形图 bar()
  • 饼图 pie()
  • 表格 table()
  • 散点图 scatter()
  • 填充曲线 fill()
  • 时序数据 matplotlib.tickermatplotlib.dates
  • 指数 semilogx(), semilogy()loglog()
  • 极坐标图 polar()
  • 图示 legend()
  • tex文本 matplotlib.mathtextusetex

图片示例

  • 导入图片模块 import matplotlib.image as mpimg ; 可以使用Pillow library, Matplotlib 只支持PNG
  • 读取图片 img = mpimg.imread(‘../../doc/_static/stinkbug.png‘)
  • 显示图片 imgplot = plt.imshow(img)
  • 色条 plt.colorbar()
  • 不同的图片模式 (设置显示范围等)

一个完整的plot的例子

  • 数据
  • 加载数据
  • 控制格式 plt.style.use(‘fivethirtyeight‘) plt.rcParams.update({‘figure.autolayout‘: True})
    tips: Customizing Matplotlib with style sheets and rcParams
  • 变更plt属性,一次改变多个 pyplot.setp()
  • 调整图的尺寸 fig, ax = plt.subplots(figsize=(8, 4))
  • 坐标轴格式控制 ax.xaxis.set_major_formatter(formatter) ticker.FuncFormatter
  • 保存图片 figure.Figure.savefig()

使用style sheets与 rcParams控制格式

style sheets
  • 可选用的格式 plt.style.available
  • 定义自己的格式 mpl_configdir/stylelib/presentation.mplstyle
  • 格式组合 plt.style.use([‘dark_background‘, ‘presentation‘])
  • 临时格式 with plt.style.context(‘dark_background‘):
rcParams
  • 直接使用 matplotlib.rcParams 修改格式,如 mpl.rcParams[‘lines.linewidth‘] = 2
  • 使用matplotlib.rc()修改格式,如 mpl.rc(‘lines‘, linewidth=4, color=‘g‘)
  • 使用matplotlib.rcdefaults()恢复默认配置
  • 默认配置都在 matplotlibrc 文件中

中级功能

Artist 教程

三层结构:

  1. 画图区域 matplotlib.backend_bases.FigureCanvas
  2. 画图方法 matplotlib.backend_bases.Renderer
  3. 使用renderercanvas上绘图 matplotlib.artist.Artist

Artist 分为两类:

  1. primitives 包括:Line2D, Rectangle, Text, AxesImage, etc
  2. containers 包括:Axis, Axes and Figure

Axes 通常按行列分布,使用 add_axes() 在任意位置创建axes

legend 教程

legend entry: 每个legend由一个或多个legend entry构成
legend key: 左边标记的颜色或模式
legend label: 描述handle的文本
legend handle: 描述的handle

cycler教程

处理周期数据 ps.

改变Figure布局

subplots() : 创建并布局axes
GridSpec : 重置figure布局
SubplotSpec : 给定布局,创建子图
subplot2grid() : 在grid内部创建子图

布局教程

  • constrained_layout = ture 会避免坐标、文字重叠现象
  • colorbars,Suptitle,Legends 布局的影响
  • 手动布局
  • 另一种选择 tight_layout()

控制图片方向

通过 originextent kwargs参数 控制图片的axes

高级功能

路径

绘制路径 path

路径效果

设置路径艺术字效果

转换坐标系

偏移?

颜色

指定颜色

设置颜色方法

  • RGB or RGBA 通过0-1的浮点数 (0.1, 0.2, 0.5) or (0.1, 0.2, 0.5, 0.3)
  • RGB or RGBA 字符串 #0f0f0f or #0f0f0f80
  • 一个0-1浮点数,表示灰度 0.5
  • 颜色缩写 {‘b‘, ‘g‘, ‘r‘, ‘c‘, ‘m‘, ‘y‘, ‘k‘, ‘w‘}
  • X11/CSS4 颜色名 black
  • xkcd 颜色 xkcd:sky blue
  • 大写C与数字 C0 根据style进行变化,数字最大也不知道是多少...(seaborn 有六种颜色 axes.prop_cycle: cycler(‘color‘, [‘4C72B0‘, ‘55A868‘, ‘C44E52‘, ‘8172B2‘, ‘CCB974‘, ‘64B5CD‘]))

定制Colorbars

  • 基本连续的colorbar
  • 离散间隔的colorbar
  • 设定长度的colorbar

定制colormap

获取改变colormap的值;设置多个colormap

colormap 分布

通常是线性分布,在某些情况下需要调整

选择colormap

选择colormap的色彩模式

文本

Matplotlib Plots 中的文本

基本命令

  • text axes上任意位置添加文本
  • annotate axes上任意位置添加注释,有一个可选的箭头
  • xlabel axes的x轴标签
  • ylabel axes的y轴标签
  • title axes标题
  • figtext figure上任意位置添加文本
  • suptitle figure添加标题

x-轴与y-轴文本的格式

  • 分布位置
  • 字体格式 text的参数
  • 间隔 pad

标题

  • 分布位置
  • 间隔 pad

刻度与刻度标签

  • 主刻度、副刻度
  • 刻度显示的范围
  • 刻度显示的格式

文本的属性与布局

  • alpha 透明度
  • color 颜色
  • position 位置
  • rotation 旋转

坐标转换?
非拉丁字符?

注释

  • 文本的样式
  • 箭头的格式(可以是圆、方框、各种箭头等)
    ps. 注释数据的高亮是由marker实现的

数学表达式

  • plot支持latex的数学表达式
    ps. 使用mathtype进行编辑,导出就可以了

使用latex渲染文本

没有必要..

实际使用

根据 官方文档示例 + API文档 根据需要进行修改与使用

使用figure.Figure.savefig()保存成PDF

原文地址:https://www.cnblogs.com/DanielOwen/p/12158934.html

时间: 2024-07-30 15:07:55

matplotlib 教程简析的相关文章

Nutch学习笔记——抓取过程简析

Nutch学习笔记二--抓取过程简析 学习环境: ubuntu 概要: Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. 通过nutch,诞生了hadoop.tika.gora. 先安装SVN和Ant环境.(通过编译源码方式来使用nutch) apt-get install ant apt-get install subversion [email protected]:~/data/nutch$ svn co https:

SylixOS中TPSFS格式化流程简析

1.TPSFS简介 TPSFS文件系统是一款掉电安全的文件系统,该系统是SylixOS内建文件系统(专利技术),该文件系统有如下特点: 采用B+树存储文件数据,读取与定位速度快,空间管理效率高: 对数据使用原子操作,掉电安全: 64位文件系统,支持EP级别文件长度: 大文件处理性能好: 支持文件记录锁,可支持大型数据库: 支持多块分配机制,提高了系统性能,使得分配器有了充足的优化空间: 支持子目录可扩展性,使得在一个目录下可以创建无数多个子目录. TPSFS文件系统结构如图 1.1所示. 图 1

web应用构架LAMT及tomcat负载简析

Httpd    (mod_jk.so) workers.properties文件 uriworkermap.properties文件 <--AJP1.3--> Tomcat  --> jdk 大致流程:apache服务器通过mod_jk.so 模块处理jsp文件的动态请求.通过tomcat worker等待执行servlet/JSP的tomcat实例.使用 AJP1.3协议与tomcat通信.tomcat有借助jdk解析. 负载就是 多台tomcat.共同解析apache发送的jsp请

CentOS的网络配置简析

我们在进行对CentOS的网络配置时,一般会从IP地址(IPADDR).子网掩码(NETMASK).网关(Gateway).主机名(HOSTNAME).DNS服务器等方面入手.而在CentOS中,又有着不同的命令或配置文件可以完成这些配置操作,接下来,我们将从ifcfg系命令,iproute2系命令以及配置文件3个方面来简析网络配置的方法. 一.ifcfg系命令 ifcfg系命令包括ifconfig,route,netstat和hostname. 1.ifconfig命令 用来配置一个网络接口.

JDK源码简析--java.lang包中的基础类库

题记 JDK,Java Development Kit. 我们必须先认识到,JDK只是,仅仅是一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含量来说,还是在一个层级上,它们都是需要被编译成字节码,在JRE中运行的,JDK编译后的结果就是jre/lib下得rt.jar,我们学习使用它的目的是加深对Java的理解,提高我们的Java编码水平. 本系列所有文章基于的JDK版本都是1.7.16. 本节内容 在本节中,简析java.lang包所包

经验模态分解法简析 (转)

http://blog.sina.com.cn/s/blog_55954cfb0102e9y2.html 美国工程院士黄锷博士于1998年提出的一种信号分析方法:重点是黄博士的具有创新性的经验模态分解(Empirical Mode Decomposition)即EMD法,它是一种自适应的数据处理或挖掘方法,非常适合非线性,非平稳时间序列的处理,本质上是对数据序列或信号的平稳化处理. 1:关于时间序列平稳性的一般理解: 所谓时间序列的平稳性,一般指宽平稳,即时间序列的均值和方差为与时间无关的常数,

Java Annotation 及几个常用开源项目注解原理简析

PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示例 Override Annotation Java 1 2 3 @Override public void onCreate(Bundle savedInstanceState); Retrofit Annotation Java 1 2 3 @GET("/users/{username}&quo

Linux网络性能优化方法简析

Linux网络性能优化方法简析 2010-12-20 10:56 赵军 IBMDW 字号:T | T 性能问题永远是永恒的主题之一,而Linux在网络性能方面的优势则显而易见,这篇文章是对于Linux内核中提升网络性能的一些优化方法的简析,以让我们去后台看看魔术师表演用的盒子,同时也看看内核极客们是怎样灵活的,渐进的去解决这些实际的问题. AD:2014WOT全球软件技术峰会北京站 课程视频发布 对于网络的行为,可以简单划分为 3 条路径:1) 发送路径,2) 转发路径,3) 接收路径,而网络性

.NET设计模式简析

首先,是设计模式的分类,我们知道,常用的设计模式共23种.但总体来说,设计模式氛围三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单列模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模版方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.转改模式.访问者模式.终结者模式.解释器模式. 另外还有并发型模式和线程池模式等. 介绍了分类,下面简单说下设计模式的六大原则