python数据可视化:pyecharts

1. 什么是pyecharts

pyecharts是一个使用Python语言的数据可视化库,是Echarts的Python版本,它主要用于生成Echarts图表、地图和其他图形。

它能够帮助我们使用Python语言,快速高效地生成各种类型的图形。

2. 安装pyecharts

2.1 安装方式

安装pyecharts非常简单,可以通过pip命令进行安装。

pip install pyecharts

如果你要使用某些地图,例如中国地图,还需要安装百度地图组件:

pip install echarts-countries-pypkg

pip install echarts-china-provinces-pypkg

pip install echarts-china-cities-pypkg

pip install echarts-china-counties-pypkg

pip install echarts-china-misc-pypkg

pip install echarts-liquidfill-pypkg

pip install echarts-themes-pypkg

pip install echarts-gl-pypkg

pip install echarts-cities-js

2.2 pyecharts快速上手

使用pyecharts快速做一个简单的图表。

from pyecharts.charts import Bar

from pyecharts import options as opts

list1 = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

list2 = [820, 932, 901, 934, 1290, 1330, 1320]

bar = (

Bar()

.add_xaxis(list1)

.add_yaxis("销量", list2)

.set_global_opts(title_opts=opts.TitleOpts(title="柱状图示例"))

)

bar.render_notebook()

3. pyecharts图表类型

pyecharts支持多种图表类型,常用的有柱状图、折线图、散点图、饼图、地图等。

3.1 柱状图

柱状图是一种常见的可视化方式,它通常用于展示数据在不同类别之间的比较情况。下面是一个简单的柱状图例子。

from pyecharts.charts import Bar

from pyecharts import options as opts

list1 = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

list2 = [820, 932, 901, 934, 1290, 1330, 1320]

bar = (

Bar()

.add_xaxis(list1)

.add_yaxis("销量", list2)

.set_global_opts(title_opts=opts.TitleOpts(title="柱状图示例"))

)

bar.render_notebook()

以上代码使用pyecharts制作了一个简单的柱状图,横坐标为星期一到星期天,纵坐标为每天的销量。其中add_xaxis和add_yaxis分别表示设置横纵坐标的值,set_global_opts用于设置图表的标题和样式等一些全局属性。

3.2 折线图

折线图是一种可以展示数据趋势变化的图表,通常用于展示时间序列数据。下面是一个简单的折线图。

from pyecharts.charts import Line

from pyecharts import options as opts

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="折线图示例"))

)

line.render_notebook()

使用pyecharts绘制折线图与绘制柱状图的方式类似,只需要调用不同的类即可。

3.3 散点图

散点图用于展示两个连续型变量之间的关系。例如,可以用散点图展示身高和体重之间的关系。下面是一个简单的散点图。

from pyecharts.charts import Scatter

from pyecharts import options as opts

x_data = [10, 20, 30, 40, 50, 60]

y_data = [1, 2, 3, 4, 5, 6]

data = list(zip(x_data, y_data))

scatter = (

Scatter()

.add_xaxis(x_data)

.add_yaxis("散点图", y_data)

.set_global_opts(title_opts=opts.TitleOpts(title="散点图示例"))

)

scatter.render_notebook()

散点图的绘制方式与折线图和柱状图类似,只是调用的是Scatter类。

3.4 饼图

饼图是一种展示数据占比情况的图表。下面是一个简单的饼图。

from pyecharts.charts import Pie

from pyecharts import options as opts

x_data = ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎']

y_data = [335, 310, 234, 135, 1548]

pie = (

Pie()

.add(

"",

list(zip(x_data, y_data)),

# 配置圆环半径,第一个为内半径,第二个为外半径

radius=[50, 70],

# 配置饼图的文本标签,标签显示文字的格式为"{b}: {c} ({d}%)"

label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)"),

# 配置饼图的标题

title_opts=opts.TitleOpts(title="饼图示例"),

)

.set_global_opts(

# 配置图例

legend_opts=opts.LegendOpts(pos_left="left", orient="vertical")

)

)

pie.render_notebook()

饼图的绘制稍微复杂一些,首先需要调用Pie类,然后使用add方法添加数据,使用set_global_opts方法配置全局属性,例如标题、图例等。

3.5 地图

地图是一种展示地理位置信息的图表。下面是一个简单的地图。

from pyecharts import options as opts

from pyecharts.charts import Map

data = [("广东", 1048), ("北京", 702), ("上海", 587), ("浙江", 516), ("湖南", 105)]

map_chart = (

Map()

.add("销量", data, "china")

.set_global_opts(

# 配置地图的中心和缩放比例

opts.VisualMapOpts(max_=1200),

title_opts=opts.TitleOpts(title="地图示例"),

)

)

map_chart.render_notebook()

以上代码展示了如何使用pyecharts绘制一个简单的地图。由于地图需要引用百度地图API,因此在使用之前需要先安装相应的地图组件。之后就可以像其他类型的图表一样调用相应的类来绘制地图。

