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绘制自己的图表了。