matplotlib

matplotlib 是一个用于 科学计算绘图Python 包,功能非常强大,堪比 Matlab ! 开始前,先通过几张图来感受一下:

../../_images/93498df23549c42e72dcd5361dce6f7b.png

快速开始

饼状图应该是最简单的统计图表了,用以介绍 matplotlib 画图方式最为合适。 数据准备就绪,生成饼状图只需若干行代码:

4-5 行,为待渲染数据,包括 数值 以及 标签 ; 第 7 行,定义渲染 颜色 ; 第 9-14 行,配置饼图,包括数值、标签、颜色以及百分比展示; 第 16 行,为图表追加 标题 ; 第 18 行,将图表展示出来。

运行程序后,画出的图表效果如下:

../../_images/ca76641457d181dd6713f2f5d6681164.png

字体

在编程世界,中文一直是个麻烦事。 不折腾一番, matplotlib 是不能渲染中文文本的。

matplotlib 支持中文 的方式有不少,接下来介绍一种最简单的: 准备好字体文件,为文本定义 FontProperties 并设置。 除了指定 字体FontProperties 还支持 字号粗细斜体下划线 等属性设置。

程序第 11-15 行加载字体文件,并设置字号; 第 17-18 行在第一个标签字体基础上设置新字号,作为标题字体, 第 33-34 行为 4 个标签分别设置字体; 第 36 行指定标题,同时设置标题字体。

运行程序后,画出的图表效果如下:

../../_images/47e3e92e52e71feb5b01afe83a5b4135.png

Note

Github 上有个项目提供一些字体文件,以供测试: dolbydu/font

保存图片

将图表保存成文件,只需调用 savefig 方法。保存为 PNG 图片:

plt.savefig('foo.png')

文件格式由文件后缀名决定,另存为 PDF 文件:

plt.savefig('foo.pdf')

如果仅需获取保存文件内容,则可借助 BytesIO

import io

bio = io.BytesIO()
plt.savefig(bio, format='png')

bio.seek(0)
content = bio.read()

下一步

订阅更新,获取更多学习资料,请关注我们的 wechat-mp

../../_images/wechat-mp-qrcode.png

小菜学编程