Python pyecharts 模块

简介: Python pyecharts 模块

pyecharts 是一个基于 ECharts 的 Python 数据可视化库,它允许用户使用 Python 语言生成各种类型的交互式图表和数据可视化。

ECharts 是由百度开发的一款强大的开源数据可视化库,而 Pyecharts 则是 ECharts 的 Python 封装,使得在 Python 中使用 ECharts 变得更加方便。

pyecharts 提供了一组简单而灵活的 API,使用户能够轻松地创建各种图表,包括但不限于折线图、柱状图、散点图、饼图、地图等。

通过 pyecharts,用户可以使用 Python 语言处理和准备数据,然后使用简洁的代码生成交互式的图表,这些图表可以嵌入到 Web 应用程序中或保存为静态文件。

pyecharts 特点与功能:

  • 简单易用: Pyecharts 提供了直观而友好的 API,使得用户能够快速上手,轻松生成各种图表。
  • 丰富的图表类型: 支持多种常见的图表类型,包括线图、柱状图、散点图、饼图、地图等,满足不同场景的需求。
  • 支持主流数据格式: 能够处理常见的数据格式,如列表、字典、Pandas DataFrame 等。
  • 交互性: 生成的图表可以具有交互性,用户可以通过鼠标悬停、缩放等方式与图表进行互动。
  • 丰富的配置选项: 提供了丰富的配置选项,允许用户自定义图表的样式、布局等属性。
  • 支持主题: 提供多种主题,用户可以根据需要选择合适的主题,使图表更符合应用的整体风格。

pyecharts 安装

pip 安装:

pip install pyecharts

源码安装:

$ git clone https://github.com/pyecharts/pyecharts.git

$ cd pyecharts

$ pip install -r requirements.txt

$ python setup.py install

# 或者执行 python install.py

安装成功后可以查看 pyecharts 版本:

import pyecharts


print(pyecharts.__version__)

输出如下所示:

2.0.4

pyecharts 图表类型

pyecharts 支持以下图表类型图表:

图表类型 pyecharts 类 包引入
折线图 Line from pyecharts.charts import Line
柱状图 Bar from pyecharts.charts import Bar
散点图 Scatter from pyecharts.charts import Scatter
饼图 Pie from pyecharts.charts import Pie
雷达图 Radar from pyecharts.charts import Radar
热力图 HeatMap from pyecharts.charts import HeatMap
K 线图 Kline from pyecharts.charts import Kline
箱线图 Boxplot from pyecharts.charts import Boxplot
地图 Map from pyecharts.charts import Map
词云图 WordCloud from pyecharts.charts import WordCloud
仪表盘 Gauge from pyecharts.charts import Gauge
漏斗图 Funnel from pyecharts.charts import Funnel
树图 Tree from pyecharts.charts import Tree
平行坐标系图 Parallel from pyecharts.charts import Parallel
桑基图 Sankey from pyecharts.charts import Sankey
地理坐标系图 Geo from pyecharts.charts import Geo
时间线图 Timeline from pyecharts.charts import Timeline
3D 散点图 Scatter3D from pyecharts.charts import Scatter3D
3D 柱状图 Bar3D from pyecharts.charts import Bar3D
3D 曲面图 Surface3D from pyecharts.charts import Surface3D

创建第一个图表

接下来我们使用 Pyecharts 创建了一个简单的柱状图,展示了五个月份的销售额:

实例

from pyecharts.charts import Bar


# 准备数据

x_data = ['一月', '二月', '三月', '四月', '五月']

y_data = [10, 20, 15, 25, 30]


# 创建柱状图

bar_chart = Bar()

bar_chart.add_xaxis(x_data)

bar_chart.add_yaxis("销售额", y_data)


# 也可以传入路径参数,如 bar_chart.render("bar_chart.html")

bar_chart.render()

如果在 bar_chart.render() 中不指定文件路径,Pyecharts 默认会在当前工作目录下生成一个名为 "render.html" 的文件,即生成的图表将保存在 "render.html" 文件中。

以上代码,执行结果为:

如果你希望图表的文件名有一定的规范,或者想要指定保存的路径,可以在 render() 方法中提供文件路径参数。例如:

bar_chart.render("my_bar_chart.html")

这样,生成的图表就会保存在当前工作目录下的 "my_bar_chart.html" 文件中。

设置图表配置选项

实例中图表的标题是 "月度销售额柱状图",横轴是月份,纵轴是销售额,可以根据实际需求调整数据和图表配置:

实例

from pyecharts import options as opts

from pyecharts.charts import Bar


# 准备数据

x_data = ['一月', '二月', '三月', '四月', '五月']

y_data = [10, 20, 15, 25, 30]


# 创建柱状图

bar_chart = Bar()

bar_chart.add_xaxis(x_data)

bar_chart.add_yaxis("销售额", y_data)


# 配置图表

bar_chart.set_global_opts(

   title_opts=opts.TitleOpts(title="月度销售额柱状图"),

   xaxis_opts=opts.AxisOpts(name="月份"),

   yaxis_opts=opts.AxisOpts(name="销售额(万元)"),

)


# 渲染图表

bar_chart.render("bar_chart.html")

说明:

  • Bar():创建一个柱状图对象。
  • add_xaxisadd_yaxis:分别用于添加横轴和纵轴的数据。
  • set_global_opts:配置全局选项,包括标题、坐标轴的名称等。

生成的图表将保存为 "bar_chart.html" 文件,你可以在浏览器中打开该文件,查看生成的柱状图。

使用主题

pyecharts 支持主题切换,用户可以根据自己的需求选择合适的主题来改变图表的样式。

pyecharts 提供了 10+ 种内置主题,开发者也可以定制自己喜欢的主题。

以下是一个简单的例子,演示了如何使用 pyecharts 切换主题:

实例

from pyecharts import options as opts

from pyecharts.charts import Bar

# 内置主题类型可查看 pyecharts.globals.ThemeType

from pyecharts.globals import ThemeType


# 准备数据

x_data = ['一月', '二月', '三月', '四月', '五月']

y_data = [10, 20, 15, 25, 30]


# 创建柱状图

bar_chart = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))  # 初始主题为亮色系

bar_chart.add_xaxis(x_data)

bar_chart.add_yaxis("销售额", y_data)


# 配置图表

bar_chart.set_global_opts(

   title_opts=opts.TitleOpts(title="月度销售额柱状图"),

   xaxis_opts=opts.AxisOpts(name="月份"),

   yaxis_opts=opts.AxisOpts(name="销售额(万元)"),

)


# 切换到暗色系主题

bar_chart.set_global_opts(theme=ThemeType.DARK)


# 渲染图表

bar_chart.render("themed_bar_chart.html")

以上例子演示了如何在 pyecharts 中使用 ThemeType 来切换主题,pyecharts 支持的主题类型包括 LIGHT(亮色系)、DARK(暗色系)等,你可以根据需求选择合适的主题。

  • init_opts=opts.InitOpts(theme=ThemeType.LIGHT):在创建图表对象时,通过 init_opts 参数指定图表的初始主题,这里设置为亮色系。

生成的图表如下:

以下是 pyecharts 支持的主题列表:

Light Themes(亮色系主题):

  • "LIGHT": 亮色系默认主题
  • "WESTEROS": 经典的暖色调主题
  • "CHALK": 粉笔风格主题
  • "ESSOS": 温和的绿色调主题
  • "INFOGRAPHIC": 信息图形主题
  • "MACARONS": 美味糖果色主题

Dark Themes(暗色系主题):

  • "DARK": 暗色系默认主题
  • "PURPLE-PASSION": 深紫色调主题
  • "SHINE": 简洁的黑色调主题
  • "VINTAGE": 复古风格主题
  • "ROMA": 古罗马风格主题
  • "WALDEN": 森林深色系主题

用户可以通过设置自定义的颜色和样式来创建自定义主题。


设置全局配置项

set_global_opts 是 pyecharts 中用于设置全局配置项的方法,该方法允许你配置整个图表的一些全局属性,如标题、坐标轴、图例等。

以下是一些常用的全局配置项:

bar_chart.set_global_opts(

   title_opts=opts.TitleOpts(title="月度销售额柱状图", subtitle="副标题"),

   xaxis_opts=opts.AxisOpts(name="月份"),

   yaxis_opts=opts.AxisOpts(name="销售额(万元)"),

   legend_opts=opts.LegendOpts(pos_left="center", pos_top="top"),

   toolbox_opts=opts.ToolboxOpts(),

   tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),

)

说明:

  • title_opts: 标题配置项,可以设置主标题和副标题,以及相关的样式设置。
  • xaxis_optsyaxis_opts: x 轴和 y 轴的配置项,可以设置轴的名称、轴线样式等。
  • legend_opts: 图例配置项,可以设置图例的位置、样式等。
  • toolbox_opts: 工具箱配置项,用于添加一些交互工具,如保存为图片、数据视图等。
  • tooltip_opts: 提示框配置项,可以设置提示框的触发方式、样式等。

实例

from pyecharts import options as opts

from pyecharts.charts import Bar


# 准备数据

x_data = ['一月', '二月', '三月', '四月', '五月']

y_data = [10, 20, 15, 25, 30]


# 创建柱状图

bar_chart = Bar()

bar_chart.add_xaxis(x_data)

bar_chart.add_yaxis("销售额", y_data)


# 配置全局属性

bar_chart.set_global_opts(

   title_opts=opts.TitleOpts(title="月度销售额柱状图", subtitle="副标题"),

   xaxis_opts=opts.AxisOpts(name="月份"),

   yaxis_opts=opts.AxisOpts(name="销售额(万元)"),

   legend_opts=opts.LegendOpts(pos_left="center", pos_top="top"),

   toolbox_opts=opts.ToolboxOpts(),

   tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),

)


# 渲染图表

bar_chart.render("global_options_bar_chart.html")

生成的图表如下:

更多 pyecharts 模块内容可以参考: https://pyecharts.org/#/zh-cn/intro

相关文章
|
10天前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
26 5
|
20天前
|
Java 程序员 开发者
Python的gc模块
Python的gc模块
|
23天前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
69 5
|
24天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
18 1
|
25天前
|
XML 前端开发 数据格式
超级详细的python中bs4模块详解
Beautiful Soup 是一个用于从网页中抓取数据的 Python 库,提供了简单易用的函数来处理导航、搜索和修改分析树。支持多种解析器,如 Python 标准库中的 HTML 解析器和更强大的 lxml 解析器。通过简单的代码即可实现复杂的数据抓取任务。本文介绍了 Beautiful Soup 的安装、基本使用、对象类型、文档树遍历和搜索方法,以及 CSS 选择器的使用。
55 1
|
22天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
17 0
|
23天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
15 0
|
23天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
16 0
|
24天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy 教程之 SciPy 模块列表 13 - 单位类型。常量模块包含多种单位:公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例:`constants.zero_Celsius` 返回 273.15 开尔文,`constants.degree_Fahrenheit` 返回 0.5555555555555556。
14 0
|
25天前
|
Python
SciPy 教程 之 SciPy 模块列表 11
SciPy教程之SciPy模块列表11:单位类型。常量模块包含公制单位、质量单位、角度换算、时间单位、长度单位、压强单位、体积单位、速度单位、温度单位、能量单位、功率单位、力学单位等。体积单位示例展示了不同体积单位的换算,如升、加仑、流体盎司、桶等。
19 0