Python数据可视化 - Pyecharts绘图示例

news2025/5/19 15:59:41

文章目录

  • 一、Pyecharts简介及安装
    • 1. Pyecharts简介
    • 2. 安装Pyecharts
  • 二、准备数据
  • 三、饼图示例
    • 1. 初始化选项配置
    • 2. 饼图相关设置
    • 3. 全局配置项
      • 3.1 标题配置项
      • 3.2 图例配置项
      • 3.3 提示框配置项
      • 3.4 工具箱配置项
      • 3.5 视觉映射配置项
    • 4. 系列配置项
      • 4.1 标签选项配置
      • 4.2 图元样式配置项
    • 5. 示例代码
  • 四、柱状图示例
    • 1. 柱状图相关设置


一、Pyecharts简介及安装

1. Pyecharts简介

Pyecharts 是基于 Python 的开源数据可视化库,底层依赖 JavaScript 图表库 ECharts,能将数据转化为交互式、高可定制的动态图表。它支持折线图、柱状图、地图、词云图等数十种图表类型,具备缩放、数据提示、动态动画等交互功能,可通过链式调用语法灵活配置颜色、坐标轴、图例等细节,兼容 Jupyter Notebook、Web 页面等多环境,适合数据分析师、开发人员、科研人员等快速实现数据可视化。

其核心优势在于易用性与丰富的表现力:既可以直接读取 CSV、数据库等数据源,也能与 Pandas 等数据处理库结合,轻松处理结构化数据;生成的图表不仅能输出为 HTML 文件,还可通过子库渲染为图片,或嵌入 Flask、Django 等 Web 框架。尽管复杂图表的配置项学习成本较高,且需依赖浏览器渲染,但凭借官方完善的文档、示例库及活跃的社区生态,Pyecharts 已成为 Python 数据可视化领域的主流工具之一。

使用版本:

pythonpyechartsbeautifulsoup4
版本3.8.52.31.04.12.3

2. 安装Pyecharts

执行如下命令安装Pyecharts。

pip install pyecharts==2.0.8 -i https://mirrors.aliyun.com/pypi/simple

二、准备数据

用于演示的示例数据在job_category.csv文件中,文件内容数据如下图所示。

在这里插入图片描述


三、饼图示例

1. 初始化选项配置

在这里插入图片描述

2. 饼图相关设置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 全局配置项

3.1 标题配置项

在这里插入图片描述
在这里插入图片描述

3.2 图例配置项

在这里插入图片描述

在这里插入图片描述

3.3 提示框配置项

在这里插入图片描述

在这里插入图片描述

3.4 工具箱配置项

在这里插入图片描述

3.5 视觉映射配置项

在这里插入图片描述

在这里插入图片描述

4. 系列配置项

4.1 标签选项配置

在这里插入图片描述

在这里插入图片描述

4.2 图元样式配置项

在这里插入图片描述

5. 示例代码

import logging
from pathlib import Path

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Pie

