📣 概况
Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
✨ 特性
- 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
- 囊括了 30+ 种常见图表,应有尽有
- 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
- 可轻松集成至 Flask,Django 等主流 Web 框架
- 高度灵活的配置项,可轻松搭配出精美的图表
- 详细的文档和示例,帮助开发者更快的上手项目
- 多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持
如何安装
pip 安装
$ pip(3) install pyecharts
源码安装
$ git clone https://github.com/pyecharts/pyecharts.git
$ cd pyecharts
$ pip install -r requirements.txt
$ python setup.py install
# 或者执行 python install.py
并行多图案例
from pyecharts import options as opts
from pyecharts.charts import Funnel,Page,EffectScatter,Pie
from pyecharts.globals import SymbolType
five_value = ["健康值","心态","体验值","专注度","成就感"]
average = [57,62,57,66,30]
#漏斗图
c = (
Funnel()
.add(
"商品",
[list(z) for z in zip(five_value,average)],
sort_="ascending",
label_opts=opts.LabelOpts(position="inside"),
)
.set_global_opts(title_opts=opts.TitleOpts(title=""))
)
#涟漪图
b = (
EffectScatter()
.add_xaxis(five_value)
.add_yaxis("", average, symbol=SymbolType.ARROW)
.set_global_opts(title_opts=opts.TitleOpts(title="EffectScatter-不同Symbol"))
)
#饼图
d = (
Pie()
.add(
"",
[list(z) for z in zip(five_value, average)],
radius=["40%", "55%"],
label_opts=opts.LabelOpts(
position="outside",
formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c} {per|{d}%} ",
background_color="#eee",
border_color="#aaa",
border_width=1,
border_radius=4,
rich={
"a": {"color": "#999", "lineHeight": 22, "align": "center"},
"abg": {
"backgroundColor": "#e3e3e3",
"width": "100%",
"align": "right",
"height": 22,
"borderRadius": [4, 4, 0, 0],
},
"hr": {
"borderColor": "#aaa",
"width": "100%",
"borderWidth": 0.5,
"height": 0,
},
"b": {"fontSize": 16, "lineHeight": 33},
"per": {
"color": "#eee",
"backgroundColor": "#334455",
"padding": [2, 4],
"borderRadius": 2,
},
},
),
)
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-富文本示例"))
)
#page()运行多图
def page_simple_layout():
page = Page(layout=Page.SimplePageLayout)
page.add(
c,
b,
d)
page.render("c.html")
#放到主函数执行
#作用:当模块被直接运行时,以下代码块将被运行.当模块是被导入时(从另一个py文件调用模块时),以下代码块不被运行。
if __name__ == "__main__":
page_simple_layout()
print('完成')
如果要画单图只需被他们分别分解出来,再函数里面加上.render('html文件名字')