直接使用matplotlib画出的饼图,对于文字较多但是面积较小的类会重叠(我到现在不知道怎么处理这个问题),然后搜到了pyecharts这个库,真香
安装
pip install pyecharts
画图代码
from pyecharts import options as opts
from pyecharts.charts import Pie
def pie_base(labels,sizes):
c = (
Pie()
.add("",[list(z) for z in zip(labels,sizes)])
.set_global_opts(title_opts = opts.TitleOpts(title="这是个例子"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
)
return c
labels = ["出行","服装","餐饮","化妆品","住宿","旅游","其他"]
sizes = [12334,23452,45678,23456,43213,67832,87654]
pie_base(labels,sizes).render("example.html")
最后会生成html类型的文件,这样每类的文字说明都会用一根线拉出去标明,不会重叠
pyecharts文档链接
http://pyecharts.org/#/zh-cn/global_vars
github项目给出的examples,可以满足pyecharts基本功能
https://github.com/pyecharts/pyecharts/tree/master/example