# 配置日志记录
logging.basicConfig(level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')


def load_data(csv_file_path):
    try:
        data = pd.read_csv(csv_file_path)
        return data
    except FileNotFoundError:
        print("未找到指定的 CSV 文件,请检查文件路径和文件名。")
    except Exception as e:
        print(f"加载数据时出现错误: {e}")


# 职位一级分类可视化(饼图)
def pip_chart(data):
    html_file_path = "./job_category.html"
    path = Path(html_file_path)
    path.parent.mkdir(parents=True, exist_ok=True)
    pie = Pie(
        init_opts=opts.InitOpts(
            width="750px",
            height="500px",
            chart_id="job_category",
            # renderer="canvas",
            page_title="职位分类饼图",
            # theme="lightblue",
            bg_color="lightblue",
            animation_opts=opts.AnimationOpts()
        )
    )
    pie.add(
        series_name="职位数量",
        # 系列数据项,格式为 [(key1, value1), (key2, value2)]
        data_pair=list(zip(data['category'], data['counts'])),
        # 从调色盘 option.color 中取色的策略,可取值为:
        # 'series':按照系列分配调色盘中的颜色,同一系列中的所有数据都是用相同的颜色;
        # 'data':按照数据项分配调色盘中的颜色,每个数据项都使用不同的颜色。
        color_by="data",
        # 是否启用图例 hover 时的联动高亮。
        is_legend_hover_link=True,
        # 选中模式的配置,表示是否支持多个选中,默认关闭,支持布尔值和字符串。
        # 字符串取值可选'single','multiple','series' 分别表示单选,多选以及选择整个系列。
        selected_mode="single",
        # 选中扇区的偏移距离。
        selected_offset=15,
        # 饼图的半径,数组的第一项是内半径,第二项是外半径
        # 默认设置成百分比,相对于容器高宽中较小的一项的一半
        radius=["50px", "100px"],
        # 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标
        # 默认设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
        center=["50%", "50%"],
        # 是否展示成南丁格尔图,通过半径区分数据大小,有'radius'和'area'两种模式。
        # radius:扇区圆心角展现数据的百分比,半径展现数据的大小
        # area:所有扇区圆心角相同,仅通过半径展现数据大小
        rosetype="radius",
        # # 饼图的扇区是否是顺时针排布。
        is_clockwise=True,
        # 起始角度,支持范围 [0,360]
        start_angle=90,
        # 最小的扇区角度(0 ~ 360),用于防止某个值过小导致扇区太小影响交互。
        min_angle=0,
        # 小于这个角度(0 ~ 360)的扇区,不显示标签(label 和 labelLine)。
        min_show_label_angle=0,
        # 是否启用防止标签重叠策略,默认开启,在标签拥挤重叠的情况下会挪动各个标签的位置,防止标签间的重叠。
        # 如果不需要开启该策略,例如圆环图这个例子中需要强制所有标签放在中心位置,可以将该值设为 false。
        is_avoid_label_overlap=True,
        # 是否在数据和为0(一般情况下所有数据为0) 的时候仍显示扇区。
        is_still_show_zero_sum=True,
        # 饼图百分比数值的精度,默认保留小数点后两位。
        percent_precision=2,
        # 是否在无数据的时候显示一个占位圆。
        is_show_empty_circle=True,
        # 饼图引导线配置,参考 `chart_options.PieLabelLineOpts`
        label_line_opts=opts.PieLabelLineOpts(
            # 是否显示视觉引导线。
            is_show=True,
            # 是否显示在图形上方
            is_show_above=False,
            # 视觉引导线第一段的长度。
            length=15,
            # 视觉引导项第二段的长度。
            length_2=10,
            # 是否平滑视觉引导线,默认不平滑,可以设置成 true 平滑显示。
            # 也可以设置为 0 到 1 的值,表示平滑程度。
            smooth=False,
            # 通过调整第二线段的长度,限制引导线两端之间最小的夹角
            # 以防止过小的夹角导致显示不美观。
            # 可以设置为 0 - 180 度。
            min_turn_angle=90,
            # 线条样式,参考 `LineStyleOpts`
            linestyle_opts=opts.LineStyleOpts(
                # 是否显示
                is_show=False,
                # 线宽。
                width=5,
                # 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。
                opacity=0.5,
                # 线的弯曲度,0 表示完全不弯曲
                curve=0,
                # 线的类型。可选:
                # 'solid', 'dashed', 'dotted'
                type_="solid",
                # 线的颜色。
                color=None,
            ),
            # 通过调整第二线段的长度,限制引导线与扇区法线的最大夹角
            # 设置为小于 90 度的值保证引导线不会和扇区交叉。
            # 可以设置为 0 - 180 度。
            max_surface_angle=90,
        ),
        # 高亮配置项,参考 `global_options.EmphasisOpts`
        emphasis_opts=opts.EmphasisOpts(),
        # 可以定义 data 的哪个维度被编码成什么。
        encode=None,
    )
    pie.set_global_opts(
        title_opts=opts.TitleOpts(
            # 是否显示标题组件。
            is_show=True,
            # 主标题文本,支持使用 \n 换行。
            title="职位分类饼图",
            # 主标题跳转 URL 链接
            title_link='https://www.baidu.com',
            # 主标题跳转链接方式,默认值是: blank
            # 可选参数: 'self', 'blank','self' 当前窗口打开; 'blank' 新窗口打开
            title_target=None,
            # 副标题文本,支持使用 \n 换行。
            subtitle="饼图副标题",
            # 副标题跳转 URL 链接
            subtitle_link='https://www.baidu.com',
            # 副标题跳转链接方式,默认值是: blank
            # 可选参数: 'self', 'blank','self' 当前窗口打开; 'blank' 新窗口打开
            subtitle_target=None,
            # title 组件离容器左侧的距离。
            # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'left', 'center', 'right'。
            # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
            pos_left='10%',
            # title 组件离容器右侧的距离。
            # pos_right=None,
            # title 组件离容器上侧的距离。
            # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'top', 'middle', 'bottom'。
            # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
            pos_top='10%',
            # title 组件离容器下侧的距离。
            # bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
            # pos_bottom=None,
            # 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。
            padding=5,
            # 主副标题之间的间距。
            item_gap=30,
            # 整体(包括 text 和 subtext)的水平对齐。
            # 可选值:'auto'、'left'、'right'、'center'。
            text_align="auto",
            # 整体(包括 text 和 subtext)的垂直对齐。
            # 可选值:'auto'、'left'、'right'、'center'。
            text_vertical_align="auto",
            # 是否触发事件。
            is_trigger_event=False,
            # 主标题字体样式配置项,参考 `series_options.TextStyleOpts`
            title_textstyle_opts=opts.TextStyleOpts(
                color="#ff6",
                font_size=20,
                font_weight="bold"
            ),
            # 副标题字体样式配置项,参考 `series_options.TextStyleOpts`
            subtitle_textstyle_opts=opts.TextStyleOpts(
                color="#ff6",
                font_size=16
            ),
        ),
        legend_opts=opts.LegendOpts(
            # 图例的类型。可选值:'plain':普通图例。缺省就是普通图例。
            # 'scroll':可滚动翻页的图例。当图例数量较多时可以使用。
            type_=None,
            # 图例选择的模式,控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成 false 关闭
            # 除此之外也可以设成 'single' 或者 'multiple' 使用单选或者多选模式。
            selected_mode=None,
            # 是否显示图例组件,默认显示
            is_show=True,
            # 图例组件离容器左侧的距离。
            # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'left', 'center', 'right'。
            # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
            pos_left='75%',
            # 图例组件离容器右侧的距离。
            # pos_right=None,
            # 图例组件离容器上侧的距离。
            # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'top', 'middle', 'bottom'。
            # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
            pos_top='15%',
            # 图例组件离容器下侧的距离。
            # pos_bottom=None,
            # 图例列表的布局朝向。可选:'horizontal', 'vertical'
            orient='vertical',
            # 图例标记和文本的对齐。默认自动(auto)
            # 根据组件的位置和 orient 决定
            # 当组件的 left 值为 'right' 以及纵向布局(orient 为 'vertical')的时候为右对齐,即为 'right'。
            # 可选参数: `auto`, `left`, `right`
            align='left',
            # 图例内边距,单位px,默认各方向内边距为5
            padding=5,
            # 图例每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。
            # 默认间隔为 10
            item_gap=15,
            # 图例标记的图形宽度。默认宽度为 25
            item_width=35,
            # 图例标记的图形高度。默认高度为 14
            item_height=20,
            # 图例关闭时的颜色。默认是 #ccc
            inactive_color=None,
            # 图例组件字体样式,参考 `series_options.TextStyleOpts`
            textstyle_opts=opts.TextStyleOpts(
                color="#ff6",
                font_size=14
            ),
            # 图例项的 icon。
            # ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'
            legend_icon=None,
            # 图例背景色,默认透明。
            background_color="transparent",
            # 图例的边框颜色。支持的颜色格式同 backgroundColor。
            border_color="#000",
            # 图例的边框线宽。
            border_width=1,
            # 图例的边框圆角半径,单位px,支持传入数组分别指定 4 个圆角半径。
            border_radius=5,
            # legend.type 为 'scroll' 时有效。图例控制块中,按钮和页信息之间的间隔。
            page_button_item_gap=5,
            # legend.type 为 'scroll' 时有效。图例控制块和图例项之间的间隔。
            page_button_gap=None,
            # legend.type 为 'scroll' 时有效。图例控制块的位置。可选值为:
            # 'start':控制块在左或上。
            # 'end':控制块在右或下。
            page_button_position="end",
            # legend.type 为 'scroll' 时有效。
            # 图例控制块中,页信息的显示格式。默认为 '{current}/{total}',其中 {current} 是当前页号(从 1 开始计数),{total} 是总页数。
            # 如果 pageFormatter 使用函数,须返回字符串,参数为:
            # {
            #     current: number
            #     total: number
            # }
            page_formatter="{current}/{total}",
            # legend.type 为 'scroll' 时有效。图例控制块的图标。
            page_icon=None,
            # legend.type 为 'scroll' 时有效。翻页按钮的颜色。
            page_icon_color="#2f4554",
            # legend.type 为 'scroll' 时有效。翻页按钮不激活时(即翻页到头时)的颜色。
            page_icon_inactive_color="#aaa",
            # legend.type 为 'scroll' 时有效。
            # 翻页按钮的大小。可以是数字,也可以是数组,如 [10, 3],表示 [宽,高]。
            page_icon_size=15,
            # 图例翻页是否使用动画。
            is_page_animation=None,
            # 图例翻页时的动画时长。
            page_animation_duration_update=800,
            # 图例组件中的选择器按钮,目前包括全选和反选两种功能。
            # 默认不显示,用户可手动开启,也可以手动配置每个按钮的标题。
            selector=False,
            # 选择器的位置,可以放在图例的尾部或者头部,对应的值分别为 'end' 和 'start'。
            # 默认情况下,图例横向布局的时候,选择器放在图例的尾部;图例纵向布局的时候,选择器放在图例的头部。
            selector_position="auto",
            # 选择器按钮之间的间隔。
            selector_item_gap=7,
            # 选择器按钮与图例组件之间的间隔。
            selector_button_gap=10,
        ),
        tooltip_opts=opts.TooltipOpts(
            # 是否显示提示框组件,包括提示框浮层和 axisPointer。
            is_show=True,
            # 触发类型。可选:
            # 'item': 数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用。
            # 'axis': 坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。
            # 'none': 什么都不触发
            trigger="item",
            # 提示框触发的条件,可选:
            # 'mousemove': 鼠标移动时触发。
            # 'click': 鼠标点击时触发。
            # 'mousemove|click': 同时鼠标移动和点击时触发。
            # 'none': 不在 'mousemove' 或 'click' 时触发,
            trigger_on="mousemove|click",
            # 指示器类型。可选
            # 'line':直线指示器
            # 'shadow':阴影指示器
            # 'none':无指示器
            # 'cross':十字准星指示器。其实是种简写,表示启用两个正交的轴的 axisPointer。
            axis_pointer_type="line",
            # 是否显示提示框浮层,默认显示。
            # 只需 tooltip 触发事件或显示 axisPointer 而不需要显示内容时可配置该项为 false。
            is_show_content=True,
            # 是否永远显示提示框内容,
            # 默认情况下在移出可触发提示框区域后一定时间后隐藏,设置为 true 可以保证一直显示提示框内容。
            is_always_show_content=False,
            # 浮层显示的延迟,单位为 ms,默认没有延迟,也不建议设置。
            show_delay=0,
            # 浮层隐藏的延迟,单位为 ms,在 alwaysShowContent 为 true 的时候无效。
            hide_delay=100,
            # 提示框浮层的位置,默认不设置时位置会跟随鼠标的位置。
            # 1、通过数组配置:
            # 绝对位置,相对于容器左侧 10px, 上侧 10 px ===> position: [10, 10]
            # 相对位置,放置在容器正中间 ===> position: ['50%', '50%']
            # 2、通过回调函数配置
            # 3、固定参数配置:'inside','top','left','right','bottom'
            position=None,
            # 标签内容格式器,支持字符串模板和回调函数两种形式,字符串模板与回调函数返回的字符串均支持用 \n 换行。
            # 字符串模板 模板变量有:
            # {a}:系列名。
            # {b}:数据名。
            # {c}:数据值。
            # {@xxx}:数据中名为 'xxx' 的维度的值,如 {@product} 表示名为 'product'` 的维度的值。
            # {@[n]}:数据中维度 n 的值,如{@[3]}` 表示维度 3 的值,从 0 开始计数。
            # 示例:formatter: '{b}: {@score}'
            formatter="{a} <br/>{b}: {c} ({d}%)",
            # 提示框浮层的背景颜色。
            background_color='#ff68',
            # 提示框浮层的边框颜色。
            border_color=None,
            # 提示框浮层的边框宽。
            border_width=0,
            # 文字样式配置项,参考 `series_options.TextStyleOpts`
            textstyle_opts=opts.TextStyleOpts(
                color="#00f8",
                font_size=14
            ),
        ),
        toolbox_opts=opts.ToolboxOpts(
            # 是否显示工具栏组件
            is_show=True,
            # 工具栏 icon 的布局朝向。
            # 可选:'horizontal', 'vertical'
            orient="vertical",
            # 工具栏组件离容器左侧的距离。
            # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'left', 'center', 'right'。
            # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐
            pos_left="right",
            # 工具栏组件离容器上侧的距离。
            # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'top', 'middle', 'bottom'。
            # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
            pos_top='top',
            # 各工具配置项,参考 `global_options.ToolBoxFeatureOpts`
            feature=opts.ToolBoxFeatureOpts(),
        ),
        brush_opts=opts.BrushOpts(),
        visualmap_opts=opts.VisualMapOpts(
            # 是否显示视觉映射配置
            is_show=True,
            # 映射过渡类型,可选,"color", "size"
            type_="color",
            # 指定 visualMapPiecewise 组件的最小值。
            min_=100,
            # 指定 visualMapPiecewise 组件的最大值。
            max_=8000,
            # 两端的文本,如['High', 'Low']。
            range_text=['High', 'Low'],
            # visualMap 图元以及其附属物(如文字标签)的透明度。
            # range_opacity=[0.1, 1],
            # 如何放置 visualMap 组件,水平('horizontal')或者竖直('vertical')。
            orient="vertical",
            # visualMap 组件离容器左侧的距离。
            # left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'left', 'center', 'right'。
            # 如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
            pos_left='10%',
            # visualMap 组件离容器上侧的距离。
            # top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,
            # 也可以是 'top', 'middle', 'bottom'。
            # 如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
            pos_top='bottom',
            # 指定取哪个系列的数据,默认取所有系列。
            # series_index=None,
            # 是否显示拖拽用的手柄(手柄能拖拽调整选中范围)。
            is_calculable=True,
            # 是否为分段型
            # is_piecewise=True,
            # 是否反转 visualMap 组件
            is_inverse=False,
            # 数据展示的小数精度。
            # 连续型数据平均分段,精度根据数据自动适应。
            # 连续型数据自定义分段或离散数据根据类别分段模式,精度默认为0(没有小数)。
            precision=0,
            # 图形的宽度,即长条的宽度。
            # item_width=20,
            # 图形的高度,即长条的高度。
            # item_height=130,
            # 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,
        ),
    )
    pie.set_series_opts(
        # 设置标签位置
        # {a}:系列名称(如 add_yaxis 中的第一个参数)。
        # {b}:数据项名称(如 add_xaxis 中的值)。
        # {c}:数据项值(如 add_yaxis 中的具体数值)。
        # {d}:百分比(仅在饼图、漏斗图等支持百分比的图表中有效)。
        label_opts=opts.LabelOpts(
            # 是否显示标签。
            is_show=True,
            # 标签的位置。可选
            # 'top','left','right','bottom','inside','insideLeft','insideRight'
            # 'insideTop','insideBottom', 'insideTopLeft','insideBottomLeft'
            # 'insideTopRight','insideBottomRight'
            # position="top",
            # 文字的颜色。
            # 如果设置为 'auto',则为视觉映射得到的颜色,如系列色。
            color='#0009',
            # 距离图形元素的距离。当 position 为字符描述值(如 'top'、'insideRight')时候有效。
            # distance=None,
            # 文字的字体大小
            font_size=12,
            # 文字字体的风格,可选:
            # 'normal','italic','oblique'
            font_style='normal',
            # 文字字体的粗细,可选:
            # 'normal','bold','bolder','lighter'
            font_weight=None,
            # 文字的字体系列
            # 还可以是 'serif' , 'monospace', 'Arial', 'Courier New', 'Microsoft YaHei', ...
            font_family=None,
            # 标签旋转。从 -90 度到 90 度。正值是逆时针。
            rotate=30,
            # 刻度标签与轴线之间的距离。
            margin=8,
            # 坐标轴刻度标签的显示间隔,在类目轴中有效。
            # 默认会采用标签不重叠的策略间隔显示标签。
            # 可以设置成 0 强制显示所有标签。
            # 如果设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推。
            # 可以用数值表示间隔的数据,也可以通过回调函数控制。回调函数格式如下:
            # (index:number, value: string) => boolean
            # 第一个参数是类目的 index,第二个值是类目名称,如果跳过则返回 false。
            interval=None,
            # 文字水平对齐方式,默认自动。可选:
            # 'left','center','right'
            horizontal_align=None,
            # 文字垂直对齐方式,默认自动。可选:
            # 'top','middle','bottom'
            vertical_align=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}'
            formatter="{b}:{c}",
            #     # 文字块背景色。
            #     # 可以使用颜色值,例如:'#123234', 'red', 'rgba(0,23,11,0.3)'。
            # background_color: Optional[str] = None,
            #     # 文字块边框颜色。如果设置为 'inherit',则为视觉映射得到的颜色,如系列色。
            # border_color: Optional[str] = None,
            #     # 文字块边框宽度。
            # border_width: Optional[Numeric] = None,
            #     # 文字块的圆角。
            # border_radius: Optional[Numeric] = None,
            #     # 文字块的内边距。例如:
            #     # padding: [3, 4, 5, 6]:表示 [上, 右, 下, 左] 的边距。
            #     # padding: 4:表示 padding: [4, 4, 4, 4]。
            #     # padding: [3, 4]:表示 padding: [3, 4, 3, 4]。
            #     # 注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。
            # padding: Union[Numeric, Sequence[Numeric], None] = None,
            #     # 文本显示宽度。
            # text_width: Optional[Numeric] = None,
            #     # 文本显示高度。
            # text_height: Optional[Numeric] = None,
            #     # 文字本身的描边颜色。
            #     # 如果设置为 'inherit',则为视觉映射得到的颜色,如系列色。
            # text_border_color: Optional[str] = None,
            #     # 文字本身的描边宽度。
            # text_border_width: Optional[Numeric] = None,
            #     # 文字本身的阴影颜色。
            # text_shadow_color: Optional[str] = None,
            #     # 文字本身的阴影长度。
            # text_shadow_blur: Optional[Numeric] = None,
            #     # 文字本身的阴影 X 偏移。
            # text_shadow_offset_x: Optional[Numeric] = None,
            #     # 文字本身的阴影 Y 偏移。
            # text_shadow_offset_y: Optional[Numeric] = None,
            #     # 文字超出宽度是否截断或者换行。配置width时有效
            #     # 'truncate' 截断,并在末尾显示ellipsis配置的文本,默认为...
            #     # 'break' 换行
            #     # 'breakAll' 换行,跟'break'不同的是,在英语等拉丁文中,'breakAll'还会强制单词内换行
            # overflow: 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,
            #     # 是否开启数值动画,默认关闭
            # is_value_animation: bool = False,
        ),
        areastyle_opts=opts.AreaStyleOpts(
            # 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。
            opacity=0.5,
            # 填充的颜色。
            color='#00f'
        ),
        itemstyle_opts=opts.ItemStyleOpts(
            # 图形的颜色。
            color="blue",
            # 阴线 图形的颜色。
            color0="blue",
            # 图形的描边颜色。支持的颜色格式同 color,不支持回调函数。
            border_color="blue",
            # 阴线 图形的描边颜色。
            border_color0="red",
            # 描边宽度,默认不描边。
            border_width=5,
            # 描边边框线条类型,支持 'dashed', 'dotted'。
            border_type=None,
            # 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。
            opacity=1,
            # 区域的颜色。
            area_color='yellow',
        ),
    )
    pie.render(html_file_path)


