杰瑞科技汇

Python pyecharts功能具体能实现哪些可视化效果?

pyecharts 是一个强大的 Python 数据可视化库,它并非自己实现图表的渲染,而是作为一个桥梁,将 Python 的数据结构(如列表、字典、Pandas DataFrame)转换成 ECharts(一个由百度开源的、功能强大的前端可视化库) 所需的 JSON 配置,并生成一个包含 HTML、JavaScript 代码的文件。

Python pyecharts功能具体能实现哪些可视化效果?-图1
(图片来源网络,侵删)

你只需要写 Python 代码,就能轻松创建出媲美专业前端工程师水准的、可交互的、现代化的 Web 图表。


核心功能与特点

pyecharts 的功能非常强大,以下是其最核心的特点:

丰富的图表类型

这是 pyecharts 最引以为傲的一点,它支持 ECharts 官方提供的几乎所有图表类型,覆盖了绝大多数数据可视化场景。

  • 基础图表:折线图、柱状图、散点图、饼图、K线图、雷达图、箱线图、热力图、关系图、树图、旭日图、漏斗图、仪表盘等。
  • 地理空间图表:地图、3D地图、3D地球、地理坐标系下的散点图、气泡图等。
  • 3D图表:3D柱状图、3D曲面图、3D散点图等。
  • 动态图表:关系图、桑基图、力导向图等,可以展示节点间的动态关系。
  • 其他图表:词云图、极坐标图、平行坐标系等。

高度可定制化

pyecharts 生成的图表并非“死”的,你可以通过 Python 代码对图表的每一个细节进行精细控制。

Python pyecharts功能具体能实现哪些可视化效果?-图2
(图片来源网络,侵删)
  • 标题、图例、工具箱:轻松添加和配置。
  • 坐标轴:X轴、Y轴、Z轴的类型、名称、样式、刻度等都可以自定义。
  • 颜色主题:内置多种精美主题(如 'light', 'dark', 'vintage', 'wonderland'),也可以自定义颜色。
  • 数据系列:可以设置不同数据系列的样式(如颜色、标记符号、线条类型)。
  • 视觉映射:在地图上,可以根据数据大小自动设置区域颜色深浅。

强大的交互性

这是 pyecharts 区别于 Matplotlib、Seaborn 等传统静态图表库的关键。

  • 数据缩放:鼠标滚轮或工具栏上的缩放按钮,可以放大查看图表细节。
  • 数据区域缩放:在坐标轴上拖动,可以选中特定区域进行放大。
  • 平移:拖动图表,可以查看不同部分的数据。
  • 视图切换:对于 3D 图表,可以旋转、缩放、平移视角。
  • 数据视图:工具栏中可以显示一个数据表格,查看原始数据。
  • 保存图片:可以将图表保存为 PNG、JPG、PDF 等格式。

与 Python 生态无缝集成

pyecharts 可以轻松地与其他 Python 数据科学生态库结合使用。

  • Pandas:可以直接将 Pandas DataFrame 的数据传入图表,非常方便。
  • NumPy:可以处理 NumPy 数组。
  • Jupyter Notebook / JupyterLab:提供优秀的“Notebook”渲染器,可以在代码单元中直接显示可交互的图表。
  • Flask / Django:可以轻松地将生成的图表嵌入到 Web 应用中。

简单易用的 API

pyecharts 的 API 设计遵循链式调用风格,代码直观易懂。

  • 链式调用chart.add()...set_global_opts()...render() 的模式清晰明了。
  • 面向对象:每个图表都是一个对象,创建、配置、渲染的流程非常清晰。

核心概念与工作流程

要使用 pyecharts,需要理解几个核心概念:

Python pyecharts功能具体能实现哪些可视化效果?-图3
(图片来源网络,侵删)
  1. Option 对象:这是 pyecharts 的核心,所有对图表的配置(标题、图例、坐标轴、系列数据等)都封装在这个 Option 对象中,你可以把它看作是图表的“蓝图”或“配置说明书”。

  2. 工作流程

    • 初始化图表:创建一个 Line(), Bar(), Map() 等图表类的实例。
    • 添加数据:使用 add() 方法,将你的数据(如 x 轴数据、y 轴数据)和对应的系列名称添加到图表中。
    • 全局配置:使用 set_global_opts() 方法,对图表的全局属性进行配置,如标题、图例、工具箱、坐标轴等。
    • 渲染图表:使用 render() 方法,将配置好的图表生成一个 HTML 文件,这个文件包含了所有必要的 HTML 和 JavaScript 代码,可以在任何浏览器中打开。

