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

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

大家好,我是欧K~

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

更多实例:

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


add_schema基本参数

几个主要设置参数:

orientplay_intervalis_auto_playis_loop_playis_timeline_showcontrol_positionaxis_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


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

相关文章
|
存储 缓存 数据可视化
(七)解析Streamlit的数据元素:探索st.dataframe、st.data_editor、st.column_config、st.table、st.metric和st.json的神奇之处(上)
(七)解析Streamlit的数据元素:探索st.dataframe、st.data_editor、st.column_config、st.table、st.metric和st.json的神奇之处
6255 0
|
11月前
|
消息中间件 监控 网络协议
Python中的Socket魔法:如何利用socket模块构建强大的网络通信
本文介绍了Python的`socket`模块,讲解了其基本概念、语法和使用方法。通过简单的TCP服务器和客户端示例,展示了如何创建、绑定、监听、接受连接及发送/接收数据。进一步探讨了多用户聊天室的实现,并介绍了非阻塞IO和多路复用技术以提高并发处理能力。最后,讨论了`socket`模块在现代网络编程中的应用及其与其他通信方式的关系。
886 3
|
数据采集 存储 数据可视化
【优秀python数据分析案例】基于python的中国天气网数据采集与可视化分析的设计与实现
本文介绍了一个基于Python的中国天气网数据采集与可视化分析系统,通过requests和BeautifulSoup库实现数据爬取,利用matplotlib、numpy和pandas进行数据可视化,提供了温湿度变化曲线、空气质量图、风向雷达图等分析结果,有效预测和展示了未来天气信息。
3358 3
|
机器学习/深度学习 IDE 开发工具
超越笔记本:JupyterLab 的功能扩展
【8月更文第29天】随着数据科学和机器学习的发展,交互式计算环境的需求也日益增长。Jupyter Notebook 作为这一领域的领头羊,已经得到了广泛的应用。然而,为了满足更加复杂的工作流需求,Jupyter 开发者们推出了 JupyterLab —— 一个下一代的交互式计算环境。本文将探讨 JupyterLab 相对于传统 Jupyter Notebook 的增强功能,并通过具体示例展示这些新特性如何提升工作效率。
511 1
|
8月前
|
人工智能 自然语言处理 语音技术
FilmAgent:多智能体共同协作制作电影,哈工大联合清华推出 AI 驱动的自动化电影制作工具
FilmAgent 是由哈工大与清华联合推出的AI电影自动化制作工具,通过多智能体协作实现从剧本生成到虚拟拍摄的全流程自动化。
2544 13
FilmAgent:多智能体共同协作制作电影,哈工大联合清华推出 AI 驱动的自动化电影制作工具
|
9月前
|
Unix Linux 虚拟化
VMware Workstation 17.6.2 发布下载,现在完全免费无论个人还是商业用途
VMware Workstation 17.6.2 发布下载,现在完全免费无论个人还是商业用途
44782 16
VMware Workstation 17.6.2 发布下载,现在完全免费无论个人还是商业用途
|
Java 大数据 分布式数据库
Spring Boot 与 HBase 的完美融合:探索高效大数据应用开发的新途径
【8月更文挑战第29天】Spring Boot是一款广受好评的微服务框架,以其便捷的开发体验著称。HBase则是一个高性能的大数据分布式数据库系统。结合两者,可极大简化HBase应用开发。本文将对比传统方式与Spring Boot集成HBase的区别,展示如何在Spring Boot中优雅实现HBase功能,并提供示例代码。从依赖管理、连接配置、表操作到数据访问,Spring Boot均能显著减少工作量,提升代码可读性和可维护性,使开发者更专注业务逻辑。
712 1
|
编解码 前端开发 JavaScript
Grafana Plugin: 支持 jsx 实时渲染的 grafana 面板插件
A JSX real-time rendering grafana panel plugin. / 一个支持 JSX 实时渲染的 grafana 面板插件
542 3
|
数据可视化 JavaScript 前端开发
【数据分析与可视化】pyecharts可视化图表讲解及实战(超详细 附源码)
【数据分析与可视化】pyecharts可视化图表讲解及实战(超详细 附源码)
992 0
|
数据采集 算法 数据挖掘
如何写出一份高质量的数据分析师的简历?
如何写出一份高质量的数据分析师的简历?
如何写出一份高质量的数据分析师的简历?