Python Pyecharts

发布时间:2023-05-22

一、基本介绍

Python Pyecharts是Python中的一个数据可视化库。它基于Echarts.js库,可以通过使用Python语言,进行数据探索和数据可视化。它非常容易使用,具有多种图表类型和交互性,并且可以在Jupyter Notebook中使用。在数据可视化中,Pyecharts可以帮助我们分析和探索数据,同时也可以向观众传达数据的故事。 下面我们通过一个简单的例子来展示如何使用Python Pyecharts绘制一个基本的柱形图:

from pyecharts.charts import Bar
from pyecharts import options as opts
#定义x轴和y轴数据
x_data = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
y_data = [820, 932, 901, 934, 1290, 1330, 1320]
#定义图表
bar = (
    Bar()
    .add_xaxis(x_data)
    .add_yaxis("销量", y_data)
    .set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
)
#生成html文件,并展示图表
bar.render("bar_chart.html")

二、图表类型

Python Pyecharts支持多种类型的图表,包括柱形图、折线图、饼图、散点图、地图等。下面我们分别介绍一下几种常用图表的绘制方法。

柱形图

柱形图是一种以长方形柱形的高度或长度表示数据的图表。它常用于比较不同类别的数据之间的大小。Pyecharts中绘制柱形图可以使用Bar类。

from pyecharts.charts import Bar
from pyecharts import options as opts
#定义x轴和y轴数据
x_data = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
y_data = [820, 932, 901, 934, 1290, 1330, 1320]
#定义图表
bar = (
    Bar()
    .add_xaxis(x_data)
    .add_yaxis("销量", y_data)
    .set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
)
#生成html文件,并展示图表
bar.render("bar_chart.html")

折线图

折线图是一种以线条连接数据点的方式表示数据的图表。它可以用于展示数据的趋势和变化。Pyecharts中绘制折线图可以使用Line类。

from pyecharts.charts import Line
from pyecharts import options as opts
#定义x轴和y轴数据
x_data = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
y_data = [820, 932, 901, 934, 1290, 1330, 1320]
#定义图表
line = (
    Line()
    .add_xaxis(x_data)
    .add_yaxis("销量", y_data)
    .set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
)
#生成html文件,并展示图表
line.render("line_chart.html")

饼图

饼图是一种圆形图表,根据数据大小,将圆形分成不同大小的扇形,用于展示数据的比例和占比。Pyecharts中绘制饼图可以使用Pie类。

from pyecharts.charts import Pie
from pyecharts import options as opts
#定义x轴和y轴数据
x_data = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
y_data = [820, 932, 901, 934, 1290]
#定义图表
pie = (
    Pie()
    .add("", [list(z) for z in zip(x_data, y_data)])
    .set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
#生成html文件,并展示图表
pie.render("pie_chart.html")

散点图

散点图是一种以点的位置表示数据的图表。它可以用来展示数据之间的关系,例如在二维平面中展示两个变量之间的关系。Pyecharts中绘制散点图可以使用Scatter类。

from pyecharts.charts import Scatter
from pyecharts import options as opts
#定义数据
data = [
    [10.0, 8.04],
    [8.0, 6.95],
    [13.0, 7.58],
    [9.0, 8.81],
    [11.0, 8.33],
    [14.0, 9.96],
    [6.0, 7.24],
    [4.0, 4.26],
    [12.0, 10.84],
    [7.0, 4.82],
    [5.0, 5.68]
]
#定义图表
scatter = (
    Scatter()
    .add_xaxis([d[0] for d in data])
    .add_yaxis("", [d[1] for d in data])
    .set_global_opts(title_opts=opts.TitleOpts(title="散点图"))
)
#生成html文件,并展示图表
scatter.render("scatter_chart.html")

地图

地图是一种以地域空间为基础展示各类地理数据的图表。Pyecharts中绘制地图可以使用Map类。

from pyecharts.charts import Map
from pyecharts import options as opts
#定义数据
data = [('广东', 1047), ('北京', 372), ('上海', 213), ('浙江', 200), ('四川', 157), ('江苏', 113), ('福建', 111), ('湖南', 109), ('山东', 105), ('河南', 85)]
#定义图表
map = (
    Map()
    .add("", data, "china")
    .set_global_opts(title_opts=opts.TitleOpts(title="中国各省人口分布图"))
)
#生成html文件,并展示图表
map.render("map_chart.html")

三、交互性

Python Pyecharts支持多种交互功能,例如数据切换、数据过滤、鼠标悬停等。这些交互功能可以使我们在探索数据时更加方便和直观。 下面我们通过一个例子来展示如何使用Python Pyecharts添加交互功能,例如鼠标悬停和数据过滤功能:

from pyecharts.charts import Scatter
from pyecharts import options as opts
#定义数据
x_data = [10, 20, 30, 40, 50, 60, 70, 80]
y_data = [10, 20, 30, 40, 50, 60, 70, 80]
#定义图表
scatter = (
    Scatter()
    .add_xaxis(x_data)
    .add_yaxis("", y_data)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="鼠标悬停和数据过滤功能"),
        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
        datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
    )
)
#生成html文件,并展示图表
scatter.render("scatter_chart_interaction.html")

四、主题定制

Python Pyecharts支持多种主题样式,例如light、dark、chalk等。我们可以根据自己的需要选择主题,并且可以自定义样式。下面我们通过一个简单的例子来展示如何使用Python Pyecharts定制主题样式:

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
#定义x轴和y轴数据
x_data = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
y_data = [820, 932, 901, 934, 1290, 1330, 1320]
#定义图表
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))#选择主题为LIGHT
    .add_xaxis(x_data)
    .add_yaxis("销量", y_data)
    .set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
)
#生成html文件,并展示图表
bar.render("bar_chart_custom.html")

五、结语

Python Pyecharts作为数据可视化库,具有丰富的图表类型、易用性和交互性,可以帮助我们更好地探索和传达数据。你可以使用Pyecharts来快速构建漂亮的数据可视化,向观众传达有关数据的故事。