课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
20分钟

backend

  1. matplotlib可以适用于非常广泛的场景:
    • matplotlib可以交互式地用于python shell
    • matplotlib可以嵌入到wxpython或者pygtkGUI程序中
    • matplotlib可以在脚本中使用从而生成postscript image

    为了适应于这些场景,matplotlib针对这些target生成不同的输出格式。这种能力称之为backend。 与之相对的frontend指的是用户使用matplotlib而编写的代码

2. 有两种类型的backend

  • 交互式的backend:应用于pygtkwxpythontkinterqt4macosx等中
  • 非交互式的backend:用于生成image file(如PNG、SVG、PDF、PS等格式文件,这些backend的名字暗示了要存储的文件的格式)

3. 有多种方法来设置backend,其中后面提到的方法会覆盖前面的方法设置的backend

  • matplotlibrc配置文件中设置的backend参数,如backend: WXAgg #使use wxpython with antigrain(agg) rendering
  • 设置MPLBACKEND环境变量,无论是在shell中设置还是在脚本中设置。
  • 对单个脚本设置backend时,可以直接在python命令后添加-d命令(这种方法不推荐,deprecated
  • 在脚本中使用特定的backend时,可以用matplotlib.use('PDF')命令。这条语句必须在import matplotlib.pyplot语句之前执行。如果在import matplotlib.pyplot之后执行use语句,则没有任何效果。通常建议避免使用use()方法,因为使用该脚本的人无法修改backend了。
  • 设定backend时,是忽略大小写的。因此GTKAgg也等价于gtkagg
  • 查看当前的backend可以用:matplotlib.get_backend()

4. rendering engine :matplotlib提供的常用的rendering engineAgg,它采用的是Anti-Grain Geometry C++ library。除了macosx之外的所有user interface都可以用agg rendering,如WXAgg,GTKAgg,QT4Agg,TkAgg这些backend。 某些user interface还支持其他引擎,如GTK支持Cario引擎,如GTKCariro backend。 下面是所有的Rendering engine

  • AGG:输出png格式文件。它可以输出高质量的图形
  • PS:输出ps\eps格式文件。它是Postscript output
  • PDF:输出pdf格式文件。
  • SVG:输出svg格式文件
  • Cairo:可以输出png、ps、pdf、svg...等格式文件
  • GDK:可以输出png、jpg、tiff...等格式文件,它使用Gimp Drawing Kit

要想保存成指定类型文件,如PDF,那么首先要设置合适的backend