1. backend
matplotlib
可以适用于非常广泛的场景:matplotlib
可以交互式地用于python shell
matplotlib
可以嵌入到wxpython
或者pygtk
等GUI
程序中matplotlib
可以在脚本中使用从而生成postscript image
为了适应于这些场景,
matplotlib
针对这些target
生成不同的输出格式。这种能力称之为backend
。与之相对的
frontend
指的是用户使用matplotlib
而编写的代码有两种类型的
backend
:- 交互式的
backend
:应用于pygtk
、wxpython
、tkinter
、qt4
、macosx
等中 - 非交互式的
backend
:用于生成image file
(如PNG、SVG、PDF、PS
等格式文件,这些backend
的名字暗示了要存储的文件的格式)
- 交互式的
有多种方法来设置
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()
- 在
rendering engine :
matplotlib
提供的常用的rendering engine
是Agg
,它采用的是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
,