基础 | 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


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

相关文章
|
5月前
|
前端开发
【前端统计图】hcharts实现堆叠柱形图(与后台数据交互)
【前端统计图】hcharts实现堆叠柱形图(与后台数据交互)
31 0
|
9月前
|
定位技术 数据格式
Echarts实战案例代码(59):geomap实现飞线、散点、引导线以及重叠label的解决
Echarts实战案例代码(59):geomap实现飞线、散点、引导线以及重叠label的解决
304 0
|
3月前
|
数据可视化
Echarts5.3.2可视化案例-时间轴动态柱形图
Echarts5.3.2可视化案例-时间轴动态柱形图
|
5月前
去掉Echarts饼状图的引导线
去掉Echarts饼状图的引导线
70 0
|
9月前
|
前端开发
Echarts实战案例代码(43):折线图中splitLine配置数据自动分组分段显示效果的解决方案
Echarts实战案例代码(43):折线图中splitLine配置数据自动分组分段显示效果的解决方案
257 0
|
9月前
Echarts实战案例代码(37):markLine实现Y轴阈值点设置
Echarts实战案例代码(37):markLine实现Y轴阈值点设置
30 0
|
9月前
|
JSON 前端开发 测试技术
Echarts高级进阶教程(1):异步加载大量数据导致dataZoom组件拖动缩放时间轴卡顿的sampling降采样策略解决方案
Echarts高级进阶教程(1):异步加载大量数据导致dataZoom组件拖动缩放时间轴卡顿的sampling降采样策略解决方案
457 1
|
9月前
Echarts实战案例代码(9):图表纹理填充的解决方案(柱图为例)
Echarts实战案例代码(9):图表纹理填充的解决方案(柱图为例)
834 0
|
9月前
|
JSON 前端开发 数据可视化
Echarts实战案例代码(4):地图散点气泡图飞线(迁徙线)API接口前端处理数据的解决方案
Echarts实战案例代码(4):地图散点气泡图飞线(迁徙线)API接口前端处理数据的解决方案
239 0
|
9月前
Echarts实战案例代码(2):柱图堆叠方案备选案例
Echarts实战案例代码(2):柱图堆叠方案备选案例
51 0