详解Python+Pyecharts实现漏斗图的绘制
作者:数据程序设计 发布时间:2022-07-07 10:22:42
任务描述
本关任务:利用 PyEcharts 绘制一个基本的漏斗图。
相关知识
为了完成本关任务,你需要掌握:
1. Python 的基本语法
2. PyEcharts 漏斗图的相关内容
导入图表类型
与日历图的操作类似,在文件的开始我们首先要将所需包导入,如右侧编辑器中代码所示。
导入漏斗图的语句为
from pyecharts.charts import Funnel
为了方便构造数据,我们还导入了 PyEcharts 提供的虚拟数据包,如下所示:
from pyecharts.faker import Faker
构造数据
通过 PyEcharts 提供的虚拟数据包 Faker,我们可以用如下语句构造一个二维 List:
data = [
list(z) for z in zip(Faker.choose(), Faker.values())
]
其中,Faker包中的 choose 方法会随机选择一组属性,而 values 方法则生成随机的数据值。
熟悉标题配置选项
在之前的关卡中我们已经熟悉了 PyEcharts 绘图的流程,故本关主要介绍标题相关的配置选项:
class TitleOpts(
# 主标题文本,支持使用 \n 换行。
title: Optional[str] = None,
# 主标题跳转 URL 链接
title_link: Optional[str] = None,
# 主标题跳转链接方式
# 默认值是: blank
# 可选参数: 'self', 'blank'
# 'self' 当前窗口打开; 'blank' 新窗口打开
title_target: Optional[str] = None,
# 副标题文本,支持使用 \n 换行。
subtitle: Optional[str] = None,
# 副标题跳转 URL 链接
subtitle_link: Optional[str] = None,
# 副标题跳转链接方式
# 默认值是: blank
# 可选参数: 'self', 'blank'
# 'self' 当前窗口打开; 'blank' 新窗口打开
subtitle_target: Optional[str] = None,
# title 组件离容器左侧的距离。
# left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
# 也可以是 'left', 'center', 'right'。
# 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
pos_left: Optional[str] = None,
# title 组件离容器右侧的距离。
# right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
pos_right: Optional[str] = None,
# title 组件离容器上侧的距离。
# top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
# 也可以是 'top', 'middle', 'bottom'。
# 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
pos_top: Optional[str] = None,
# title 组件离容器下侧的距离。
# bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
pos_bottom: Optional[str] = None,
# 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。
# // 设置内边距为 5
# padding: 5
# // 设置上下的内边距为 5,左右的内边距为 10
# padding: [5, 10]
# // 分别设置四个方向的内边距
# padding: [
# 5, // 上
# 10, // 右
# 5, // 下
# 10, // 左
# ]
padding: Union[Sequence, Numeric] = 5,
# 主副标题之间的间距。
item_gap: Numeric = 10,
# 主标题字体样式配置项,参考 `series_options.TextStyleOpts`
title_textstyle_opts: Union[TextStyleOpts, dict, None] = None,
# 副标题字体样式配置项,参考 `series_options.TextStyleOpts`
subtitle_textstyle_opts: Union[TextStyleOpts, dict, None] = None,
)
如上所示,标题主要分为主标题和副标题两个模块,其配置方法相类似。比较常用的有设置文本、设置超链接、设置位置等选项。上述字体样式配置与其他部分字体样式配置相似,我们将在后续实训中详细介绍。
标题配置属于全局配置项,可通过 set_global_opts 方法设置。
编程要求
根据以上介绍,在右侧编辑器补充代码,绘制给定数据的漏斗图,要求:
系列名称设置为“商品”;
将给定数据传入漏斗图;
将漏斗图标题设置为“Funnel-基本示例”;
为漏斗图添加副标题,命名为“Funnel-副标题”。
测试说明
平台会运行你编写的代码进行绘图,并与预期图片进行比对。预期效果如下:
提示:
设置系列名称以及添加数据部分可以简写为:
...
.add("名称", data)
...
开始你的任务吧,祝你成功!
代码
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")
来源:https://blog.csdn.net/m0_56660914/article/details/125356757
猜你喜欢
- 在我们的`` current_datetime`` 视图范例中,尽管内容是动态的,但是URL ( /time/ )是静态的。 在 大多数动态
- 本文实例讲述了python的keyword模块用法。分享给大家供大家参考。具体如下:Help on module keyword:NAME
- 第一点:找Python安装目录方法一:方法二:输入import sysprint(sys.path)化黑线处第二点:找到安装目录后就可以开始
- 1.二进制读取模式rt 读取文本文件(默认值)rb 读取二进制文件file_name = "C:/Users/cheng/Desk
- 一个简单的验证码爬取程序本文介绍了在Python2.7环境下爬取网站验证码:思路就是获取验证码对应的url,然后发起requst请求,读取该
- 1.问:在DW中如何设置页面边距为0?答:在DW中似乎没有直接设置的方法,你只有在Html文档中插入以
- user-define-session-inc.php文件代码:<?php function mysession_open($save
- 由于Pytorch不像TensorFlow有谷歌巨头做维护,很多功能并没有很高级的封装,比如说没有tf.one_hot函数。本篇介绍将一个m
- 俺觉得自 己试着写写sql,调试调试还是有帮助的,读人家sql例子好像读懂了,自己写就未 必思路正确,调试得通,写得简洁。 这篇文字在网上被
- 本文实例讲述了python多重继承用法,分享给大家供大家参考。具体实现方法如下:1.mro.py文件如下:#!/usr/bin/python
- 我们目前已经学会了四个控件,也编出了几个窗口实例,它们都有一个共同的特点,就是丑,主要原因是没有进行合理地布局。此前的布局方式简单粗暴,即明
- python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提
- 前言:本文介绍如何构建简单线性回归模型及计算其准确率,最后介绍如何持久化模型。线性回归模型线性回归表示发现函数使用线性组合表示输入变量。简单
- 滑动平均会为目标变量维护一个影子变量,影子变量不影响原变量的更新维护,但是在测试或者实际预测过程中(非训练时),使用影子变量代替原变量。1、
- 用法:matplotlib.pyplot.stem(*args, linefmt=None, markerfmt=None, basefmt
- XML的未来 现在你已经知道XML。确实,结构有点复杂,而且DTD有各种可以定义文档可以包含的内容的选项。但还不只这些。考虑一个数据交换对其
- 写在之前「装饰器」作为 Python 高级语言特性中的重要部分,是修改函数的一种超级便捷的方式,适当使用能够有效提高代码的可读性和可维护性,
- 用python做大型工程时,经常会出现import问题。比如,当你import另一个py文件时,这个py不存在于你的运行路径下,便会报错。大
- Matlab将矩阵保存到csv和txt文件语法:csvwrite(filename,M)csvwrite(filename,M,row,co
- 什么是restREST是所有Web应用都应该遵守的架构设计指导原则。Representational State Transfer,翻译是”