Matplotlib 教程

Matplotlib 是一个用于在 Python 中创建静态、动画和交互式可视化的 Python 库。

图片尺寸和字体大小

matplotlib 中设置图形大小的语句如下:

fig = plt.figure(figsize=(a, b), dpi=dpi)

其中,figsize 设置图形的大小,a 为图形的宽,b 为图形的高,单位为英寸;dpi 为设置图形每英寸的点数,真实图片的像素为 a*b*dpi

Matplotlib 中 每英寸点数(ppi)为 72,则宽度为 1 点的线将为 1/72 英寸宽,使用 fontsize 12 点的文本将是 12/72 寸高。更改 dpi 会缩放元素,在 72 dpi 时,1 宽度的线是 1 像素。在 144 dpi 时,这条线就是 2 像素。

Note

改变图片尺寸并不会更改字体的大小,而放大 dpi 一倍则会使得图片和字体都放大一倍。

获取图例对象

示例代码:

plt.gca().axes.get_legend_handles_labels()

通过上述代码即可获取到图例对象(元组类型(线对象,线标签))。

其中,plt.gca() 返回 Artist 对象,plt.gca().axes 返回 Axes 对象。

添加字体

对于默认安装的 matplotlib,可能会缺少某些常用的字体,如 Arial,因此需要添加相关的字体并让 matplotlib 使用我们自行添加的字体,具体步骤如下(以 Arial 为例, 可在此处下载):

  1. 获取 matplotlib 的字体路径

>>> import matplotlib
>>> matplotlib.matplotlib_fname()
  1. Arial.ttf 放进上述目录(mpl-data)的 fonts 目录(ttf 格式字体放在 ttf 目录下面)

  2. 清空 matplotlib 的缓存,默认在 ~/.cache/matplotlib,如果不在,可通过下述命令查看

>>> import matplotlib
>>> matplotlib.get_cachedir()
  1. 修改 matplotlibrc 的文件内容 (取消注释及添加相应字体)

font.family         : sans-serif  # 取消注释
font.sans-serif     : DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif # 取消注释, 如没有字体则相应添加

参考