PyEcharts概述
- 第1关 快速上手
- 任务描述
- 相关知识
- 导入图表类型
- 添加数据
- 设置图表样式
- 输出图表
- 链式调用
- 编程要求
- 测试说明
- 代码
第1关 快速上手
任务描述
本关任务:快速上手使用pyEcharts进行绘图。
相关知识
为了完成本关任务,你需要掌握:1. pyEcharts 的基本使用方法,2.修改 pyEcharts 图表样式的方法。
导入图表类型
和其他库的导入方法一样,在绘图之前首先要在文件开头导入所需图表类型(练习代码中已经导入,无需再修改)。
1. from pyecharts.charts import Bar
Bar 类型是柱状图/条形图在 pyEcharts 中的英文名。 pyEcharts 中有很多常用的图表类型如:Pie(饼图) 、wordcloud(词云图)、Scatter(散点图)等等,我们将会在后边的实训中一一学习。
import 我们需要的图标类型后,要像面向对象中的实例化类一样声明图表:
1.bar = Bar()
添加数据
实例化图表之后便可以向图表中添加数据。 pyEcharts 中不同类型的图表添加数据的方法不尽相同,但基本原理是类似的,此处以 Bar 类型图表即条形图为例介绍添加数据的方法。
示例如下:
1. bar.add_xaxis(["Shirts", "Sweaters", "Ties", "Pants", "Windbreaker", "High-heels", "Socks"])
2. bar.add_yaxis("Merchant-A", [114, 55, 27, 101, 125, 27, 105])
3. bar.add_yaxis("Merchant-B", [57, 134, 137, 129, 145, 60, 49])
以上代码是向 bar 的 x 轴添加 6 种衣服类型,并向 y 轴分别添加商家 A 和商家 B 的两组销售数据,pyEcharts 会自动绘制每组两行的柱状图。
设置图表样式
有了数据,就可以设置我们需要的图标样式并添加一些额外的信息。
比如将 x 轴和 y 轴翻转:
1. bar.reversal_axis()
这一设置类型属于 Bar 图表自带类型。
将标签的位置设置为靠右显示:
1. bar.set_series_opts(label_opts=opts.LabelOpts(position="right"))
这一设置类型属于系列配置项(Series Option)。系列配置项还可以设置文字类型、图元类型等等。我们将会在后边的实训中做详细介绍。
将标题设置为“Bar-TestPicture”
1. bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar-TestPicture"))
标题的设置属于全局配置项(Global Option),具体各部分名称可参考下图:
输出图表
pyEcharts 有多种输出方式以格式,比如嵌入 Web 界面以 html 格式输出、嵌入 Jupyter 输出或者以文件的形式输出 PNG 格式的图片。在实训中我们采用输出 PNG 图片的形式:
1. make_snapshot(snapshot, bar_chart().render(), "StudentAnswer/student_answer.png")
链式调用
PyEcharts 支持链式调用,比如声明图表类型以及添加数据的部分可以写成如下格式:
1. bar = (
2. Bar()
3. .add_xaxis(["Shirts", "Sweaters", "Ties", "Pants", "Windbreaker", "High-heels", "Socks"])
4. .add_yaxis("Merchant-A", [114, 55, 27, 101, 125, 27, 105])
5. .add_yaxis("Merchant-B", [57, 134, 137, 129, 145, 60, 49])
6. )
编程要求
根据以上介绍,在右侧编辑器补充代码,将上述介绍中的各部分组合成一段完整的 PyEcharts 代码。
测试说明
平台会对你编写的代码进行测试:
预期输出图像:
若你的代码所绘图表与预期一致则通过(若图片太小看不清可以右键下载到本地查看比对)。
开始你的任务吧,祝你成功!
代码
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot
def bar_chart() -> Bar:
# ********* Begin *********#
bar=Bar()
bar.add_xaxis(["Shirts", "Sweaters", "Ties", "Pants", "Windbreaker", "High-heels", "Socks"])
bar.add_yaxis("Merchant-A", [114, 55, 27, 101, 125, 27, 105])
bar.add_yaxis("Merchant-B", [57, 134, 137, 129, 145, 60, 49])
bar.reversal_axis()
bar.set_series_opts(label_opts=opts.LabelOpts(position='right'))
bar.set_global_opts(title_opts=opts.TitleOpts(title='Bar-TestPicture'))
# ********** End **********#
return bar
make_snapshot(snapshot, bar_chart().render(), "StudentAnswer/student_answer.png")