Python数据可视化 - Pyecharts绘图示例
文章目录
- 一、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 数据可视化领域的主流工具之一。
使用版本:
python | pyecharts | beautifulsoup4 | |
---|---|---|---|
版本 | 3.8.5 | 2.31.0 | 4.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 Pathimport 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 dataexcept 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,默认各方向内边距为5padding=5,# 图例每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔。# 默认间隔为 10item_gap=15,# 图例标记的图形宽度。默认宽度为 25item_width=35,# 图例标记的图形高度。默认高度为 14item_height=20,# 图例关闭时的颜色。默认是 #cccinactive_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. 柱状图相关设置
相关文章:
Python数据可视化 - Pyecharts绘图示例
文章目录 一、Pyecharts简介及安装1. Pyecharts简介2. 安装Pyecharts 二、准备数据三、饼图示例1. 初始化选项配置2. 饼图相关设置3. 全局配置项3.1 标题配置项3.2 图例配置项3.3 提示框配置项3.4 工具箱配置项3.5 视觉映射配置项 4. 系列配置项4.1 标签选项配置4.2 图元样式配…...
Day29
复习日 知识点回顾 类的装饰器装饰器思想的进一步理解:外部修改、动态类方法的定义:内部定义和外部定义 作业:复习类和函数的知识点,写下自己过去29天的学习心得,如对函数和类的理解,对python这门工具的理…...
Python列表全面解析:从入门到精通
文章目录 Python列表全面解析:从入门到精通一、列表基础1. 什么是列表?2. 列表特性总结表 二、列表的基本操作(基础)1. 访问元素2. 修改列表 三、列表的常用方法(基础)1. 添加元素的方法2. 删除元素的方法3. 查找和统计方法4. 排序和反转 四、列表的高级…...
Nacos数据写入流程
在 3 节点的 Nacos 集群中,数据写入流程和主节点(Leader)的角色基于 Nacos 的分布式一致性协议(通常使用 Raft 协议)来实现。以下以 Markdown 格式详细说明 3 节点 Nacos 集群的数据写入流程以及主节点的角色和确定方式…...
《P4551 最长异或路径》
题目描述 给定一棵 n 个点的带权树,结点下标从 1 开始到 n。寻找树中找两个结点,求最长的异或路径。 异或路径指的是指两个结点之间唯一路径上的所有边权的异或。 输入格式 第一行一个整数 n,表示点数。 接下来 n−1 行,给出…...
Ansible模块——文件属性查看,文件或目录创建和属性修改
ansible.builtin.stat 可以查看文件信息。 选项 类型 默认值 描述 pathstrnull 要检查的文件或目录的完整路径(必需)。 followboolfalse 如果是符号链接,是否跟随到目标路径上获取其状态。 get_attributesbooltrue 是否返回扩展属性&#…...
【图像生成大模型】Wan2.1:下一代开源大规模视频生成模型
Wan2.1:下一代开源大规模视频生成模型 引言Wan2.1 项目概述核心技术1. 3D 变分自编码器(Wan-VAE)2. 视频扩散 Transformer(Video Diffusion DiT)3. 数据处理与清洗 项目运行方式与执行步骤1. 环境准备2. 安装依赖3. 模…...
AGI大模型(25):LangChain提示词模版
我们也可以创建prompt template, 并引入一些变量到prompt template中,这样在应用的时候更加灵活。 1 代码实现 # 我们也可以创建prompt template, 并引入一些变量到prompt template中,这样在应用的时候更加灵活 from langchain_core.prompts import ChatPromptTemplate from…...
mybatis中的resultMap的association及collectio的使用
目录 1.reusltmap的说明 2.association的使用 3.collection的使用 4.总结 1.reusltmap的说明 resultmap定义了数据库的结果映射到java对象的规则,resultmap包含4个属性: id: ResultMap 的唯一标识 type: 映射到的 Java 类型(全限定类名或…...
静态网站部署:如何通过GitHub免费部署一个静态网站
GitHub提供的免费静态网站托管服务可以无需担心昂贵的服务器费用和复杂的设置步骤,本篇文章中将一步步解如何通过GitHub免费部署一个静态网站,帮助大家将创意和作品快速展现给世界。 目录 了解基础情况 创建基础站点 在线调试站点 前端项目部署 部署…...
Android 手写签名功能详解:从原理到实践
Android 手写签名功能详解 1. 引言2. 手写签名核心实现:SignatureView 类3. 交互层实现:MainActivity 类4. 布局与配置5. 性能优化与扩展方向 1. 引言 在电子政务、金融服务等移动应用场景中,手写签名功能已成为提升用户体验与业务合规性的关…...
【iOS(swift)笔记-9】WKWebView无法访问网络
对于iOS 在info中添加App Transport Security Settings,然后在App Transport Security Settings里添加Allow Arbitrary Loadstrue 对于macOS 除了上面的操作,还需在项目信息的App Sandbox里有个Network打钩选项...
Adapter适配器模式
Adapter适配器模式是一种结构设计模式,用于解决接口不兼容的问题,通过适配器类,可以将一个类的接口转换为客户渴望的另一个接口,从而使原来无法协作的对象能够一起工作。 角色和职责: 目标接口(Target&…...
七、xlib窗口渲染
文章目录 1.渲染图片2.双缓冲3.混合图片4.渐变窗口 1.渲染图片 在上篇文章中的最后,我们使用libpng加载了一个png图片,并显示到窗口上,但是我们可以看到显示到窗口的图片周边有黑色的背景。原因是在我测试的操作系统下使用xlib创建的窗口默认…...
python中http.cookiejar和http.cookie的区别
在Python中,http.cookiejar和http.cookie(通常指http.cookies模块)是两个不同的模块,它们的主要区别如下: 1. 功能定位 http.cookiejar 用于管理HTTP客户端的Cookie,提供自动化的Cookie存储、发送和接收功…...
架构设计模式:构建健壮、可扩展的 Serverless 应用
架构设计模式:构建健壮、可扩展的 Serverless 应用 到目前为止,我们已经掌握了 Serverless 的基本概念,了解了 FaaS 和 BaaS 如何协同工作,学会了使用框架进行开发部署,并知道了如何监控和排查问题。现在,是时候从“能用”向“好用”迈进了。 仅仅将代码部署到 Lambda 函…...
2- PyTorch
文章目录 1. Overview2. 线性模型 1. Overview 在人的智能中,最经常做的事情是推理和预测,在机器学习中也是如此。我们在以往的算法课中,所接触的穷举、贪心、分治和动规等算法都是由人设计的,而在机器学习中,算法是由…...
MinIO:从入门到精通,解锁云原生存储的奥秘
一、引言:为什么 MinIO 正在重塑存储世界? 在云计算和大数据时代,传统存储系统面临扩展性差、成本高、兼容性不足等挑战。MinIO 凭借其 S3 兼容性、分布式架构、高性能存储 等特性,成为企业构建现代化存储基础设施的首选。 本文…...
【LeetCode 热题100】739:每日温度(详细解析)(Go语言版)
🌡️ LeetCode 739:每日温度(详解 单调栈 多种思路对比) 📌 题目描述 给定一个整数数组 temperatures,表示每天的温度,返回一个数组 answer,其中 answer[i] 是指在第 i 天之后&am…...
Linux学习笔记|GCC编译指令基础|静动态库|makefile
一、GCC 编译指令基础 基本编译命令 gcc -o code code.c和gcc code.c -o code:这两条命令功能相同,都是使用 GCC 编译器将code.c源文件编译成名为code的可执行文件。-o选项用于指定输出文件名,选项位置在源文件前后不影响最终结果。 编译过程…...
【LeetCode 热题100】17:电话号码的字母组合(详细解析)(Go语言版)
☎️ LeetCode 17. 电话号码的字母组合(回溯 DFS 详解) 📌 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。 数字到字母的映射如下(与电话按键相同)…...
C++学习:六个月从基础到就业——C++17:std::optional/variant/any
C学习:六个月从基础到就业——C17:std::optional/variant/any 本文是我C学习之旅系列的第四十七篇技术文章,也是第三阶段"现代C特性"的第九篇,主要介绍C17引入的三个重要工具类型:std::optional、std::varia…...
Go语言中函数 vs 方法
函数(Function):不属于任何类型,是全局可调用的。 方法(Method):绑定在某个类型上的函数,调用时依赖于这个类型的值或指针。 一、函数(Function) func 函数…...
代码随想录算法训练营第六十五天| 图论10—卡码网94. 城市间货物运输 I,95. 城市间货物运输 II
被学校课程轰炸了一周,回过头发现训练营已经要结束了,抓紧时间补完。不过算法这边也很难,感觉每天都是勉强理解在干什么的状态。 94. 城市间货物运输 I 94. 城市间货物运输 I SPFA算法,也是Bellman_ford 队列优化算法 优化原理…...
TDengine 在新能源领域的价值
能源数据的定义 能源数据是指记录和描述能源产业各个方面的信息,包括能源生产、供应、消费、储备、价格、排放以及相关政策和技术的数据。这些数据可以通过各种途径收集和整理,如能源企业的统计报表、政府部门的调查和监测、国际组织的发布数据等。 能…...
浅谈Frida 检测与绕过
目录 ptrace 占位与进程名检测端口检测与 D-Bus 协议通信扫描 /proc 目录(maps、task、fd)定位 so 中的 SVC syscall内存动态释放代码 1. ptrace 占位与进程名检测 检测方式 遍历运行进程列表,检查是否存在 frida-server 或相关进程名&…...
WaterStamp —— 一个实用的网页水印生成器开发记
我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 最近,我和 CodeBuddy 一起完成了一个名为 WaterStamp 的网页水印生成器项目。这个小工具主要用于给…...
【MySQL】存储过程,存储函数,触发器
目录 准备工作 一. 存储过程 1.1.什么是存储过程 1.2.创建存储过程 1.3.创建只显示大于等于指定值的记录的存储过程 1.4.显示,删除存储过程 二. 存储函数 2.1.什么是存储函数 2.2.使用存储函数 2.2.1.使用存储函数之前 2.2.2.使用存储函数计算标准体重 …...
python打卡第29天
知识点回顾 类的装饰器装饰器思想的进一步理解:外部修改、动态类方法的定义:内部定义和外部定义 作业:复习类和函数的知识点,写下自己过去29天的学习心得,如对函数和类的理解,对python这门工具的理解等&…...
vim - v
在 Vim 中,使用 可视模式(Visual Mode) 可以选中文本并进行复制、剪切、粘贴等操作。以下是详细的使用方法: 1. 进入可视模式 命令功能v字符可视模式(按字符选择)V(大写)行可视模式…...
Linux 线程(上)
前言:大家早上中午晚上好!!今天来学习一下linux系统下所谓的线程吧!!! 一、重新理解进程,什么是进程? 1.1 图解 其中黑色虚线部分一整块就是进程,注意:一整…...
# 终端执行 java -jar example.jar 时(example.jar为项目jar包)报错:“没有主清单属性” 的解决方法
终端执行 java -jar example.jar 时(example.jar为项目jar包)报错:“没有主清单属性” 的解决方法 在Java中,一个JAR文件必须包含一个主清单属性(Main-Class属性)才能在命令行中直接运行。如果你在尝试运行…...
4:OpenCV—保存图像
将图像和视频保存到文件 在许多现实世界的计算机视觉应用中,需要保留图像和视频以供将来参考。最常见的持久化方法是将图像或视频保存到文件中。因此,本教程准备解释如何使用 OpenCV C将图像和视频保存到文件中。 将图像保存到文件 可以学习如何保存从…...
[C++面试] const相关面试题
1、非 const 的引用必须指向一个已存在的变量 int main() {int &a 20; // 错误const int &b 30; } 字面量 20 是临时值(右值),没有明确的内存地址。非常量引用(左值引用)不能直接绑定到右值(如…...
#Redis黑马点评#(六)Redis当中的消息队列
目录 Redis当中的消息队列 一 基于List 二 基于PubSub 三 基于Stream 单消费模式 消费者组 Redis当中的消息队列 消息队列,字面意思就是存放消息的队列。最简单的消息队列模型包括3个角色: 消息队列:存储和管理消息,也称为…...
Git基础原理和使用
Git 初识 一、版本管理痛点 在日常工作和学习中,我们经常遇到以下问题: - 通过不断复制文件来保存历史版本(如报告-v1、报告-最终版等) - 版本数量增多后无法清晰记住每个版本的修改内容 - 项目代码管理存在同样问题 二、版本控…...
Java程序员学AI(一)
一、前言 最近刷技术圈,满眼都是 GPT、DeepSeek、QWen 这些 AI 名词。看着同行们在群里聊 AI 写代码、做数据分析,我这个摸了 Java 老程序员突然慌了 —— 再不出手,怕是真要被时代落下了! 作为一个 Java 死忠粉,学 …...
《Python星球日记》 第91天:端到端 LLM 应用(综合项目:医疗文档助手)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、项目概述与需求分析1. 项目背景2. 项目目标3. 技术栈概览二、数据准备与处理1. 文档收集策略2. 文本预处理流程3. 向量化与知识库构建三、模…...
目前主流的AI测试工具推荐
以下是目前备受关注的AI测试工具及平台,涵盖功能测试、视觉测试、性能测试及国产化解决方案等多个领域,结合其核心特性与适用场景进行综合推荐: 一、主流AI测试工具推荐 Testim 核心功能:基于AI的动态元素定位技术,…...
vscode优化使用体验篇(快捷键)
本文章持续更新中 最新更新时间为2025-5-18 1、方法查看方法 1.1当前标签跳到新标签页查看方法实现 按住ctrl 鼠标左键点击方法。 1.2使用分屏查看方法实现(左右分屏) 按住ctrl alt 鼠标左键点击方法。...
uniprot中PTM数据的下载
首先是PTM的介绍: 参考:https://en.wikipedia.org/wiki/Post-translational_modification 蛋白质的翻译后修饰(PTM)通过改变氨基酸残基的化学结构,显著影响其带电性质,从而调控蛋白质的功能、定位和相互作…...
【QGIS二次开发】地图编辑-04
系列目录: 【QGIS二次开发】地图显示与交互-01_qgis二次开发加载地图案例-CSDN博客 【QGIS二次开发】地图显示与交互-02_setlayerlabeling-CSDN博客 【QGIS二次开发】地图符号与色表-03-CSDN博客 4 地图编辑 4.1 添加点要素 功能演示: 运行程序后…...
Qt 信号和槽-核心知识点小结(11)
目录 小结表格索引 disconnect函数 lambda表达式 啥是耦合,啥是内聚 简介:这是Qt信号和槽的最后一篇文章,最主要的是总结该信号和槽的核心知识点。以及该核心知识点的文章索引(表格太长了,手机可能看不完整&#…...
React响应事件中onClick={handleClick} 的结尾有没有小括号的区别
你可以通过在组件中声明 事件处理 函数来响应事件: function MyButton() {function handleClick() {alert(You clicked me!);}return (<button onClick{handleClick}>点我</button>);} 注意,onClick{handleClick} 的结尾没有小括号&#x…...
React-Query使用react-testing-library进行测试
1.测试react-query首先我们必须得拥有queryClient,所以我们初始化queryClient,因为默认是重试三次,这意味着如果想测试错误的查询,测试可能会超时。所以可以在初始化时关闭 const createWrapper () > {const queryClient new…...
软件设计师CISC与RISC考点分析——求三连
一、考点分值占比与趋势分析(CISC与RISC) 综合知识分值统计表 年份考题数量分值分值占比考察重点2018111.33%指令特征对比2019111.33%控制器实现方式2020222.67%寄存器数量/流水线技术2021111.33%寻址方式对比2022222.67%指令复杂度/译码方式2023111.3…...
GO语言(一期)常用关键字总结
GO语言(主题一)常用关键字总结 我们这里列出一些go语言关键字,方便各位友友们检查一下自己的学习效果,也方便友友们学习查询。 break default func interface select case defer go map …...
Ubuntu搭建NFS服务器的方法
0 工具 Ubuntu 18.041 Ubuntu搭建NFS服务器的方法 在Ubuntu下搭建NFS(网络文件系统)服务器可以让我们像访问本地文件一样访问Ubuntu上的文件,例如可以把开发板的根文件系统放到NFS服务器目录下方便调试。 1.1 安装nfs-kernel-server&#…...
京东商品详情API接口开发指南(含Java/Python实现)
接口概述 京东开放平台提供了商品详情查询接口,开发者可以通过SKUID获取商品的详细信息,包括标题、价格、图片、促销信息等。该接口需要申请API权限和认证密钥。 点击获取key和secret 接口特点 支持批量查询(最多20个SKU)返回J…...
二叉树构造:从前序、中序与后序遍历序列入手
目录 引言 从前序与中序遍历序列构造二叉树(题目 105) 解题思路 举例说明 从中序与后序遍历序列构造二叉树(题目 106) 解题思路 举例说明 总结 引言 二叉树的遍历与构造是算法领域中的经典问题。LeetCode 上的“从前序与中…...