第2关:Funnel:漏斗图(二)
编程要求
根据以上介绍,在右侧编辑器补充代码,利用给定数据绘制相应的漏斗图,要求:
-
将图像画布大小初始化为宽 1600 像素,高 800 像素;
-
系列名称设置为空;
-
将给定数据传入漏斗图数据对;
-
设置图形数据间距为 2 ;
-
显示标签,并将其位置设置为内置(inside);
-
将提示框组件的触发类型设置为数据项图形触发,并将其内容格式化为“系列名 <换行> 数据名:数据值(百分比模式)。;
-
为图形添加描边,颜色为“#fff”,宽度为 1;
-
将漏斗图主标题设置为“漏斗图”,副标题设置为“纯属虚构”。
答案
from PreTest import *
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_phantomjs import snapshot
from pyecharts.charts import Funnel
x_data = ["展现", "点击", "访问", "咨询", "订单"]
y_data = [100, 80, 60, 40, 20]
data = [[x_data[i], y_data[i]] for i in range(len(x_data))]
def funnel_chart() -> Funnel:
# ********* Begin *********#
funnel = (
Funnel(init_opts=opts.InitOpts(width="1600px", height="800px"))
.add(
series_name="",
data_pair=data,
gap=2,
tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{a} <br/>{b} : {c}%"),
label_opts=opts.LabelOpts(is_show=True, position="inside"),
itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),
)
.set_global_opts(title_opts=opts.TitleOpts(title="漏斗图", subtitle="纯属虚构"))
)
# ********** End **********#
return funnel
make_snapshot(snapshot, funnel_chart().render("Result/render.html"), "StudentAnswer/student_answer.png") # 输出图片
make_snapshot(snapshot, funnel_label_inside_chart(data).render(), "StandardAnswer/task2/standard_answer_2.png")
测试说明
平台会运行你编写的代码进行绘图,并与预期图片进行比对。预期效果如下:
提示:
初始化画布大小用到的配置项格式:
Funnel(init_opts=opts.InitOpts(width="", height=""))
格式化提示框组件时用到的格式:
{a} <br/>{b} : {c}%