if __name__ == '__main__':
    pip_chart(load_data("./job_category.csv"))

四、柱状图示例

1. 柱状图相关设置

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2379390.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NC016NC017美光固态芯片NC101NC102

NC016NC017美光固态芯片NC101NC102 在存储技术的演进历程中&#xff0c;美光科技的NC016、NC017、NC101与NC102系列固态芯片&#xff0c;凭借其技术创新与市场适应性&#xff0c;成为行业关注的焦点。本文将从技术内核、产品性能、行业动向、应用场景及市场价值五个维度&#…

[Android] 青木扫描全能文档3.0,支持自动扫描功能

声明&#xff1a;根据许多帖友的反馈&#xff0c;我也根据重新实测得出结论&#xff1a;该app是提供一天的体验时间&#xff0c;后续还是采取收费才能使用功能的措施。因为现在市面上免费使用的扫描工具很少了&#xff0c;所以当初我初步测试感觉软件不错就发布了出来&#xff…

通俗解释Transformer在处理序列问题高效的原因(个人理解)

Transformer出现的背景 CNN 的全局关联缺陷卷积神经网络&#xff08;CNN&#xff09;通过多层堆叠扩大感受野&#xff0c;但在自然语言处理中存在本质局限&#xff1a; 局部操作的语义割裂&#xff1a;每个卷积核仅处理固定窗口&#xff08;如 3-5 词&#xff09;&#xff0c;…

