ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pyecharts学习

2021-09-21 12:02:26  阅读:551  来源: 互联网

标签:None pyecharts Union Numeric 学习 types str opts


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,
)
View Code
# 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,
)
View Code
# 3、创建条形图对象,并初始化对象
bar = Bar(init_opts=init_opts)
# 4、设置条形图对象全局属性
# 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,
)
View Code
# 6、保存图形
bar.render('D:\\WorkSpace\\test\\index.html')

 

标签:None,pyecharts,Union,Numeric,学习,types,str,opts
来源: https://www.cnblogs.com/windyrainy/p/15316288.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有