Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
- 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
- 囊括了 30+ 种常见图表,应有尽有
- 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
- 可轻松集成至 Flask,Django 等主流 Web 框架
- 高度灵活的配置项,可轻松搭配出精美的图表
- 详细的文档和示例,帮助开发者更快的上手项目
- 多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持
python中使用pyecharts
- 首先需要安装pyecharts,打开cmd命令窗口,输入pip install pyecharts,等待安装。
在控制台输入python回车,输入import pyecharts,如果没有报错,就表示下载成功了,可以愉快的使用pyecharts了。
2. 创建一个简单的折线图:
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts
# 创建折线图对象
line = Line()
# 添加x轴数据
line.add_xaxis(["小明", "小李", "小美"])
# 添加y轴数据
line.add_yaxis("成绩", [50, 20, 30])
# 全局配置 set_global_opts
line.set_global_opts(
title_opts=TitleOpts(title="成绩展示", pos_left="center", pos_bottom="1%"), # 设置标题及图标位置
legend_opts=LegendOpts(is_show=True), # 设置图例是否展示
toolbox_opts=ToolboxOpts(is_show=True), # 设置工具箱是否展示
visualmap_opts=VisualMapOpts(is_show=True) # 视觉映射是否展示
)
# 生成折线图
line.render()
调用render()函数,即可在当前文件夹下生成一个render.html文件,使用浏览器打开即可看到我们创建好的折线图了!
3. 试图从画廊官网中创建一个简单的柱状图,- Bar - Stack_bar_percent
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType
list2 = [
{"value": 12, "percent": 12 / (12 + 3)},
{"value": 23, "percent": 23 / (23 + 21)},
{"value": 33, "percent": 33 / (33 + 5)},
{"value": 3, "percent": 3 / (3 + 52)},
{"value": 33, "percent": 33 / (33 + 43)},
]
list3 = [
{"value": 3, "percent": 3 / (12 + 3)},
{"value": 21, "percent": 21 / (23 + 21)},
{"value": 5, "percent": 5 / (33 + 5)},
{"value": 52, "percent": 52 / (3 + 52)},
{"value": 43, "percent": 43 / (33 + 43)},
]
# 创建柱状图对象示例
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
# 设置x轴
bar.add_xaxis([1, 2, 3, 4, 5])
# 设置y轴
bar.add_yaxis("product1", list2, stack="stack1", category_gap="50%")
# 设置第二条y轴
bar.add_yaxis("product2", list3, stack="stack1", category_gap="50%")
# 配置柱状图其它规则,标题等
bar.set_series_opts(
label_opts=opts.LabelOpts(
position="right",
formatter=JsCode(
"function(x){return Number(x.data.percent * 100).toFixed() + '%';}"
),
)
)
# 渲染到stack_bar_percent.html中,会自动创建
bar.render("stack_bar_percent.html")
用浏览器打开stack_bar_percent.html文件,就可以看到渲染完成的柱状图了,看效果: