pyecharts学习
Bar:柱状图/条形图
导入模块
import matplotlib as plt from pyecharts.charts import Bar import pyecharts.options as opts import random
# 1、是否配置动画效果
animation_opts = opts.AnimationOpts( # 是否开启动画,默认为 True 开启。bool 值 animation=True, # 是否开启动画的阈值,当单个系列显示的图形数量大于这个阈值时会关闭动画。默认 2000。Numeric 值 animation_threshold=2000, # 初始动画的时长,默认值为 1000。 # 支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的初始动画效果。Union[Numeric, JSFunc]值 animation_duration=1000, # 初始动画的缓动效果。 # 不同的缓动效果可以参考,缓动示例 (https://www.echartsjs.com/gallery/editor.html?c=line-easing)。Union[str]值 animation_easing="cubicOut", # 初始动画的延迟,默认值为 0。 # 支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的初始动画效果。Union[Numeric, JSFunc]值 animation_delay=0, # 数据更新动画的时长,默认值为 300。 # 支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的更新动画效果。Union[Numeric, JSFunc]值 animation_duration_update=300, # 数据更新动画的缓动效果。 # 不同的缓动效果可以参考,缓动示例 (https://www.echartsjs.com/gallery/editor.html?c=line-easing)。 animation_easing_update="cubicOut", # 数据更新动画的延迟,默认值为 0。 # 支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的更新动画效果。Union[Numeric, JSFunc]值 animation_delay_update=0, )
# 2、配置初始化画板的选项
init_opts = opts.InitOpts( # 图表画布宽度,css 长度单位。str 值 width="500px", # 图表画布高度,css 长度单位。str 值 height="500px", # 图表 ID,图表唯一标识,用于在多图表时区分。Optional[str]值 chart_id=None, # 渲染风格,可选 "canvas", "svg" # # 参考 `全局变量` 章节。str 值 #renderer= RenderType.CANVAS, # 网页标题。str 值 page_title="条形图", # 图表主题。str 值 theme="white", # 图表背景颜色。Optional[str]值 bg_color=None, # 远程 js host,如不设置默认为 https://assets.pyecharts.org/assets/" # 参考 `全局变量` 章节。str 值 js_host="", # 画图动画初始化配置,参考 `global_options.AnimationOpts`。Union[AnimationOpts, dict]值 animation_opts=animation_opts, )
# 3、创建条形图对象,并初始化对象
bar = Bar(init_opts=init_opts)
# 4、设置条形图对象全局属性
''' set_global_opts(title_opts=None, legend_opts=None , tooltip_opts=None, toolbox_opts= None, brush_opts= None, xaxis_opts= None, yaxis_opts= None, visualmap_opts= None, datazoom_opts= None, graphic_opts= None, axispointer_opts= None) title_opts: Union[pyecharts.options.global_options.TitleOpts, dict] = <pyecharts.options.global_options.TitleOpts object at 0x000001F94A6C8308>, legend_opts: Union[pyecharts.options.global_options.LegendOpts, dict] = <pyecharts.options.global_options.LegendOpts object at 0x000001F94A6C8E88>, tooltip_opts: Union[pyecharts.options.global_options.TooltipOpts, dict, NoneType] = None, toolbox_opts: Union[pyecharts.options.global_options.ToolboxOpts, dict] = None, brush_opts: Union[pyecharts.options.global_options.BrushOpts, dict, NoneType] = None, xaxis_opts: Union[pyecharts.options.global_options.AxisOpts, dict, NoneType] = None, yaxis_opts: Union[pyecharts.options.global_options.AxisOpts, dict, NoneType] = None, visualmap_opts: Union[pyecharts.options.global_options.VisualMapOpts, dict, Sequence[Union[pyecharts.options.global_options.VisualMapOpts, dict]], NoneType] = None, datazoom_opts: Union[pyecharts.options.global_options.DataZoomOpts, dict,Sequence[Union[pyecharts.options.global_options.DataZoomOpts, dict]], NoneType] = None, graphic_opts: Union[pyecharts.options.charts_options.BaseGraphic, dict, Sequence[Union[pyecharts.options.charts_options.BaseGraphic, dict]], NoneType] = None, axispointer_opts: Union[pyecharts.options.global_options.AxisPointerOpts, dict, NoneType] = None ''' bar.set_global_opts(title_opts=opts.TitleOpts(title="条形图"))
①设置TitleOpts:标题配置项
class TitleOpts( # 主标题文本,支持使用 \n 换行。 title: Optional[str] = None, # 主标题跳转 URL 链接 title_link: Optional[str] = None, # 主标题跳转链接方式 # 默认值是: blank # 可选参数: 'self', 'blank' # 'self' 当前窗口打开; 'blank' 新窗口打开 title_target: Optional[str] = None, # 副标题文本,支持使用 \n 换行。 subtitle: Optional[str] = None, # 副标题跳转 URL 链接 subtitle_link: Optional[str] = None, # 副标题跳转链接方式 # 默认值是: blank # 可选参数: 'self', 'blank' # 'self' 当前窗口打开; 'blank' 新窗口打开 subtitle_target: Optional[str] = None, # title 组件离容器左侧的距离。 # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比, # 也可以是 'left', 'center', 'right'。 # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。 pos_left: Optional[str] = None, # title 组件离容器右侧的距离。 # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。 pos_right: Optional[str] = None, # title 组件离容器上侧的距离。 # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比, # 也可以是 'top', 'middle', 'bottom'。 # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。 pos_top: Optional[str] = None, # title 组件离容器下侧的距离。 # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。 pos_bottom: Optional[str] = None, # 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。 # // 设置内边距为 5 # padding: 5 # // 设置上下的内边距为 5,左右的内边距为 10 # padding: [5, 10] # // 分别设置四个方向的内边距 # padding: [ # 5, // 上 # 10, // 右 # 5, // 下 # 10, // 左 # ] padding: Union[Sequence, Numeric] = 5, # 主副标题之间的间距。 item_gap: Numeric = 10, # 主标题字体样式配置项,参考 `series_options.TextStyleOpts` title_textstyle_opts: Union[TextStyleOpts, dict, None] = None, # 副标题字体样式配置项,参考 `series_options.TextStyleOpts` subtitle_textstyle_opts: Union[TextStyleOpts, dict, None] = None, )
②LegendOpts:图例配置项
class LegendOpts( # 图例的类型。可选值: # 'plain':普通图例。缺省就是普通图例。 # 'scroll':可滚动翻页的图例。当图例数量较多时可以使用。 type_: Optional[str] = None, # 图例选择的模式,控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成 false 关闭 # 除此之外也可以设成 'single' 或者 'multiple' 使用单选或者多选模式。 selected_mode: Union[str, bool, None] = None, # 是否显示图例组件 is_show: bool = True, # 图例组件离容器左侧的距离。 # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比, # 也可以是 'left', 'center', 'right'。 # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。 pos_left: Union[str, Numeric, None] = None, # 图例组件离容器右侧的距离。 # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。 pos_right: Union[str, Numeric, None] = None, # 图例组件离容器上侧的距离。 # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比, # 也可以是 'top', 'middle', 'bottom'。 # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。 pos_top: Union[str, Numeric, None] = None, # 图例组件离容器下侧的距离。 # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。 pos_bottom: Union[str, Numeric, None] = None, # 图例列表的布局朝向。可选:'horizontal', 'vertical' orient: Optional[str] = None, # 图例标记和文本的对齐。默认自动(auto) # 根据组件的位置和 orient 决定 # 当组件的 left 值为 'right' 以及纵向布局(orient 为 'vertical')的时候为右对齐,即为 'right'。 # 可选参数: `auto`, `left`, `right` align: Optional[str] = None, # 图例内边距,单位px,默认各方向内边距为5 padding: int = 5, # 图例每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。 # 默认间隔为 10 item_gap: int = 10, # 图例标记的图形宽度。默认宽度为 25 item_width: int = 25, # 图例标记的图形高度。默认高度为 14 item_height: int = 14, # 图例关闭时的颜色。默认是 #ccc inactive_color: Optional[str] = None, # 图例组件字体样式,参考 `series_options.TextStyleOpts` textstyle_opts: Union[TextStyleOpts, dict, None] = None, # 图例项的 icon。 # ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none' # 可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI。 # 可以通过 'path://' 将图标设置为任意的矢量路径。 legend_icon: Optional[str] = None, )
③TooltipOpts:提示框配置项
class TooltipOpts( # 是否显示提示框组件,包括提示框浮层和 axisPointer。 is_show: bool = True, # 触发类型。可选: # 'item': 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用。 # 'axis': 坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。 # 'none': 什么都不触发 trigger: str = "item", # 提示框触发的条件,可选: # 'mousemove': 鼠标移动时触发。 # 'click': 鼠标点击时触发。 # 'mousemove|click': 同时鼠标移动和点击时触发。 # 'none': 不在 'mousemove' 或 'click' 时触发, trigger_on: str = "mousemove|click", # 指示器类型。可选 # 'line':直线指示器 # 'shadow':阴影指示器 # 'none':无指示器 # 'cross':十字准星指示器。其实是种简写,表示启用两个正交的轴的 axisPointer。 axis_pointer_type: str = "line", # 是否显示提示框浮层,默认显示。 # 只需 tooltip 触发事件或显示 axisPointer 而不需要显示内容时可配置该项为 false。 is_show_content: bool = True, # 是否永远显示提示框内容, # 默认情况下在移出可触发提示框区域后一定时间后隐藏,设置为 true 可以保证一直显示提示框内容。 is_always_show_content: bool = False, # 浮层显示的延迟,单位为 ms,默认没有延迟,也不建议设置。 show_delay: Numeric = 0, # 浮层隐藏的延迟,单位为 ms,在 alwaysShowContent 为 true 的时候无效。 hide_delay: Numeric = 100, # 提示框浮层的位置,默认不设置时位置会跟随鼠标的位置。 # 1、通过数组配置: # 绝对位置,相对于容器左侧 10px, 上侧 10 px ===> position: [10, 10] # 相对位置,放置在容器正中间 ===> position: ['50%', '50%'] # 2、通过回调函数配置 # 3、固定参数配置:'inside','top','left','right','bottom' position: Union[str, Sequence, JSFunc] = None, # 标签内容格式器,支持字符串模板和回调函数两种形式,字符串模板与回调函数返回的字符串均支持用 \n 换行。 # 字符串模板 模板变量有: # {a}:系列名。 # {b}:数据名。 # {c}:数据值。 # {@xxx}:数据中名为 'xxx' 的维度的值,如 {@product} 表示名为 'product'` 的维度的值。 # {@[n]}:数据中维度 n 的值,如{@[3]}` 表示维度 3 的值,从 0 开始计数。 # 示例:formatter: '{b}: {@score}' # # 回调函数,回调函数格式: # (params: Object|Array) => string # 参数 params 是 formatter 需要的单个数据集。格式如下: # { # componentType: 'series', # // 系列类型 # seriesType: string, # // 系列在传入的 option.series 中的 index # seriesIndex: number, # // 系列名称 # seriesName: string, # // 数据名,类目名 # name: string, # // 数据在传入的 data 数组中的 index # dataIndex: number, # // 传入的原始数据项 # data: Object, # // 传入的数据值 # value: number|Array, # // 数据图形的颜色 # color: string, # } formatter: Optional[str] = None, # 提示框浮层的背景颜色。 background_color: Optional[str] = None, # 提示框浮层的边框颜色。 border_color: Optional[str] = None, # 提示框浮层的边框宽。 border_width: Numeric = 0, # 文字样式配置项,参考 `series_options.TextStyleOpts` textstyle_opts: TextStyleOpts = TextStyleOpts(font_size=14), )
④ToolboxOpts:工具箱配置项
class ToolboxOpts( # 是否显示工具栏组件 is_show: bool = True, # 工具栏 icon 的布局朝向。 # 可选:'horizontal', 'vertical' orient: str = "horizontal", # 工具栏组件离容器左侧的距离。 # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比, # 也可以是 'left', 'center', 'right'。 # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐 pos_left: str = "80%", # 工具栏组件离容器右侧的距离。 # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。 pos_right: Optional[str] = None, # 工具栏组件离容器上侧的距离。 # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比, # 也可以是 'top', 'middle', 'bottom'。 # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。 pos_top: Optional[str] = None, # 工具栏组件离容器下侧的距离。 # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。 pos_bottom: Optional[str] = None, # 各工具配置项,参考 `global_options.ToolBoxFeatureOpts` feature: Union[ToolBoxFeatureOpts, dict] = ToolBoxFeatureOpts(), )
⑤BrushOpts:区域选择组件配置项
class BrushOpts( # 使用在 toolbox 中的按钮。默认值为 ["rect", "polygon", "keep", "clear"] # brush 相关的 toolbox 按钮有: # "rect":开启矩形选框选择功能。 # "polygon":开启任意形状选框选择功能。 # "lineX":开启横向选择功能。 # "lineY"':开启纵向选择功能。 # "keep":切换『单选』和『多选』模式。后者可支持同时画多个选框。前者支持单击清除所有选框。 # "clear":清空所有选框。 tool_box: Optional[Sequence] = None, # 不同系列间,选中的项可以联动。 # brush_link 配置项是一个列表,内容是 seriesIndex,指定了哪些 series 可以被联动。 # 例如可以是: # [3, 4, 5] 表示 seriesIndex 为 3, 4, 5 的 series 可以被联动。 # "all" 表示所有 series 都进行 brushLink。 # None 表示不启用 brush_link 功能。 brush_link: Union[Sequence, str] = None, # 指定哪些 series 可以被刷选,可取值为: # "all": 所有 series # series index 列表, 如 [0, 4, 2],表示指定这些 index 所对应的坐标系。 # 某个 series index, 如 0,表示这个 index 所对应的坐标系。 series_index: Union[Sequence, Numeric, str] = None, # 指定哪些 geo 可以被刷选。可以设置 brush 是全局的还是属于坐标系的。 # 全局 brush # 在 echarts 实例中任意地方刷选。这是默认情况。如果没有指定为坐标系 brush,就是全局 brush。 # 坐标系 brush # 在指定的坐标系中刷选。选框可以跟随坐标系的缩放和平移( roam 和 dataZoom )而移动。 # 坐标系 brush 实际更为常用,尤其是在 geo 中。 # 通过指定 brush.geoIndex 或 brush.xAxisIndex 或 brush.yAxisIndex 来规定可以在哪些坐标系中进行刷选。 # 指定哪些 series 可以被刷选,可取值为: # "all": 表示所有 series # series index 列表, 如 [0, 4, 2],表示指定这些 index 所对应的坐标系。 # 某个 series index, 如 0,表示这个 index 所对应的坐标系。 geo_index: Union[Sequence, Numeric, str] = None, # 指定哪些 xAxisIndex 可以被刷选。可以设置 brush 是全局的还是属于坐标系的。 # 全局 brush # 在 echarts 实例中任意地方刷选。这是默认情况。如果没有指定为坐标系 brush,就是全局 brush。 # 坐标系 brush # 在指定的坐标系中刷选。选框可以跟随坐标系的缩放和平移( roam 和 dataZoom )而移动。 # 坐标系 brush 实际更为常用,尤其是在 geo 中。 # 通过指定 brush.geoIndex 或 brush.xAxisIndex 或 brush.yAxisIndex 来规定可以在哪些坐标系中进行刷选。 # 指定哪些 series 可以被刷选,可取值为: # "all": 表示所有 series # series index 列表, 如 [0, 4, 2],表示指定这些 index 所对应的坐标系。 # 某个 series index, 如 0,表示这个 index 所对应的坐标系。 x_axis_index: Union[Sequence, Numeric, str] = None, # 指定哪些 yAxisIndex 可以被刷选。可以设置 brush 是全局的还是属于坐标系的。 # 全局 brush # 在 echarts 实例中任意地方刷选。这是默认情况。如果没有指定为坐标系 brush,就是全局 brush。 # 坐标系 brush # 在指定的坐标系中刷选。选框可以跟随坐标系的缩放和平移( roam 和 dataZoom )而移动。 # 坐标系 brush 实际更为常用,尤其是在 geo 中。 # 通过指定 brush.geoIndex 或 brush.xAxisIndex 或 brush.yAxisIndex 来规定可以在哪些坐标系中进行刷选。 # 指定哪些 series 可以被刷选,可取值为: # "all": 表示所有 series # series index 列表, 如 [0, 4, 2],表示指定这些 index 所对应的坐标系。 # 某个 series index, 如 0,表示这个 index 所对应的坐标系。 y_axis_index: Union[Sequence, Numeric, str] = None, # 默认的刷子类型。默认值为 rect。 # 可选参数如下: # "rect":矩形选框。 # "polygon":任意形状选框。 # "lineX":横向选择。 # "lineY":纵向选择。 brush_type: str = "rect", # 默认的刷子的模式。可取值为: # 默认为 single # "single":单选。 # "multiple":多选。 brush_mode: str = "single", # 已经选好的选框是否可以被调整形状或平移。默认值为 True transformable: bool = True, # 选框的默认样式,值为 # { # "borderWidth": 1, # "color": "rgba(120,140,180,0.3)", # "borderColor": "rgba(120,140,180,0.8)" # }, brush_style: Optional[dict] = None, # 默认情况,刷选或者移动选区的时候,会不断得发 brushSelected 事件,从而告诉外界选中的内容。 # 但是频繁的事件可能导致性能问题,或者动画效果很差。 # 所以 brush 组件提供了 brush.throttleType,brush.throttleDelay 来解决这个问题。 # throttleType 取值可以是: # "debounce":表示只有停止动作了(即一段时间没有操作了),才会触发事件。时间阈值由 brush.throttleDelay 指定。 # "fixRate":表示按照一定的频率触发事件,时间间隔由 brush.throttleDelay 指定。 throttle_type: str = "fixRate", # 默认为 0 表示不开启 throttle。 throttle_delay: Numeric = 0, # 在 brush_mode 为 "single" 的情况下,是否支持单击清除所有选框。 remove_on_click: bool = True, # 定义在选中范围外的视觉元素。最终参数以字典的形式进行配置 # 可选的视觉元素有: # symbol: 图元的图形类别。 # symbolSize: 图元的大小。 # color: 图元的颜色。 # colorAlpha: 图元的颜色的透明度。 # opacity: 图元以及其附属物(如文字标签)的透明度。 # colorLightness: 颜色的明暗度,参见 https://en.wikipedia.org/wiki/HSL_and_HSV。 # colorSaturation: 颜色的饱和度,参见 https://en.wikipedia.org/wiki/HSL_and_HSV。 # colorHue: 颜色的色调,参见 https://en.wikipedia.org/wiki/HSL_and_HSV。 out_of_brush: dict = None, )
⑥AxisOpts:坐标轴配置项
class AxisOpts( # 坐标轴类型。可选: # 'value': 数值轴,适用于连续数据。 # 'category': 类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。 # 'time': 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同, # 例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。 # 'log' 对数轴。适用于对数数据。 type_: Optional[str] = None, # 坐标轴名称。 name: Optional[str] = None, # 是否显示 x 轴。 is_show: bool = True, # 只在数值轴中(type: 'value')有效。 # 是否是脱离 0 值比例。设置成 true 后坐标刻度不会强制包含零刻度。在双数值轴的散点图中比较有用。 # 在设置 min 和 max 之后该配置项无效。 is_scale: bool = False, # 是否反向坐标轴。 is_inverse: bool = False, # 坐标轴名称显示位置。可选: # 'start', 'middle' 或者 'center','end' name_location: str = "end", # 坐标轴名称与轴线之间的距离。 name_gap: Numeric = 15, # 坐标轴名字旋转,角度值。 name_rotate: Optional[Numeric] = None, # 强制设置坐标轴分割间隔。 # 因为 splitNumber 是预估的值,实际根据策略计算出来的刻度可能无法达到想要的效果, # 这时候可以使用 interval 配合 min、max 强制设定刻度划分,一般不建议使用。 # 无法在类目轴中使用。在时间轴(type: 'time')中需要传时间戳,在对数轴(type: 'log')中需要传指数值。 interval: Optional[Numeric] = None, # x 轴所在的 grid 的索引,默认位于第一个 grid。 grid_index: Numeric = 0, # x 轴的位置。可选: # 'top', 'bottom' # 默认 grid 中的第一个 x 轴在 grid 的下方('bottom'),第二个 x 轴视第一个 x 轴的位置放在另一侧。 position: Optional[str] = None, # Y 轴相对于默认位置的偏移,在相同的 position 上有多个 Y 轴的时候有用。 offset: Numeric = 0, # 坐标轴的分割段数,需要注意的是这个分割段数只是个预估值,最后实际显示的段数会在这个基础上根据分割后坐标轴刻度显示的易读程度作调整。 # 默认值是 5 split_number: Numeric = 5, # 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样。 # 类目轴中 boundaryGap 可以配置为 true 和 false。默认为 true,这时候刻度只是作为分隔线, # 标签和数据点都会在两个刻度之间的带(band)中间。 # 非类目轴,包括时间,数值,对数轴,boundaryGap是一个两个值的数组,分别表示数据最小值和最大值的延伸范围 # 可以直接设置数值或者相对的百分比,在设置 min 和 max 后无效。 示例:boundaryGap: ['20%', '20%'] boundary_gap: Union[str, bool, None] = None, # 坐标轴刻度最小值。 # 可以设置成特殊值 'dataMin',此时取数据在该轴上的最小值作为最小刻度。 # 不设置时会自动计算最小值保证坐标轴刻度的均匀分布。 # 在类目轴中,也可以设置为类目的序数(如类目轴 data: ['类A', '类B', '类C'] 中,序数 2 表示 '类C'。 # 也可以设置为负数,如 -3)。 min_: Union[Numeric, str, None] = None, # 坐标轴刻度最大值。 # 可以设置成特殊值 'dataMax',此时取数据在该轴上的最大值作为最大刻度。 # 不设置时会自动计算最大值保证坐标轴刻度的均匀分布。 # 在类目轴中,也可以设置为类目的序数(如类目轴 data: ['类A', '类B', '类C'] 中,序数 2 表示 '类C'。 # 也可以设置为负数,如 -3)。 max_: Union[Numeric, str, None] = None, # 自动计算的坐标轴最小间隔大小。 # 例如可以设置成1保证坐标轴分割刻度显示成整数。 # 默认值是 0 min_interval: Numeric = 0, # 自动计算的坐标轴最大间隔大小。 # 例如,在时间轴((type: 'time'))可以设置成 3600 * 24 * 1000 保证坐标轴分割刻度最大为一天。 max_interval: Optional[Numeric] = None, # 坐标轴刻度线配置项,参考 `global_options.AxisLineOpts` axisline_opts: Union[AxisLineOpts, dict, None] = None, # 坐标轴刻度配置项,参考 `global_options.AxisTickOpts` axistick_opts: Union[AxisTickOpts, dict, None] = None, # 坐标轴标签配置项,参考 `series_options.LabelOpts` axislabel_opts: Union[LabelOpts, dict, None] = None, # 坐标轴指示器配置项,参考 `global_options.AxisPointerOpts` axispointer_opts: Union[AxisPointerOpts, dict, None] = None, # 坐标轴名称的文字样式,参考 `series_options.TextStyleOpts` name_textstyle_opts: Union[TextStyleOpts, dict, None] = None, # 分割区域配置项,参考 `series_options.SplitAreaOpts` splitarea_opts: Union[SplitAreaOpts, dict, None] = None, # 分割线配置项,参考 `series_options.SplitLineOpts` splitline_opts: Union[SplitLineOpts, dict] = SplitLineOpts(), # 坐标轴次刻度线相关设置,参考 `series_options.MinorTickOpts` minor_tick_opts: Union[MinorTickOpts, dict, None] = None, # 坐标轴在 grid 区域中的次分隔线。次分割线会对齐次刻度线 minorTick,参考 `series_options.MinorSplitLineOpts` minor_split_line_opts: Union[MinorSplitLineOpts, dict, None] = None, )
⑦VisualMapOpts:视觉映射配置项
class VisualMapOpts( # 是否显示视觉映射配置 is_show: bool = True, # 映射过渡类型,可选,"color", "size" type_: str = "color", # 指定 visualMapPiecewise 组件的最小值。 min_: Union[int, float] = 0, # 指定 visualMapPiecewise 组件的最大值。 max_: Union[int, float] = 100, # 两端的文本,如['High', 'Low']。 range_text: Union[list, tuple] = None, # visualMap 组件过渡颜色 range_color: Union[Sequence[str]] = None, # visualMap 组件过渡 symbol 大小 range_size: Union[Sequence[int]] = None, # visualMap 图元以及其附属物(如文字标签)的透明度。 range_opacity: Optional[Numeric] = None, # 如何放置 visualMap 组件,水平('horizontal')或者竖直('vertical')。 orient: str = "vertical", # visualMap 组件离容器左侧的距离。 # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比, # 也可以是 'left', 'center', 'right'。 # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。 pos_left: Optional[str] = None, # visualMap 组件离容器右侧的距离。 # right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。 pos_right: Optional[str] = None, # visualMap 组件离容器上侧的距离。 # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比, # 也可以是 'top', 'middle', 'bottom'。 # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。 pos_top: Optional[str] = None, # visualMap 组件离容器下侧的距离。 # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。 pos_bottom: Optional[str] = None, # 对于连续型数据,自动平均切分成几段。默认为5段。连续数据的范围需要 max 和 min 来指定 split_number: int = 5, # 指定取哪个系列的数据,默认取所有系列。 series_index: Union[Numeric, Sequence, None] = None, # 组件映射维度 dimension: Optional[Numeric] = None, # 是否显示拖拽用的手柄(手柄能拖拽调整选中范围)。 is_calculable: bool = True, # 是否为分段型 is_piecewise: bool = False, # 是否反转 visualMap 组件 is_inverse: bool = False, # 数据展示的小数精度。 # 连续型数据平均分段,精度根据数据自动适应。 # 连续型数据自定义分段或离散数据根据类别分段模式,精度默认为0(没有小数)。 precision: Optional[int] = None, # 自定义的每一段的范围,以及每一段的文字,以及每一段的特别的样式。例如: # pieces: [ # {"min": 1500}, // 不指定 max,表示 max 为无限大(Infinity)。 # {"min": 900, "max": 1500}, # {"min": 310, "max": 1000}, # {"min": 200, "max": 300}, # {"min": 10, "max": 200, "label": '10 到 200(自定义label)'}, # {"value": 123, "label": '123(自定义特殊颜色)', "color": 'grey'}, //表示 value 等于 123 的情况 # {"max": 5} // 不指定 min,表示 min 为无限大(-Infinity)。 # ] pieces: Optional[Sequence] = None, # 定义 在选中范围外 的视觉元素。(用户可以和 visualMap 组件交互,用鼠标或触摸选择范围) # 可选的视觉元素有: # symbol: 图元的图形类别。 # symbolSize: 图元的大小。 # color: 图元的颜色。 # colorAlpha: 图元的颜色的透明度。 # opacity: 图元以及其附属物(如文字标签)的透明度。 # colorLightness: 颜色的明暗度,参见 HSL。 # colorSaturation: 颜色的饱和度,参见 HSL。 # colorHue: 颜色的色调,参见 HSL。 out_of_range: Optional[Sequence] = None, # 图形的宽度,即长条的宽度。 item_width: int = 0, # 图形的高度,即长条的高度。 item_height: int = 0, # visualMap 组件的背景色。 background_color: Optional[str] = None, # visualMap 组件的边框颜色。 border_color: Optional[str] = None, # visualMap 边框线宽,单位px。 border_width: int = 0, # 文字样式配置项,参考 `series_options.TextStyleOpts` textstyle_opts: Union[TextStyleOpts, dict, None] = None, )
⑧DataZoomOpts:区域缩放配置项
class DataZoomOpts( # 是否显示 组件。如果设置为 false,不会显示,但是数据过滤的功能还存在。 is_show: bool = True, # 组件类型,可选 "slider", "inside" type_: str = "slider", # 拖动时,是否实时更新系列的视图。如果设置为 false,则只在拖拽结束的时候更新。 is_realtime: bool = True, # 数据窗口范围的起始百分比。范围是:0 ~ 100。表示 0% ~ 100%。 range_start: Union[Numeric, None] = 20, # 数据窗口范围的结束百分比。范围是:0 ~ 100 range_end: Union[Numeric, None] = 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, # dataZoom 的运行原理是通过数据过滤以及在内部设置轴的显示窗口来达到数据窗口缩放的效果。 # 'filter':当前数据窗口外的数据,被过滤掉。即会影响其他轴的数据范围。 # 每个数据项,只要有一个维度在数据窗口外,整个数据项就会被过滤掉。 # 'weakFilter':当前数据窗口外的数据,被过滤掉。即会影响其他轴的数据范围。 # 每个数据项,只有当全部维度都在数据窗口同侧外部,整个数据项才会被过滤掉。 # 'empty':当前数据窗口外的数据,被设置为空。即不会影响其他轴的数据范围。 # 'none': 不过滤数据,只改变数轴范围。 filter_mode: str = "filter" )
⑨AxisPointerOpts: 坐标轴指示器配置项
class AxisPointerOpts( # 默认显示坐标轴指示器 is_show: bool = True, # 不同轴的 axisPointer 可以进行联动,在这里设置。联动表示轴能同步一起活动。 # 轴依据他们的 axisPointer 当前对应的值来联动。 # link 是一个数组,其中每一项表示一个 link group,一个 group 中的坐标轴互相联动。 # 具体使用方式可以参见:https://www.echartsjs.com/option.html#axisPointer.link link: Sequence[dict] = None, # 指示器类型。 # 可选参数如下,默认为 'line' # 'line' 直线指示器 # 'shadow' 阴影指示器 # 'none' 无指示器 type_: str = "line", # 坐标轴指示器的文本标签,坐标轴标签配置项,参考 `series_options.LabelOpts` label: Union[LabelOpts, dict, None] = None, # 坐标轴线风格配置项,参考 `series_optionsLineStyleOpts` linestyle_opts: Union[LineStyleOpts, dict, None] = None, )
# 5、往条形图对象添加数据
bar.add_yaxis( # 系列名称,用于 tooltip 的显示,legend 的图例筛选。 #series_name: str, series_name='Y坐标', # 系列数据 #y_axis: Sequence[Numeric, opts.BarItem, dict], y_axis=random.choices(range(100),k=6), # 是否选中图例 #is_selected: bool = True, is_selected=True, # 使用的 x 轴的 index,在单个图表实例中存在多个 x 轴的时候有用。 #xaxis_index: Optional[Numeric] = None, xaxis_index=None, # 使用的 y 轴的 index,在单个图表实例中存在多个 y 轴的时候有用。 #yaxis_index: Optional[Numeric] = None, yaxis_index=None, # 是否启用图例 hover 时的联动高亮 #is_legend_hover_link: bool = True, is_legend_hover_link=True, # 系列 label 颜色 #color: Optional[str] = None, color="red", # 是否显示柱条的背景色。通过 backgroundStyle 配置背景样式。 #is_show_background: bool = False, is_show_background=False, # 每一个柱条的背景样式。需要将 showBackground 设置为 true 时才有效。 #background_style: types.Union[types.BarBackground, dict, None] = None, background_style=None, # 数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置。 #stack: Optional[str] = None, stack=None, # 柱条的宽度,不设时自适应。 # 可以是绝对值例如 40 或者百分数例如 '60%'。百分数基于自动计算出的每一类目的宽度。 # 在同一坐标系上,此属性会被多个 'bar' 系列共享。此属性应设置于此坐标系中最后一个 'bar' 系列上才会生效,并且是对此坐标系中所有 'bar' 系列生效。 #bar_width: types.Union[types.Numeric, str] = None, bar_width=30, # 柱条的最大宽度。比 barWidth 优先级高。 #bar_max_width: types.Union[types.Numeric, str] = None, bar_max_width=None, # 柱条的最小宽度。在直角坐标系中,默认值是 1。否则默认值是 null。比 barWidth 优先级高。 #bar_min_width: types.Union[types.Numeric, str] = None, bar_min_width=None, # 柱条最小高度,可用于防止某数据项的值过小而影响交互。 #bar_min_height: types.Numeric = 0, bar_min_height=0, # 同一系列的柱间距离,默认为类目间距的 20%,可设固定值 #category_gap: Union[Numeric, str] = "20%", category_gap="20%", # 不同系列的柱间距离,为百分比(如 '30%',表示柱子宽度的 30%)。 # 如果想要两个系列的柱子重叠,可以设置 gap 为 '-100%'。这在用柱子做背景的时候有用。 #gap: Optional[str] = "30%", gap="30%", # 是否开启大数据量优化,在数据图形特别多而出现卡顿时候可以开启。 # 开启后配合 largeThreshold 在数据量大于指定阈值的时候对绘制进行优化。 # 缺点:优化后不能自定义设置单个数据项的样式。 #is_large: bool = False, is_large=False, # 开启绘制优化的阈值。 #large_threshold: types.Numeric = 400, large_threshold=400, # 使用 dimensions 定义 series.data 或者 dataset.source 的每个维度的信息。 # 注意:如果使用了 dataset,那么可以在 dataset.source 的第一行/列中给出 dimension 名称。 # 于是就不用在这里指定 dimension。 # 但是,如果在这里指定了 dimensions,那么 ECharts 不再会自动从 dataset.source 的第一行/列中获取维度信息。 #dimensions: types.Union[types.Sequence, None] = None, dimensions=None, # 当使用 dataset 时,seriesLayoutBy 指定了 dataset 中用行还是列对应到系列上,也就是说,系列“排布”到 dataset 的行还是列上。可取值: # 'column':默认,dataset 的列对应于系列,从而 dataset 中每一列是一个维度(dimension)。 # 'row':dataset 的行对应于系列,从而 dataset 中每一行是一个维度(dimension)。 #series_layout_by: str = "column", series_layout_by="column", # 如果 series.data 没有指定,并且 dataset 存在,那么就会使用 dataset。 # datasetIndex 指定本系列使用那个 dataset。 #dataset_index: types.Numeric = 0, dataset_index=0, # 是否裁剪超出坐标系部分的图形。柱状图:裁掉所有超出坐标系的部分,但是依然保留柱子的宽度 #is_clip: bool = True, is_clip=True, # 柱状图所有图形的 zlevel 值。 #z_level: types.Numeric = 0, z_level=0, # 柱状图组件的所有图形的z值。控制图形的前后顺序。 # z值小的图形会被z值大的图形覆盖。 # z相比zlevel优先级更低,而且不会创建新的 Canvas。 #z: types.Numeric = 2, z=2, # 标签配置项,参考 `series_options.LabelOpts` #label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(), #label_opts=opts.LabelOpts(), # 标记点配置项,参考 `series_options.MarkPointOpts` #markpoint_opts: Union[opts.MarkPointOpts, dict, None] = None, markpoint_opts=None, # 标记线配置项,参考 `series_options.MarkLineOpts` #markline_opts: Union[opts.MarkLineOpts, dict, None] = None, markline_opts=None, # 提示框组件配置项,参考 `series_options.TooltipOpts` #tooltip_opts: Union[opts.TooltipOpts, dict, None] = None, tooltip_opts=None, # 图元样式配置项,参考 `series_options.ItemStyleOpts` #itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None, itemstyle_opts=None, # 可以定义 data 的哪个维度被编码成什么。 #encode: types.Union[types.JSFunc, dict, None] = None, encode=None, )
# 6、设置条形图对象系列属性
''' set_series_opts(label_opts=None, linestyle_opts=None, splitline_opts=None, areastyle_opts=None, axisline_opts=None, markpoint_opts=None, markline_opts=None, markarea_opts=None, effect_opts= <pyecharts.options.series_options.EffectOpts object at 0x000001B0134CB608>, tooltip_opts=None, itemstyle_opts== None, **kwargs) label_opts: Union[pyecharts.options.series_options.LabelOpts, dict, NoneType] = None, linestyle_opts: Union[pyecharts.options.series_options.LineStyleOpts, dict, NoneType] = None, splitline_opts: Union[pyecharts.options.series_options.SplitLineOpts, dict, NoneType] = None, areastyle_opts: Union[pyecharts.options.series_options.AreaStyleOpts, dict, NoneType] = None, axisline_opts: Union[pyecharts.options.global_options.AxisLineOpts, dict, NoneType] = None, markpoint_opts: Union[pyecharts.options.series_options.MarkPointOpts, dict, NoneType] = None, markline_opts: Union[pyecharts.options.series_options.MarkLineOpts, dict, NoneType] = None, markarea_opts: Union[pyecharts.options.series_options.MarkAreaOpts, dict, NoneType] = None, effect_opts: Union[pyecharts.options.series_options.EffectOpts, dict, NoneType] = <pyecharts.options.series_options.EffectOpts object at 0x000001B0134CB608>, tooltip_opts: Union[pyecharts.options.global_options.TooltipOpts, dict, NoneType] = None, itemstyle_opts: Union[pyecharts.options.series_options.ItemStyleOpts, dict, NoneType] = None, ''' bar..set_series_opts(label_opts=opts.LabelOpts(is_show=False))
①LabelOpts:标签配置项
class LabelOpts( # 是否显示标签。 is_show: bool = True, # 标签的位置。可选 # 'top','left','right','bottom','inside','insideLeft','insideRight' # 'insideTop','insideBottom', 'insideTopLeft','insideBottomLeft' # 'insideTopRight','insideBottomRight' position: Union[str, Sequence] = "top", # 文字的颜色。 # 如果设置为 'auto',则为视觉映射得到的颜色,如系列色。 color: Optional[str] = None, # 距离图形元素的距离。当 position 为字符描述值(如 'top'、'insideRight')时候有效。 distance: Union[Numeric, Sequence, None] = None, # 文字的字体大小 font_size: Numeric = 12, # 文字字体的风格,可选: # 'normal','italic','oblique' font_style: Optional[str] = None, # 文字字体的粗细,可选: # 'normal','bold','bolder','lighter' font_weight: Optional[str] = None, # 文字的字体系列 # 还可以是 'serif' , 'monospace', 'Arial', 'Courier New', 'Microsoft YaHei', ... font_family: Optional[str] = None, # 标签旋转。从 -90 度到 90 度。正值是逆时针。 rotate: Optional[Numeric] = None, # 刻度标签与轴线之间的距离。 margin: Optional[Numeric] = 8, # 坐标轴刻度标签的显示间隔,在类目轴中有效。 # 默认会采用标签不重叠的策略间隔显示标签。 # 可以设置成 0 强制显示所有标签。 # 如果设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推。 # 可以用数值表示间隔的数据,也可以通过回调函数控制。回调函数格式如下: # (index:number, value: string) => boolean # 第一个参数是类目的 index,第二个值是类目名称,如果跳过则返回 false。 interval: Union[Numeric, str, None]= None, # 文字水平对齐方式,默认自动。可选: # 'left','center','right' horizontal_align: Optional[str] = None, # 文字垂直对齐方式,默认自动。可选: # 'top','middle','bottom' vertical_align: Optional[str] = None, # 标签内容格式器,支持字符串模板和回调函数两种形式,字符串模板与回调函数返回的字符串均支持用 \n 换行。 # 模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。 # 在 trigger 为 'axis' 的时候,会有多个系列的数据,此时可以通过 {a0}, {a1}, {a2} 这种后面加索引的方式表示系列的索引。 # 不同图表类型下的 {a},{b},{c},{d} 含义不一样。 其中变量{a}, {b}, {c}, {d}在不同图表类型下代表数据含义为: # 折线(区域)图、柱状(条形)图、K线图 : {a}(系列名称),{b}(类目值),{c}(数值), {d}(无) # 散点图(气泡)图 : {a}(系列名称),{b}(数据名称),{c}(数值数组), {d}(无) # 地图 : {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无) # 饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比) # 示例:formatter: '{b}: {@score}' # # 回调函数,回调函数格式: # (params: Object|Array) => string # 参数 params 是 formatter 需要的单个数据集。格式如下: # { # componentType: 'series', # // 系列类型 # seriesType: string, # // 系列在传入的 option.series 中的 index # seriesIndex: number, # // 系列名称 # seriesName: string, # // 数据名,类目名 # name: string, # // 数据在传入的 data 数组中的 index # dataIndex: number, # // 传入的原始数据项 # data: Object, # // 传入的数据值 # value: number|Array, # // 数据图形的颜色 # color: string, # } formatter: Optional[str] = None, # 在 rich 里面,可以自定义富文本样式。利用富文本样式,可以在标签中做出非常丰富的效果 # 具体配置可以参考一下 https://www.echartsjs.com/tutorial.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%87%E7%AD%BE rich: Optional[dict] = None, )
②LineStyleOpts:线样式配置项
class LineStyleOpts( # 是否显示 is_show: bool = True, # 线宽。 width: Numeric = 1, # 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 opacity: Numeric = 1, # 线的弯曲度,0 表示完全不弯曲 curve: Numeric = 0, # 线的类型。可选: # 'solid', 'dashed', 'dotted' type_: str = "solid", # 线的颜色。 # 颜色可以使用 RGB 表示,比如 'rgb(128, 128, 128)',如果想要加上 alpha 通道表示不透明度, # 可以使用 RGBA,比如 'rgba(128, 128, 128, 0.5)',也可以使用十六进制格式,比如 '#ccc'。 # 除了纯色之外颜色也支持渐变色和纹理填充 # # 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分比, # 如果 globalCoord 为 `true`,则该四个值是绝对的像素位置 # color: { # type: 'linear', # x: 0, # y: 0, # x2: 0, # y2: 1, # colorStops: [{ # offset: 0, color: 'red' // 0% 处的颜色 # }, { # offset: 1, color: 'blue' // 100% 处的颜色 # }], # global: false // 缺省为 false # } # # 径向渐变,前三个参数分别是圆心 x, y 和半径,取值同线性渐变 # color: { # type: 'radial', # x: 0.5, # y: 0.5, # r: 0.5, # colorStops: [{ # offset: 0, color: 'red' // 0% 处的颜色 # }, { # offset: 1, color: 'blue' // 100% 处的颜色 # }], # global: false // 缺省为 false # } # # 纹理填充 # color: { # image: imageDom, // 支持为 HTMLImageElement, HTMLCanvasElement,不支持路径字符串 # repeat: 'repeat' // 是否平铺, 可以是 'repeat-x', 'repeat-y', 'no-repeat' # } color: Union[str, Sequence, None] = None, )
③SplitLineOpts:分割线配置项
class SplitLineOpts( # 是否显示分割线 is_show: bool = False, # 线风格配置项,参考 `series_options.SplitLineOpts` linestyle_opts: LineStyleOpts = LineStyleOpts() )
④AreaStyleOpts:区域填充样式配置项
class AreaStyleOpts( # 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 opacity: Optional[Numeric] = 0, # 填充的颜色。 # 颜色可以使用 RGB 表示,比如 'rgb(128, 128, 128)',如果想要加上 alpha 通道表示不透明度, # 可以使用 RGBA,比如 'rgba(128, 128, 128, 0.5)',也可以使用十六进制格式,比如 '#ccc'。 # 除了纯色之外颜色也支持渐变色和纹理填充 # # 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分比, # 如果 globalCoord 为 `true`,则该四个值是绝对的像素位置 # color: { # type: 'linear', # x: 0, # y: 0, # x2: 0, # y2: 1, # colorStops: [{ # offset: 0, color: 'red' // 0% 处的颜色 # }, { # offset: 1, color: 'blue' // 100% 处的颜色 # }], # global: false // 缺省为 false # } # # 径向渐变,前三个参数分别是圆心 x, y 和半径,取值同线性渐变 # color: { # type: 'radial', # x: 0.5, # y: 0.5, # r: 0.5, # colorStops: [{ # offset: 0, color: 'red' // 0% 处的颜色 # }, { # offset: 1, color: 'blue' // 100% 处的颜色 # }], # global: false // 缺省为 false # } # # 纹理填充 # color: { # image: imageDom, // 支持为 HTMLImageElement, HTMLCanvasElement,不支持路径字符串 # repeat: 'repeat' // 是否平铺, 可以是 'repeat-x', 'repeat-y', 'no-repeat' # } color: Optional[str] = None )
⑤AxisLineOpts: 坐标轴轴线配置项
class AxisLineOpts( # 是否显示坐标轴轴线。 is_show: bool = True, # X 轴或者 Y 轴的轴线是否在另一个轴的 0 刻度上,只有在另一个轴为数值轴且包含 0 刻度时有效。 is_on_zero: bool = True, # 当有双轴时,可以用这个属性手动指定,在哪个轴的 0 刻度上。 on_zero_axis_index: int = 0, # 轴线两边的箭头。可以是字符串,表示两端使用同样的箭头;或者长度为 2 的字符串数组,分别表示两端的箭头。 # 默认不显示箭头,即 'none'。 # 两端都显示箭头可以设置为 'arrow'。 # 只在末端显示箭头可以设置为 ['none', 'arrow']。 symbol: Optional[str] = None, # 坐标轴线风格配置项,参考 `series_optionsLineStyleOpts` linestyle_opts: Union[LineStyleOpts, dict, None] = None, )
⑥MarkPointOpts:标记点配置项
class MarkPointOpts( # 标记点数据,参考 `series_options.MarkPointItem` data: Sequence[Union[MarkPointItem, dict]] = None, # 标记的图形。 # ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', # 'diamond', 'pin', 'arrow', 'none' # 可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI。 symbol: Optional[str] = None, # 标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高, # 例如 [20, 10] 表示标记宽为 20,高为 10。 # 如果需要每个数据的图形大小不一样,可以设置为如下格式的回调函数: # (value: Array|number, params: Object) => number|Array # 其中第一个参数 value 为 data 中的数据值。第二个参数 params 是其它的数据项参数。 symbol_size: Union[None, Numeric] = None, # 标签配置项,参考 `series_options.LabelOpts` label_opts: LabelOpts = LabelOpts(position="inside", color="#fff"), )
⑦MarkLineOpts:标记线配置项
class MarkLineOpts( # 图形是否不响应和触发鼠标事件,默认为 false,即响应和触发鼠标事件。 is_silent: bool = False, # 标记线数据,参考 `series_options.MarkLineItem` data: Sequence[Union[MarkLineItem, dict]] = None, # 标线两端的标记类型,可以是一个数组分别指定两端,也可以是单个统一指定,具体格式见 data.symbol。 symbol: Optional[str] = None, # 标线两端的标记大小,可以是一个数组分别指定两端,也可以是单个统一指定。 symbol_size: Union[None, Numeric] = None, # 标线数值的精度,在显示平均值线的时候有用。 precision: int = 2, # 标签配置项,参考 `series_options.LabelOpts` label_opts: LabelOpts = LabelOpts(), # 标记线样式配置项,参考 `series_options.LineStyleOpts` linestyle_opts: Union[LineStyleOpts, dict, None] = None, )
⑧MarkAreaOpts: 标记区域配置项
class MarkAreaOpts( # 图形是否不响应和触发鼠标事件,默认为 False,即响应和触发鼠标事件。 is_silent: bool = False, # 标签配置项,参考 `series_options.LabelOpts` label_opts: LabelOpts = LabelOpts(), # 标记区域数据,参考 `series_options.MarkAreaItem` data: Sequence[Union[MarkAreaItem, Sequence, dict]] = None, # 该数据项区域的样式。参考 `series_options.ItemStyleOpts` itemstyle_opts: ItemStyleOpts = None, )
⑨EffectOpts:涟漪特效配置项
class EffectOpts( # 是否显示特效。 is_show: bool = True, # 波纹的绘制方式,可选 'stroke' 和 'fill',Scatter 类型有效。 brush_type: str = "stroke", # 动画中波纹的最大缩放比例,Scatter 类型有效。 scale: Numeric = 2.5, # 动画的周期,秒数,Scatter 类型有效。 period: Numeric = 4, # 特效标记的颜色 color: Optional[str] = None, # 特效图形的标记。 # ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', # 'diamond', 'pin', 'arrow', 'none' # 可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI。 symbol: Optional[str] = None, # 特效标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示高和宽, # 例如 [20, 10] 表示标记宽为 20,高为 10。 symbol_size: Optional[Numeric] = None, # 特效尾迹的长度。取从 0 到 1 的值,数值越大尾迹越长。Geo 图设置 Lines 类型时有效。 trail_length: Optional[Numeric] = None, )
⑩ItemStyleOpts:图元样式配置项
class ItemStyleOpts( # 图形的颜色。 # 颜色可以使用 RGB 表示,比如 'rgb(128, 128, 128)',如果想要加上 alpha 通道表示不透明度, # 可以使用 RGBA,比如 'rgba(128, 128, 128, 0.5)',也可以使用十六进制格式,比如 '#ccc'。 # 除了纯色之外颜色也支持渐变色和纹理填充 # # 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分比, # 如果 globalCoord 为 `true`,则该四个值是绝对的像素位置 # color: { # type: 'linear', # x: 0, # y: 0, # x2: 0, # y2: 1, # colorStops: [{ # offset: 0, color: 'red' // 0% 处的颜色 # }, { # offset: 1, color: 'blue' // 100% 处的颜色 # }], # global: false // 缺省为 false # } # # 径向渐变,前三个参数分别是圆心 x, y 和半径,取值同线性渐变 # color: { # type: 'radial', # x: 0.5, # y: 0.5, # r: 0.5, # colorStops: [{ # offset: 0, color: 'red' // 0% 处的颜色 # }, { # offset: 1, color: 'blue' // 100% 处的颜色 # }], # global: false // 缺省为 false # } # # 纹理填充 # color: { # image: imageDom, // 支持为 HTMLImageElement, HTMLCanvasElement,不支持路径字符串 # repeat: 'repeat' // 是否平铺, 可以是 'repeat-x', 'repeat-y', 'no-repeat' # } color: Optional[str] = None, # 阴线 图形的颜色。 color0: Optional[str] = None, # 图形的描边颜色。支持的颜色格式同 color,不支持回调函数。 border_color: Optional[str] = None, # 阴线 图形的描边颜色。 border_color0: Optional[str] = None, # 描边宽度,默认不描边。 border_width: Optional[Numeric] = None, # 支持 'dashed', 'dotted'。 border_type: Optional[str] = None, # 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 opacity: Optional[Numeric] = None, # 区域的颜色。 area_color: Optional[str] = None, )
# 7、保存图形
bar.render('D:\\WorkSpace\\test\\index.html')
------------------------------------------------------------------------------------------------------------------------------
①①①①TextStyleOpts:文字样式配置项
class pyecharts.options.TextStyleOpts
AxisTickOpts: 坐标轴刻度配置项
class AxisTickOpts( # 是否显示坐标轴刻度。 is_show: bool = True, # 类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。 is_align_with_label: bool = False, # 坐标轴刻度是否朝内,默认朝外。 is_inside: bool = False, # 坐标轴刻度的长度。 length: Optional[Numeric] = None, # 坐标轴线风格配置项,参考 `series_optionsLineStyleOpts` linestyle_opts: Union[LineStyleOpts, dict, None] = None, )
MarkPointItem:标记点数据项
class MarkPointItem( # 标注名称。 name: Optional[str] = None, # 特殊的标注类型,用于标注最大值最小值等。可选: # 'min' 最大值。 # 'max' 最大值。 # 'average' 平均值。 type_: Optional[str] = None, # 在使用 type 时有效,用于指定在哪个维度上指定最大值最小值,可以是 # 0(xAxis, radiusAxis), # 1(yAxis, angleAxis),默认使用第一个数值轴所在的维度。 value_index: Optional[Numeric] = None, # 在使用 type 时有效,用于指定在哪个维度上指定最大值最小值。这可以是维度的直接名称, # 例如折线图时可以是 x、angle 等、candlestick 图时可以是 open、close 等维度名称。 value_dim: Optional[str] = None, # 标注的坐标。坐标格式视系列的坐标系而定,可以是直角坐标系上的 x, y, # 也可以是极坐标系上的 radius, angle。例如 [121, 2323]、['aa', 998]。 coord: Optional[Sequence] = None, # 相对容器的屏幕 x 坐标,单位像素。 x: Optional[Numeric] = None, # 相对容器的屏幕 y 坐标,单位像素。 y: Optional[Numeric] = None, # 标注值,可以不设。 value: Optional[Numeric] = None, # 标记的图形。 # ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', # 'diamond', 'pin', 'arrow', 'none' # 可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI。 symbol: Optional[str] = None, # 标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高, # 例如 [20, 10] 表示标记宽为 20,高为 10。 symbol_size: Union[Numeric, Sequence] = None, # 标记点样式配置项,参考 `series_options.ItemStyleOpts` itemstyle_opts: Union[ItemStyleOpts, dict, None] = None, )
MarkLineItem:标记线数据项
class MarkLineItem( # 标注名称。 name: Optional[str] = None, # 特殊的标注类型,用于标注最大值最小值等。可选: # 'min' 最大值。 # 'max' 最大值。 # 'average' 平均值。 type_: Optional[str] = None, # 相对容器的屏幕 x 坐标,单位像素。 x: Union[str, Numeric, None] = None, # x 数据坐标。 xcoord: Union[str, Numeric, None] = None, # 相对容器的屏幕 y 坐标,单位像素。 y: Union[str, Numeric, None] = None, # y 数据坐标。 ycoord: Union[str, Numeric, None] = None, # 在使用 type 时有效,用于指定在哪个维度上指定最大值最小值,可以是 # 0(xAxis, radiusAxis), # 1(yAxis, angleAxis),默认使用第一个数值轴所在的维度。 value_index: Optional[Numeric] = None, # 在使用 type 时有效,用于指定在哪个维度上指定最大值最小值。这可以是维度的直接名称, # 例如折线图时可以是 x、angle 等、candlestick 图时可以是 open、close 等维度名称。 value_dim: Optional[str] = None, # 起点或终点的坐标。坐标格式视系列的坐标系而定,可以是直角坐标系上的 x, y, # 也可以是极坐标系上的 radius, angle。 coord: Optional[Sequence] = None, # 终点标记的图形。 # ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', # 'diamond', 'pin', 'arrow', 'none' # 可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI。 symbol: Optional[str] = None, # 标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高, # 例如 [20, 10] 表示标记宽为 20,高为 10。 symbol_size: Optional[Numeric] = None, )
MarkAreaItem: 标记区域数据项
class MarkAreaItem( # 区域名称, 仅仅就是一个名称而已 name: Optional[str] = None, # 特殊的标注类型,用于标注最大值最小值等。 # 'min' 最大值。 # 'max' 最大值。 # 'average' 平均值。 type_: Sequence[Optional[str], Optional[str]] = (None, None), # 在使用 type 时有效,用于指定在哪个维度上指定最大值最小值,可以是 0(xAxis, radiusAxis),1(yAxis, angleAxis)。 # 默认使用第一个数值轴所在的维度。 value_index: Sequence[Optional[Numeric], Optional[Numeric]] = (None, None), # 在使用 type 时有效,用于指定在哪个维度上指定最大值最小值。 # 这可以是维度的直接名称,例如折线图时可以是 x、angle 等、candlestick 图时可以是 open、close 等维度名称。 value_dim: Sequence[Optional[str], Optional[str]] = (None, None), # 相对容器的屏幕 x 坐标,单位像素,支持百分比形式,例如 '20%'。 x: Sequence[Union[str, Numeric, None], Union[str, Numeric, None]] = (None, None), # 相对容器的屏幕 y 坐标,单位像素,支持百分比形式,例如 '20%'。 y: Sequence[Union[str, Numeric, None], Union[str, Numeric, None]] = (None, None), # 标签配置项,参考 `series_options.LabelOpts` label_opts: Union[LabelOpts, dict, None] = None, # 该数据项区域的样式,起点和终点项的 itemStyle 会合并到一起。参考 `series_options.ItemStyleOpts` itemstyle_opts: Union[ItemStyleOpts, dict, None] = None, )
MinorTickOpts:次级刻度配置项
class MinorTickOpts( # 是否显示次刻度线。 is_show: bool = False, # 次刻度线分割数,默认会分割成 5 段 split_number: Numeric = 5, # 次刻度线的长度。 length: Numeric = 3, # 次刻度线的样式 linestyle_opts: Union[LineStyleOpts, dict, None] = None, )
MinorSplitLineOpts:次级分割线配置项
class MinorSplitLineOpts( # 是否显示次分隔线。默认不显示。 is_show: bool = False, # 次分隔线线宽。 width: Numeric = 1, # 次分隔线线的类型。可选:'solid','dashed','dotted' type_: str = "solid", # 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。 opacity: Union[Numeric, None] = None, # 线的样式 linestyle_opts: Union[LineStyleOpts, dict, None] = None, )