区间带边权并查集,XY4060泄露的测试点

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 码蹄集 二、解题报告 1、思路分析 关于带边权并查集&#xff1a;并查集&…

【数据结构】1-4算法的空间复杂度

数据结构知识点合集 知识点 空间复杂度的定义以及计算 空间复杂度--空间开销&#xff08;内存开销&#xff09;与问题规模 n 之间的关系 无论问题规模怎么变&#xff0c;算法运行所需的内存空间都是固定的常量&#xff0c;算法空间复杂度为S(n) O(1)&#xff0c;S 表示 “Spac…

OpenAI推出Codex — ChatGPT内置的软件工程Agents

OpenAI继续让ChatGPT对开发者更加实用。 几天前,他们增加了连接GitHub仓库的支持,可以"Deep Research"并根据你自己的代码提问。 今天,该公司在ChatGPT中推出了Codex的研究预览版,这是迄今为止最强大的AI编码Agent。 它可以编写代码、修复错误、运行测试,并在…

AI日报 · 2025年5月15日|GPT-4.1 登陆 ChatGPT

AI日报 2025年5月15日&#xff5c;GPT-4.1 登陆 ChatGPT 1、OpenAI 在 ChatGPT 全面开放 GPT-4.1 与 GPT-4.1 mini 北京时间 5 月 14 日晚&#xff0c;OpenAI 在官方 Release Notes 中宣布&#xff1a;专为复杂代码与精细指令场景打造的 GPT-4.1 正式加入 ChatGPT&#xff0…