代码示例

下面通过一个简单的例子来展示 pyecharts 的强大功能。

示例1:创建一个基础的柱状图

from pyecharts.charts import Bar
from pyecharts import options as opts
# 准备数据
x_data = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
y_data = [5, 20, 36, 10, 75, 90]
# 1. 初始化一个 Bar 图表实例
bar = (
    Bar()
    # 2. 添加X轴和Y轴的数据
    .add_xaxis(x_data)
    .add_yaxis("商家A", y_data) # 添加一个名为"商家A"的数据系列
)
# 3. 设置全局选项
bar.set_global_opts(opts=opts.TitleOpts(title="某商场月度销售数据", subtitle="单位:件"),
    yaxis_opts=opts.AxisOpts(name="销量"),
    xaxis_opts=opts.AxisOpts(name="商品类别"),
    tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow"),
)
# 4. 渲染图表,生成一个 HTML 文件
# 在 Jupyter Notebook 中,这行代码会直接在单元中显示图表
# 在 .py 文件中,它会生成一个 'bar_chart.html' 文件
bar.render("bar_chart.html")
print("图表已生成,文件名为: bar_chart.html")

运行这段代码后,会在你的工作目录下生成一个 bar_chart.html 文件,用浏览器打开它,你会看到一个交互式的柱状图,可以缩放、查看数据点详情等。

示例2:结合 Pandas 和地图

import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts
# 准备数据 (模拟中国部分省份的GDP数据)
data = {
    "省份": ["广东", "江苏", "山东", "浙江", "河南"],
    "GDP (万亿)": [12.4, 11.6, 8.3, 7.35, 6.13]
}
df = pd.DataFrame(data)
# 初始化地图
map_chart = (
    Map()
    # add() 方法可以直接接收 Pandas 的列
    .add(
        series_name="GDP (万亿)", 
        # 使用 to_dict('records') 将 DataFrame 转换为 ECharts 需要的列表格式
        data_pair=df[['省份', 'GDP (万亿)']].to_dict('records'), 
        maptype="china", # 指定地图类型为中国地图
    )
    # 设置全局选项
    .set_global_opts(
        title_opts=opts.TitleOpts(title="2025年中国部分省份GDP"),
        visualmap_opts=opts.VisualMapOpts(
            max_=15, # visualmap 的最大值
            is_piecewise=True, # 开启分段模式
            pieces=[
                {"min": 10, "label": "≥ 10万亿", "color": "#5470C6"},
                {"min": 8, "max": 10, "label": "8-10万亿", "color": "#91CC75"},
                {"min": 6, "max": 8, "label": "6-8万亿", "color": "#FAC858"},
            ]
        )
    )
)
# 渲染
map_chart.render("china_gdp_map.html")
print("地图图表已生成,文件名为: china_gdp_map.html")

这个例子展示了如何使用 pyecharts 的地图功能,并结合 Pandas 进行数据处理,并通过 visualmap_opts 实现了根据数值大小自动上色的功能。


特性 描述
功能强大 图表类型极其丰富,从基础图表到复杂的地理、3D图表一应俱全。
交互性好 生成的图表支持缩放、平移、数据视图等多种交互操作,用户体验佳。
高度可定制 几乎图表的每个元素都可以通过 Python 代码进行精细控制。
易于使用 API 设计简洁,链式调用风格清晰,学习曲线相对平缓。
生态融合 与 Pandas、Jupyter 等数据科学生态工具无缝集成,工作流顺畅。
输出灵活 可生成独立的 HTML 文件,方便分享和嵌入网页;也支持在 Jupyter 中直接渲染。

适用场景

  • 数据报告与仪表盘:创建动态、交互式的报告,替代静态的图片。
  • Web 应用集成:在 Flask、Django 等后端框架中嵌入实时数据图表。
  • 探索性数据分析:在 Jupyter Notebook 中快速、直观地理解数据。
  • 数据新闻:制作引人注目的、可交互的数据新闻可视化作品。

pyecharts 是 Python 数据可视化领域一个不可或缺的强大工具,尤其当你需要创建现代化、可交互、高颜值的 Web 图表时,它是首选之一。

分享:
扫描分享到社交APP
上一篇
下一篇