基础 | Pyecharts 动态时序图(时间线轮播图各参数配置)

简介: 基础 | Pyecharts 动态时序图(时间线轮播图各参数配置)

大家好,我是欧K~

今天给大家介绍pyecharts绘图中常见的时间线轮播图配置项(add_schema),希望对大家有所帮助,如有疑问或者建议可以私信小编。

更多实例:

【源码下载 | Python可视化系列文章资源(源码+数据)】


add_schema基本参数

几个主要设置参数:

orient、play_interval、is_auto_play、is_loop_play、is_timeline_show、control_position、axis_type

def add_schema(
    # 坐标轴类型。可选:
    # 'value': 数值轴,适用于连续数据。
    # 'category': 类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。
    # 'time': 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,
    # 例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。
    # 'log' 对数轴。适用于对数数据。
    axis_type: str = "category",
    # 时间轴的类型。可选:
    # 'horizontal': 水平
    # 'vertical': 垂直
    orient: str = "horizontal",
    # timeline 标记的图形。
    # ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond',
    # 'pin', 'arrow', 'none'
    # 可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI。
    symbol: Optional[str] = None,
    # timeline 标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高,
    # 例如 [20, 10] 表示标记宽为 20,高为 10。
    symbol_size: Optional[Numeric] = None,
    # 表示播放的速度(跳动的间隔),单位毫秒(ms)。
    play_interval: Optional[Numeric] = None,
    # 表示播放按钮的位置。可选值:'left'、'right'。
    control_position: str = "left",
    # 是否自动播放。
    is_auto_play: bool = False,
    # 是否循环播放。
    is_loop_play: bool = True,
    # 是否反向播放。
    is_rewind_play: bool = False,
    # 是否显示 timeline 组件。如果设置为 false,不会显示,但是功能还存在。
    is_timeline_show: bool = True,
    # 是否反向放置 timeline,反向则首位颠倒过来
    is_inverse: bool = False,
    # Timeline 组件离容器左侧的距离。
    # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
    # 也可以是 'left', 'center', 'right'。
    # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐
    pos_left: Optional[str] = None,
    # timeline 组件离容器右侧的距离。
    # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
    pos_right: Optional[str] = None,
    # Timeline 组件离容器上侧的距离。
    # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
    # 也可以是 'top', 'middle', 'bottom'。
    # 如果 left 的值为 'top', 'middle', 'bottom',组件会根据相应的位置自动对齐
    pos_top: Optional[str] = None,
    # timeline 组件离容器下侧的距离。
    # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
    pos_bottom: Optional[str] = "-5px",
    # 时间轴区域的宽度, 影响垂直的时候时间轴的轴标签和轴之间的距离
    width: Optional[str] = None,
    # 时间轴区域的高度
    height: Optional[str] = None,
    # 时间轴的坐标轴线配置,参考 `series_options.LineStyleOpts`
    linestyle_opts: Union[opts.LineStyleOpts, dict, None] = None,
    # 时间轴的轴标签配置,参考 `series_options.LabelOpts`
    label_opts: Optional[opts.LabelOpts] = None,
    # 时间轴的图形样式,参考 `series_options.ItemStyleOpts`
    itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
    # Graphic 样式
    graphic_opts: types.Graphic = None,
    # 『当前项』(checkpoint)的图形样式。
    checkpointstyle_opts: types.TimeLinkCheckPoint = None,
    # 控制按钮』的样式。『控制按钮』包括:『播放按钮』、『前进按钮』、『后退按钮』。
    controlstyle_opts: types.TimeLineControl = None,
    # 进度条中的线条样式
    progress_linestyle_opts: types.LineStyle = None,
    # 进度条中的拐点样式。
    progress_itemstyle_opts: types.ItemStyle = None,
    # 进度条中的标签样式
    progress_label_opts: types.Label = None,
)

官方示例:

x = Faker.choose()
tl = Timeline()
for i in range(2015, 2020):
    bar = (
        Bar()
        .add_xaxis(x)
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(title_opts=opts.TitleOpts("某商店{}年营业额".format(i)))
    )
    tl.add(bar, "{}年".format(i))


效果:


2003-2022全国各省GDP数据:

df = pd.read_csv('2003-2022各省GDP数据.csv')


时间线轮播图:

timeline = Timeline()
for year in years:
    df1 = df.sort_values([year])
    x_data = df1['地区'].values.tolist()
    y_data = df1[year].values.tolist()
    bar = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis("", y_data)
        .reversal_axis()
        .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    )
    timeline.add(bar,year)