W5500使用ioLibrary库创建TCP客户端

1、WIZnet全硬件TCP/IP协议栈 WIZnet全硬件TCP/IP协议栈,支持TCP,UDP,IPv4,ICMP,ARP,IGMP以及PPPoE协议。 以太网&#xff1a;支持BSD和WIZCHIP&#xff08;W5500/W5300/W5200/W5100/W5100S&#xff09;的SOCKET APIs驱动程序。 互联网&#xff1a; DHCP客户端 DNS客户端 FTP客…

组态王|如何创建组态王工程?

哈喽,你好啊,我是雷工! 组态王是比较普及的组态软件之一,大部分工控人应该都接触过组态王软件, 最近有个用组态王软件开发上位机,对设备进行集中控制的项目,边开发,顺便记录一些使用方法。 本篇从基础的如何创建组态王工程开始记录,以下为操作笔记。 1 、首先在工程…

mysql数据库-3(备份和恢复)

1. 冷备份和还原的实现 简介:冷备份定义是 读、写操作均不可进行,数据库停止服务 (超级简单) 冷备份 需求 对 10.0.0.13 主机实现冷备操作 关闭 10.0.0.13 主机的服务(ubuntu系统为例) 10.0.0.12为远程主机 systemctl stop mysql.service 备份数据 mkdir /data/…

