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