pyecharts

226 阅读2分钟

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

  • 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
  • 囊括了 30+ 种常见图表,应有尽有
  • 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
  • 可轻松集成至 Flask,Django 等主流 Web 框架
  • 高度灵活的配置项,可轻松搭配出精美的图表
  • 详细的文档和示例,帮助开发者更快的上手项目
  • 多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持

echarts官网地址

echarts画廊

python中使用pyecharts

  1. 首先需要安装pyecharts,打开cmd命令窗口,输入pip install pyecharts,等待安装。

00aed6dbfa8a17c405114cb79db28e8.png 在控制台输入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文件,使用浏览器打开即可看到我们创建好的折线图了!

aecacdca6fb6f9f41975af5a0e313db.png 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文件,就可以看到渲染完成的柱状图了,看效果:

793e536bace2fc54c0d422aef58eb16.png