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 为例, 可在此处下载):
获取 matplotlib 的字体路径
>>> import matplotlib
>>> matplotlib.matplotlib_fname()
将
Arial.ttf放进上述目录(mpl-data)的fonts目录(ttf格式字体放在ttf目录下面)清空 matplotlib 的缓存,默认在
~/.cache/matplotlib,如果不在,可通过下述命令查看
>>> import matplotlib
>>> matplotlib.get_cachedir()
修改
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 # 取消注释, 如没有字体则相应添加