zoukankan      html  css  js  c++  java
  • Matplotlib库backend

    Matplotlib库backend

    一、总结

    一句话总结:

    matplotlib每一种输出的能力都叫做一种 backend,在我的理解中有点类似渲染器。IPython 中的魔法语句 %matplotlib xxxx 就是选择(激活) backend。
    不可交互型backend:比如AGG(渲染为png)、PS、PDF、SVG
    可交互型backend:Qt5Agg:使用 Qt5 渲染,IPython 中可使用 %matplotlib qt5
        不可交互型
            AGG:渲染为 png 文件
            PS:渲染为 ps 文件
            PDF:渲染为 pdf 文件
            SVG:渲染为 svg 文件
            Cairo:使用 Cairo 引擎渲染
        可交互型
            Qt5Agg:使用 Qt5 渲染,IPython 中可使用 %matplotlib qt5
            Qt4Agg:使用 Qt4 渲染,IPython 中可使用 %matplotlib qt4
            ipympl:使用 ipympl 库,Ipython 中可使用 %matplotlib ipympl
            macosx:使用 Cocoa 画布渲染,Ipython 中可使用 %matplotlib osx
            nbAgg:Jupyter Notebook 中使用的 backend,Jupyter 中使用 %matplotlib notebook 来激活
            WXAgg:使用 wxWidgets 库来渲染,Ipython 中可使用 %matplotlib wx
            inline:严格地讲并不是一个 backend,这个 IPython 中的一个语法,表示把图表嵌入笔记中,使用 %matplotlib inline

    1、%matplotlib inline作用?

    表示把图表嵌入笔记中,使用 %matplotlib inline

    二、Matplotlib库backend

    转自或参考:matplotlib 使用简明教程(一)-基础概念
    https://blog.csdn.net/fenghuizhidao/article/details/79352882

    Matplotlib 是一个用于绘制图表的 Python 库,可以用来处理图片、绘制统计类的图表。

    基本组成

    以官网中图片说明 Matplotlib 图表中的基本组成成分。

    • figure:整个画布,包含一个或多个 axes
    • axes:画布中的某一个图表,包含一个 plot
    • artist:元素,包括图中所示的 label、line 等,也包括 plot

    backend

    每一种输出的能力都叫做一种 backend,在我的理解中有点类似渲染器。
    IPython 中的魔法语句 %matplotlib xxxx 就是选择 backend。

    选用哪种 backend,其优先级选取如下:

    1. matplotlibrc 文件中的 backend
    2. 使用 MPLBACKEND 环境变量
    3. 使用 matplotlib.use() 函数,需要在导入 pyplot 前使用

    backend 从种类上,分为可交互型(user interface)和不可交互型两种(hardcopy),如果希望查看本地支持的 backend 有哪些,可以使用

    matplotlib.rcsetup.interactive_bk # 可交互型
    matplotlib.rcsetup.non_interactive_bk # 不可交互型
    matplotlib.rcsetup.all_backends # 所有 backend
    

    获取当前的 backend 可以使用 matplotlib.pyplot.get_backend()

    常用 backend 已在文尾附上。

    交互模式

    我理解,“交互模式”即代表着这个图标在绘制后可以动态变化,例如预设的动画以及用户的操作。
    当开启交互模式后,绘制的图表会自动更新、绘制,如果希望手动更新图表,则使用 draw() 函数;而在非交互模式下,当所有后台绘制完成后,需要使用 show() 函数,才会将最终图表展示出来。

    如果希望使用交互模式,需要选用可交互型的 backend。

    • 通过 matplotlib.interactive() 设置交互模式的开启与关闭
    • 通过 matplotlib.is_interactive() 查询当前实发支持交互模式
    • 也可以通过 matplotlib.pyplot.ion()matplotlib.pyplot.ioff() 来开启/关闭交互模式

    附:常用 backend

    • 不可交互型
      • AGG:渲染为 png 文件
      • PS:渲染为 ps 文件
      • PDF:渲染为 pdf 文件
      • SVG:渲染为 svg 文件
      • Cairo:使用 Cairo 引擎渲染
    • 可交互型
      • Qt5Agg:使用 Qt5 渲染,IPython 中可使用 %matplotlib qt5
      • Qt4Agg:使用 Qt4 渲染,IPython 中可使用 %matplotlib qt4
      • ipympl:使用 ipympl 库,Ipython 中可使用 %matplotlib ipympl
      • macosx:使用 Cocoa 画布渲染,Ipython 中可使用 %matplotlib osx
      • nbAgg:Jupyter Notebook 中使用的 backend,Jupyter 中使用 %matplotlib notebook 来激活
      • WXAgg:使用 wxWidgets 库来渲染,Ipython 中可使用 %matplotlib wx
      • inline:严格地讲并不是一个 backend,这个 IPython 中的一个语法,表示把图表嵌入笔记中,使用 %matplotlib inline
     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    VC++对话框笔记
    STL中用erase()方法遍历删除元素
    VC++中不小心选错工程类型的解决办法
    directX中常用的数学计算
    VC++中string、char* 转换为LPCSTR
    判断空间上点是否在直线上
    vc6.0插件
    VC++常用定义(如SAFE_DELETE等)
    关于控件的AutoSize属性影响界面布局的问题解决
    C#判断日期是否正确(1900~今年,月份,天数)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13860849.html
Copyright © 2011-2022 走看看