Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了(引自官方文档)。
安装
版本V1,支持Python3.6+
- 使用Anaconda(注意Anaconda中Python版本),在其自带的命令行界面通过如下命令安装。
pip install pyecharts
- 直接在操作系统命令行界面安装,同样通过上述命令。但需注意该命令是否将pyecharts安装在正确的目录下面,可通过pip list命令显示已安装的库, 如果已安装了numpy库,可通过pip install numpy 看到pip是否将库安装在自己想要的地方。
使用思路
本篇文章针对pyecharts官方文档中图表类型(包含基本图表、直角坐标系图表、树形图表等)来进行相关的使用说明。
在根据需要选择相应的图表进行绘制时,如何按照自己的要求将图形绘制出来,其中必然面临着对该图表进行较为细致化的工作,这也是这篇文章的目的。
pyecharts官方文档中,含有大量变量注释的语法var: type = value , 其本质上就是 var = value # type就是var期望的类型,主要是为了方便帮助复杂案例中的类型推断。
各类图表既含有共同的方法,显然由于图表本身的特性不同,它们本身又含有自身特有的方法。
以基本图表中的日历图和直角坐标系图表中的柱状图为例。
set_global_options ()方法是共有的方法,意为设置全局配置选项。add()方法是日历图所有的,而add_yaxis()方法是柱状图所有且柱状图没有add()方法。所以在使用单个图表时要具体图表具体分析。
图表本身特有方法在使用上又有着相同的地方,重点在方法的参数上面,在使用官方文档时,应细看图表方法的相关参数。
下面以官方的具体实例进行较为细致的使用说明。
具体实例
1.官方实例一:日历图(使用过程详看注释)
import datetime
import random
#导入配置项和基本图表中的日历图
from pyecharts import options as opts
from pyecharts.charts import Calendar
#函数返回日历表
def calendar_base() -> Calendar:
begin = datetime.date(2017, 1, 1)
end = datetime.date(2017, 12, 31)
'''
此处数据data的形式依据文档中add()方法参数解释说明给定:“”中为引用文档中的说明。
“# 系列数据,格式为 [(date1, value1), (date2, value2), ...]
qyaxis_data: Sequence”
'''
data = [
[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]
for i in range((end - begin).days + 1)
]
c = (
Calendar()#以下方法调用为链式调用
.add("", data, calendar_opts=opts.CalendarOpts(range_="2017"))'''此处的calendar_opts仍为add()方法中所特有的参数选项,依据文档中给出的说明来进行具体参数的设置'''
#set_global_opts为全局配置项方法,具体的全局配置项较多,使用时可根据需要来进行选择。
.set_global_opts(
title_opts=opts.TitleOpts(title="Calendar-2017年微信步数情况"),
visualmap_opts=opts.VisualMapOpts(
max_=20000,
min_=500,
orient="horizontal",
is_piecewise=True,
pos_top="230px",
pos_left="100px",
),
)
)
return c
效果图如下所示:
2.官方实例二:柱状图(使用过程详见注释)
#返回树状图
def bar_base_with_animation() -> Bar:
c = (
'''
class Bar()定义时,根据文档可含有参数
init_opts=opts.InitOpts(),而opts.InitOpts()
根据文档仍可含有动画配置项AnimationOpts类参数,
而AnimationOpts本身又含有参数。
'''
Bar(
init_opts=opts.InitOpts(
animation_opts=opts.AnimationOpts(
animation_delay=1000, animation_easing="elasticOut"
)
)
)
'''
下面add_**已不再是之前的add()方法,而是其特有的方法,
其中Faker类是官方提供的数据集,无需过多注意。
'''
.add_xaxis(Faker.choose())
.add_yaxis("商家A", Faker.values())
.add_yaxis("商家B", Faker.values())
#set_global_opts是共有的方法,其参数对应不同的配置项。
.set_global_opts(
title_opts=opts.TitleOpts(title="Bar-动画配置基本示例", subtitle="我是副标题")
)
)
return c
效果图如下所示: