PyEcharts 基本图表之漏斗图

第1关:Funnel:漏斗图(一)

任务要求:


任务描述

本关任务:利用 PyEcharts 绘制一个基本的漏斗图。

相关知识

为了完成本关任务,你需要掌握:1. Python 的基本语法,2. PyEcharts 漏斗图的相关内容。

导入图表类型

与日历图的操作类似,在文件的开始我们首先要将所需包导入,如右侧编辑器中代码所示。

导入漏斗图的语句为:

 
  1. from pyecharts.charts import Funnel

为了方便构造数据,我们还导入了 PyEcharts 提供的虚拟数据包,如下所示:

 
  1. from pyecharts.faker import Faker

构造数据

通过 PyEcharts 提供的虚拟数据包 Faker,我们可以用如下语句构造一个二维 List:

 
  1. data = [
  2. list(z) for z in zip(Faker.choose(), Faker.values())
  3. ]

其中,Faker包中的 choose 方法会随机选择一组属性,而 values 方法则生成随机的数据值。

熟悉标题配置选项

在之前的关卡中我们已经熟悉了 PyEcharts 绘图的流程,故本关主要介绍标题相关的配置选项:

 
  1. class TitleOpts(
  2. # 主标题文本,支持使用 \n 换行。
  3. title: Optional[str] = None,
  4. # 主标题跳转 URL 链接
  5. title_link: Optional[str] = None,
  6. # 主标题跳转链接方式
  7. # 默认值是: blank
  8. # 可选参数: 'self', 'blank'
  9. # 'self' 当前窗口打开; 'blank' 新窗口打开
  10. title_target: Optional[str] = None,
  11. # 副标题文本,支持使用 \n 换行。
  12. subtitle: Optional[str] = None,
  13. # 副标题跳转 URL 链接
  14. subtitle_link: Optional[str] = None,
  15. # 副标题跳转链接方式
  16. # 默认值是: blank
  17. # 可选参数: 'self', 'blank'
  18. # 'self' 当前窗口打开; 'blank' 新窗口打开
  19. subtitle_target: Optional[str] = None,
  20. # title 组件离容器左侧的距离。
  21. # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
  22. # 也可以是 'left', 'center', 'right'。
  23. # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
  24. pos_left: Optional[str] = None,
  25. # title 组件离容器右侧的距离。
  26. # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
  27. pos_right: Optional[str] = None,
  28. # title 组件离容器上侧的距离。
  29. # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
  30. # 也可以是 'top', 'middle', 'bottom'。
  31. # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
  32. pos_top: Optional[str] = None,
  33. # title 组件离容器下侧的距离。
  34. # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
  35. pos_bottom: Optional[str] = None,
  36. # 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。
  37. # // 设置内边距为 5
  38. # padding: 5
  39. # // 设置上下的内边距为 5,左右的内边距为 10
  40. # padding: [5, 10]
  41. # // 分别设置四个方向的内边距
  42. # padding: [
  43. # 5, // 上
  44. # 10, // 右
  45. # 5, // 下
  46. # 10, // 左
  47. # ]
  48. padding: Union[Sequence, Numeric] = 5,
  49. # 主副标题之间的间距。
  50. item_gap: Numeric = 10,
  51. # 主标题字体样式配置项,参考 `series_options.TextStyleOpts`
  52. title_textstyle_opts: Union[TextStyleOpts, dict, None] = None,
  53. # 副标题字体样式配置项,参考 `series_options.TextStyleOpts`
  54. subtitle_textstyle_opts: Union[TextStyleOpts, dict, None] = None,
  55. )

如上所示,标题主要分为主标题和副标题两个模块,其配置方法相类似。比较常用的有设置文本、设置超链接、设置位置等选项。上述字体样式配置与其他部分字体样式配置相似,我们将在后续实训中详细介绍。

标题配置属于全局配置项,可通过 set_global_opts 方法设置。

编程要求

根据以上介绍,在右侧编辑器补充代码,绘制给定数据的漏斗图,要求:

  • 系列名称设置为“商品”;

  • 将给定数据传入漏斗图;

  • 将漏斗图标题设置为“Funnel-基本示例”;

  • 为漏斗图添加副标题,命名为“Funnel-副标题”。

测试说明

平台会运行你编写的代码进行绘图,并与预期图片进行比对。预期效果如下:

提示:
设置系列名称以及添加数据部分可以简写为:

 
  1. ...
  2. .add("名称", data)
  3. ...

开始你的任务吧,祝你成功!

输入一下代码

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

from pyecharts.faker import Faker

data = [
    list(z) for z in zip(Faker.choose(), Faker.values())
]

def funnel_chart() -> Funnel:
    # ********* Begin *********#  
    funnel = (
        Funnel()
        .add("商品", data)
        .set_global_opts(title_opts=opts.TitleOpts(title="Funnel-基本示例",subtitle="Funnel-副标题"))
    )
    # ********** End **********#
    return funnel

make_snapshot(snapshot, funnel_chart().render("Result/render.html"), 'StudentAnswer/student_answer.png') # 输出图片
make_snapshot(snapshot, funnel_base(data).render(), "StandardAnswer/task1/standard_answer_1.png")

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据程序设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值