4. pyecharts样式配置

pyecharts提供了丰富的样式配置选项,我们可以根据需要进行定制,例如修改字体、调整图表大小、添加动画等。

4.1 样式定制

pyecharts提供了一些全局属性设置,可以用来定制图表的样式,例如修改字体、字号、图表背景等。

bar = (

Bar()

.add_xaxis(list1)

.add_yaxis("销量", list2)

.set_global_opts(

# 修改图表的标题

title_opts=opts.TitleOpts(title="柱状图示例"),

# 修改字体和字号

xaxis_opts=opts.AxisOpts(name_font={'family': 'Microsoft YaHei', 'size': 14}),

yaxis_opts=opts.AxisOpts(name_font={'family': 'Microsoft YaHei', 'size': 14}),

)

)

bar.render_notebook()

在以上代码中,我们使用set_global_opts方法来设置全局属性,例如修改横坐标、纵坐标和标题的字体。

4.2 图表大小调整

我们可以通过调整图表的大小来满足不同需求。pyecharts提供了多种调整图表大小的方式,例如set_global_opts方法、使用页面调整大小等。

# 第一种方式,使用set_global_opts方法配置

bar = (

Bar()

.add_xaxis(list1)

.add_yaxis("销量", list2)

.set_global_opts(title_opts=opts.TitleOpts(title="柱状图示例", pos_left="center"), height=400, width=500)

)

# 第二种方式,使用render_notebook方法的参数进行配置

scatter = (

Scatter()

.add_xaxis(x_data)

.add_yaxis("散点图", y_data)

.set_global_opts(title_opts=opts.TitleOpts(title="散点图示例"))

)

scatter.render_notebook(height=400, width=500)

在以上代码中,我们给出了两种调整图表大小的方式。第一种方式是使用set_global_opts方法,我们可以在其中配置height和width属性来调整图表大小。第二种方式是在render_notebook方法中传入height和width参数来调整图表大小。

4.3 图表动画

pyecharts还提供了图表动画功能,使图表更生动有趣。

from pyecharts.charts import EffectScatter

from pyecharts import options as opts

data = [

['广东', 1048],

['北京', 702],

['上海', 587],

['浙江', 516],

['湖南', 105],

]

es = (

EffectScatter()

.add("销量", data)

.set_global_opts(title_opts=opts.TitleOpts(title="效果散点图", pos_left="center"))

.set_series_opts(

# 动画配置

effect_opts=opts.EffectOpts(

symbol="circle", symbol_size=5, color="blue"

)

)

)

es.render_notebook()

在以上代码中,我们使用了EffectScatter类来绘制效果散点图。配置图表动画的方式是,使用set_series_opts方法的effect_opts属性。

5. pyecharts的应用场景

pyecharts是一个开源的数据可视化库,可以用于多种数据可视化应用场景,例如:

数据统计与分析

地理信息可视化

金融数据可视化

机器学习结果展示

下面以一个实际的应用场景为例,介绍如何使用pyecharts进行数据可视化。

5.1 数据集介绍

我们将使用一个名为"Xinguan_data.csv"的数据集来展示应用场景。该数据集记录了武汉市新冠疫情的数据,包括日期、新增确诊数量、累计确诊数量、疑似病例数量等。

5.2 数据可视化

我们使用pyecharts制作一个疫情趋势图,以便更好地展示疫情数据。

from pyecharts.charts import Line

from pyecharts import options as opts

import pandas as pd

# 读取数据

data = pd.read_csv("Xinguan_data.csv")

# 设置横坐标和纵坐标

x_data = data["date"]

y_data = data["confirmedNum"]

# 绘制折线图

line = (

Line()

.add_xaxis(x_data)

.add_yaxis("新增确诊人数", y_data, is_smooth=True)

.set_global_opts(

xaxis_opts=opts.AxisOpts(

# 设置x轴标签的旋转角度,防止重叠

axislabel_opts=opts.LabelOpts(rotate=-30, font_size=12)

),

# 设置标题和提示框

title_opts=opts.TitleOpts(title="武汉市新冠疫情趋势图", pos_left="center",),

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

)

)

line.render_notebook()

以上代码展示了如何使用pyecharts绘制疫情趋势图。我们首先读取数据集,然后使用Line类绘制折线图。在set_global_opts方法中设置了图表的标题和提示框等信息,使图表更加丰富。

6. 总结

本文介绍了pyecharts的基础知识和常用图表类型,包括柱状图、折线图、散点图、饼图、地图等。我们使用简单的代码示例展示了这些图表的绘制方法。此外,本文还介绍了如何对图表进行样式配置和调整大小,使图表更美观易读。

pyecharts是一款快速、高效的数据可视化库,能够简化数据可视化的操作。它的应用范围很广,可以用于各种数据可视化应用场景。通过对本文代码的学习,相信读者已经对pyecharts有了更深入的了解,并能使用pyecharts绘制自己的图表了。

后端开发标签