Intro
DataZoomOpts可以提供区域缩放的功能,当数据很多,我们想看某些局部数据信息时,可以通过区域缩放查看更细节的数据。版本信息如下:
- python 3.7.0
- pyecharts 1.6.2
import pyecharts
print("pyecharts版本: "+pyecharts.__version__)
import sys
print("python版本: "+sys.version)
pyecharts版本: 1.6.2
python版本: 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)]
Demo
以折线图为例,看下常用参数的设置方式~
import pyecharts
from pyecharts.charts import Line
from pyecharts import options as opts
x = list(range(0, 100))
y1 = [i * 2 + 1 for i in list(range(0, 100))]
y2 = [i * 3 + 2 for i in list(range(0, 100))]
y3 = [(i+1)/10 * 3 for i in list(range(0, 100))]
line1 = (
Line()
.add_xaxis(xaxis_data=x)
.add_yaxis("y1", y1
,color="blue",is_symbol_show=True
,label_opts=opts.LabelOpts(is_show=False)
,markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(y=5)])# 设置水平线
)
.add_yaxis("y2", y2
,color="red",is_symbol_show=True
,label_opts=opts.LabelOpts(is_show=False)
,symbol="triangle"#设置点的形状'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'"rect"
,markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(y=5)])
)
.set_colors(colors=["blue","red"]) # 如果不加上这句,legends和line的颜色不一致,这个相当于全局颜色设置
.set_global_opts(title_opts=opts.TitleOpts(title="Love",pos_right="50%") # 设置标题
,legend_opts=opts.LegendOpts(pos_right="10%",pos_top="20%",orient="vertical") # 设置图例
,tooltip_opts =opts.TooltipOpts(trigger='axis',axis_pointer_type='cross')
,toolbox_opts =opts.ToolboxOpts(is_show=True,orient='horizontal')
,datazoom_opts=opts.DataZoomOpts(range_start=10,range_end=30) # 坐标轴进行缩放
,xaxis_opts =opts.AxisOpts(name="Date")
,yaxis_opts =opts.AxisOpts(name="Rate")
)
)
line1.render_notebook()
参数设置
这里和官网上一毛一样,可以直接看官网~
class DataZoomOpts(
# 是否显示 组件。如果设置为 false,不会显示,但是数据过滤的功能还存在。
is_show: bool = True,
# 组件类型,可选 "slider", "inside"
type_: str = "slider",
# 拖动时,是否实时更新系列的视图。如果设置为 false,则只在拖拽结束的时候更新。
is_realtime: bool = True,
# 数据窗口范围的起始百分比。范围是:0 ~ 100。表示 0% ~ 100%。
range_start: Numeric = 20,
# 数据窗口范围的结束百分比。范围是:0 ~ 100
range_end: Numeric = 80,
# 数据窗口范围的起始数值。如果设置了 start 则 startValue 失效。
start_value: Union[int, str, None] = None,
# 数据窗口范围的结束数值。如果设置了 end 则 endValue 失效。
end_value: Union[int, str, None] = None,
# 布局方式是横还是竖。不仅是布局方式,对于直角坐标系而言,也决定了,缺省情况控制横向数轴还是纵向数轴
# 可选值为:'horizontal', 'vertical'
orient: str = "horizontal",
# 设置 dataZoom-inside 组件控制的 x 轴(即 xAxis,是直角坐标系中的概念,参见 grid)。
# 不指定时,当 dataZoom-inside.orient 为 'horizontal'时,默认控制和 dataZoom 平行的第一个 xAxis
# 如果是 number 表示控制一个轴,如果是 Array 表示控制多个轴。
xaxis_index: Union[int, Sequence[int], None] = None,
# 设置 dataZoom-inside 组件控制的 y 轴(即 yAxis,是直角坐标系中的概念,参见 grid)。
# 不指定时,当 dataZoom-inside.orient 为 'horizontal'时,默认控制和 dataZoom 平行的第一个 yAxis
# 如果是 number 表示控制一个轴,如果是 Array 表示控制多个轴。
yaxis_index: Union[int, Sequence[int], None] = None,
# 是否锁定选择区域(或叫做数据窗口)的大小。
# 如果设置为 true 则锁定选择区域的大小,也就是说,只能平移,不能缩放。
is_zoom_lock: bool = False,
# dataZoom-slider 组件离容器左侧的距离。
# left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
# 也可以是 'left', 'center', 'right'。
# 如果 left 的值为 'left', 'center', 'right',组件会根据相应的位置自动对齐。
pos_left: Optional[str] = None,
# dataZoom-slider 组件离容器上侧的距离。
# top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
# 也可以是 'top', 'middle', 'bottom'。
# 如果 top 的值为 'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
pos_top: Optional[str] = None,
# dataZoom-slider 组件离容器右侧的距离。
# right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
# 默认自适应。
pos_right: Optional[str] = None,
# dataZoom-slider组件离容器下侧的距离。
# bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
# 默认自适应。
pos_bottom: Optional[str] = None,
)