估分啦~全国青少年信息素养大赛部分赛项已考完~图形化/算法创意实践

2025年全国青少年信息素养大赛-图形化编程挑战赛-小低组真题试卷 全国青少年信息素养大赛&#xff0c;图形化编程和算法创意实践挑战赛已考完&#xff0c;各位可以去题库重新做做下&#xff0c;复盘下&#xff0c;为更好的自己努力~ 配有答案和解析哦~ 2025年全国青少年信息素…

【Linux服务器】-虚拟机安装(CentOS7.9)

【Linux服务器】-虚拟机安装&#xff08;CentOS7.9&#xff09; 需提前准备好环境安装1. 创建新的虚拟机2. 选择默认配置&#xff0c;下一步3. 选择稍后指定操作系统&#xff0c;下一步4. 选择linux操作系统&#xff0c;并选择CentOS 7 64位 &#xff0c;下一步5. 分配磁盘空间…

2025年渗透测试面试题总结-百度面经(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 百度面经 百度安全工程师面试深度复盘与优化指南 一、项目经验反思与优化策略 二、技术问题深度解析 …

分别用 语言模型雏形N-Gram 和 文本表示BoW词袋 来实现文本情绪分类

语言模型的雏形 N-Gram 和简单文本表示 Bag-of-Words 语言表示模型简介 (1) Bag-of-Words (BoW) 是什么&#xff1f; *定义&#xff1a;将文本表示为词频向量&#xff0c;忽略词序和语法&#xff0c;仅记录每个词的出现次数。 **示例&#xff1a; 句子1&#xff1a;I love …

C#.NET 或 VB.NET Windows 窗体中的 DataGridView – 技巧、窍门和常见问题

DataGridView 控件是一个 Windows 窗体控件&#xff0c;它允许您自定义和编辑表格数据。它提供了许多属性、方法和事件来自定义其外观和行为。在本文中&#xff0c;我们将讨论一些常见问题及其解决方案。这些问题来自各种来源&#xff0c;包括一些新闻组、MSDN 网站以及一些由我…

PyTorch音频处理技术及应用研究:从特征提取到相似度分析

文章目录 音频处理技术及应用音频处理技术音视频摘要技术音频识别及应用 梅尔频率倒谱系数音频特征尔频率倒谱系数简介及参数提取过程音频处理快速傅里叶变换(FFT)能量谱处理离散余弦转换 练习案例&#xff1a;音频建模加载音频数据源波形变换的类型绘制波形频谱图波形Mu-Law 编…

VSTO(C#)Excel开发进阶2:操作图片 改变大小 滚动到可视区

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。 源码指引:github源码指引_初级代码游戏的博客-CSDN博客 入…

多用途商务,电子产品发布,科技架构,智能手表交互等发布PPT模版20套一组分享

产品发布类PPT模版20套一组&#xff1a;产品发布PPT模版https://pan.quark.cn/s/25c8517b0be3 第一套PPT模版是一个总结用的PPT封面&#xff0c;背景浅灰色&#xff0c;有绿色叶片和花朵装饰&#xff0c;深绿色标题&#xff0c;多个适用场景和占位符。突出其清新自然的设计和商…

WindowsPE文件格式入门11.资源表

https://www.bpsend.net/thread-411-1-1.html 资源表 资源的管理方式采用windows资源管理器目录的管理方式&#xff0c;一般有三层目录。根目录 结构体IMAGE_RESOURCE_DIRECTORY&#xff1a;描述名称资源和ID资源各自的数量&#xff0c;不描述文件。资源本质都是二进制数据&…

C语言标准I/O与Linux系统调用的文件操作

01. 标准库函数与系统调用对比 系统调用标准I/O库open/read/write/closefopen/fread/fwrite/fclose文件描述符(fd)文件指针(FILE*)无缓冲&#xff0c;直接系统调用自动缓冲管理每次操作触发系统调用减少系统调用次数<fcntl.h> <unistd.h><stdio.h> 系统调用…