timeline.add_schema(
    play_interval=1000,
    is_timeline_show=True,
    is_loop_play=False
)


添加visualmap:

.set_global_opts(
    visualmap_opts=opts.VisualMapOpts(
        is_show=False,
        max_=20,
    ),
    title_opts=opts.TitleOpts(title=f"{year}全国各省GDP",
                              pos_left='center',
                              pos_top='2%',
                              title_textstyle_opts=opts.TextStyleOpts(
                                    color='#ed1941', font_size=20)
                             )
)


效果:

大家可以尝试修改各个参数,对比前后效果,加深理解。

END


以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道

相关文章
|
8月前
|
人工智能 缓存 API
2026年OpenClaw省钱教程:通过NVIDIA NIM 免费调用MiniMax M2.1、智谱GLM-4.7、DeepSeek V,零Token费玩转AI Agent(附阿里云百炼API-Key配置)
2026年,OpenClaw(原Clawdbot)凭借强大的自动化能力与丰富的技能生态,成为AI领域的现象级工具。但用户普遍面临一个痛点:OpenClaw依赖长上下文调用大模型,Token消耗巨大,免费模型功能有限,付费模型成本高昂。
7248 15
|
7月前
|
人工智能 安全 Linux
3分钟吃上“龙虾AI”OpenClaw!阿里云/本地部署步骤+百炼API配置+20个国内Skill安装+常见问题排查
OpenClaw(原名Clawdbot,圈内简称“龙虾”)作为开源的AI Agent执行系统,实现了自然语言指令到本地及云端实际操作的转化,区别于传统对话式AI,其核心价值在于“可执行性”,能够直接接管设备操作权限完成文件处理、浏览器自动化、多平台消息管理等工作。2026年该工具完成了对国内环境的深度适配,不仅实现了阿里云云端一键部署,还对接了阿里云百炼免费大模型API,同时诞生了大批贴合国内用户需求的技能插件。本文将完整讲解2026年OpenClaw在MacOS、Linux、Windows11的本地部署流程,阿里云云端部署步骤,阿里云百炼免费大模型API的配置方法,梳理国内用户最适用的20个
1444 1
|
缓存 Ubuntu Linux
Apt软件包管理工具使用指南
前言 在Linux系统中,apt(Advanced Package Tool)是基于Debian/Ubuntu发行版广泛使用的软件包管理工具之一。它为用户提供了便捷的软件包安装、更新、删除等功能,是管理软件包的重要手段。本文将详细介绍apt的常用命令及其使用方法,帮助用户更好地管理和维护系统中的软件包。
2088 2
|
安全 程序员 编译器
【实战经验】17个C++编程常见错误及其解决方案
想必不少程序员都有类似的经历:辛苦敲完项目代码,内心满是对作品品质的自信,然而当静态扫描工具登场时,却揭示出诸多隐藏的警告问题。为了让自己的编程之路更加顺畅,也为了持续精进技艺,我想借此机会汇总分享那些常被我们无意间忽视却又导致警告的编程小细节,以此作为对未来的自我警示和提升。
1856 129
|
人工智能 搜索推荐 API
Perplexica:开源 AI 搜索引擎,Perplexity AI 的开源替代品,支持多种搜索模式、实时信息更新
Perplexica 是一款开源的 AI 驱动搜索引擎,支持多种搜索模式和实时信息更新,适用于个人、学术和企业等不同场景。
1725 6
Perplexica:开源 AI 搜索引擎,Perplexity AI 的开源替代品,支持多种搜索模式、实时信息更新
|
数据采集 JSON 数据格式
Python爬虫:京东商品评论内容
京东商品评论接口为商家和消费者提供了重要工具。商家可分析评论优化产品,消费者则依赖评论做出购买决策。该接口通过HTTP请求获取评论内容、时间、点赞数等数据,支持分页和筛选好评、中评、差评。Python示例代码展示了如何调用接口并处理返回的JSON数据。应用场景包括产品优化、消费者决策辅助、市场竞争分析及舆情监测。
1790 5
|
自然语言处理 并行计算 API
Qwen模型应用:微调与部署实践
Qwen模型应用:微调与部署实践
3418 0
|
API 语音技术 开发者
用python实现文字转语音的5个较好用的模块
这篇文章介绍了五个Python模块:gtts、pyttsx3、baidu-aip、pywin32和speech,它们能够实现文本到语音的转换功能。
1868 1