100天精通Python(可视化篇)——第101天:Pyecharts绘制多种炫酷仪表盘图参数说明+代码实战

文章目录

  • 专栏导读
  • 一、仪表盘图介绍
    • [1. 仪表盘图是什么?](#1. 仪表盘图是什么?)
    • [2. 仪表盘图应用场景](#2. 仪表盘图应用场景)
  • 二、仪表盘图类配置选项
    • [1. 导包](#1. 导包)
    • [2. add函数](#2. add函数)
    • [3. 仪表盘标题配置](#3. 仪表盘标题配置)
    • [4. 仪表盘数据内容配置](#4. 仪表盘数据内容配置)
    • [5. 仪表盘进度条配置](#5. 仪表盘进度条配置)
    • [6. 仪表盘指针指针配置](#6. 仪表盘指针指针配置)
    • [7. 仪表盘标记点配置](#7. 仪表盘标记点配置)
  • 三、仪表盘图实战
    • [1. 基础仪表盘图](#1. 基础仪表盘图)
    • [2. 改变轮盘内的字体](#2. 改变轮盘内的字体)
    • [3. 修改仪表盘不同区间颜色](#3. 修改仪表盘不同区间颜色)
    • [4. 修改仪表盘刻度分割段数](#4. 修改仪表盘刻度分割段数)
    • [5. 修改仪表盘半径大小](#5. 修改仪表盘半径大小)

专栏导读

🔥🔥本文已收录于 《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

  • 优点 :订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)
  • 专栏福利 :简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等

一、仪表盘图介绍

1. 仪表盘图是什么?

仪表盘图(Dashboard)是一种数据可视化工具,用于以图表、表格、指标等形式展示关键数据和指标,以便用户能够快速了解和分析数据的状态、趋势和关联关系。它通常以仪表盘的形式呈现,类似于汽车仪表盘上的指示器。

仪表盘图的设计旨在提供直观、简洁和易于理解的数据展示,帮助用户快速捕捉到关键信息和洞察。通过仪表盘图,用户可以实时监测业务指标、数据趋势和关键绩效指标,从而做出更加明智的决策。

2. 仪表盘图应用场景

仪表盘图在各个领域都有广泛的应用,下面列举了一些常见的应用场景:

  1. 业务分析和绩效管理:仪表盘图可以用于监测和管理关键业务指标和绩效指标。例如,销售团队可以使用仪表盘图来追踪销售额、客户满意度和销售渠道的效果,以便做出调整和优化策略。

  2. 市场营销和广告效果分析:仪表盘图可以用于监测市场活动和广告效果。市场营销团队可以使用仪表盘图来追踪市场份额、广告点击率和转化率等指标,以便评估市场营销策略的有效性。

  3. 金融管理和投资决策:仪表盘图可以用于监测投资组合的绩效和风险。投资者可以使用仪表盘图来追踪股票、债券和基金的回报率、波动性和相关性等指标,以便做出投资决策。

  4. 运营监控和供应链管理:仪表盘图可以用于监测生产和供应链的运营情况。运营团队可以使用仪表盘图来追踪生产效率、库存水平和交货准时率等指标,以便优化运营流程和供应链管理。

  5. 客户服务和用户体验分析:仪表盘图可以用于监测客户服务和用户体验的指标。客户服务团队可以使用仪表盘图来追踪客户满意度、服务响应时间和问题解决率等指标,以便改进客户服务和用户体验。

  6. IT系统监控和网络安全:仪表盘图可以用于监测和管理IT系统的性能和网络安全。IT团队可以使用仪表盘图来追踪系统的可用性、响应时间和网络攻击情况,以便及时发现和解决问题。

总之,仪表盘图在各个领域的数据分析和决策过程中都有广泛的应用。它可以帮助用户快速了解关键数据和指标,做出明智的决策,并实时监测和管理业务和运营的状态。

二、仪表盘图类配置选项

1. 导包

python 复制代码
from pyecharts.charts import Gauge
from pyecharts import options as opts

2. add函数

这是一个函数的定义,函数名为add,包含多个参数和默认值。每个参数都有相应的类型注释和默认值说明。该函数用于向仪表盘图中添加数据,并配置相关的样式和选项。

python 复制代码
def add(
        self,
        series_name: str,  # 系列名称,字符串类型
        data_pair: types.Sequence,  # 数据对,序列类型
        *,
        min_: types.Numeric = 0,  # 最小值,默认为0
        max_: types.Numeric = 100,  # 最大值,默认为100
        split_number: types.Numeric = 10,  # 分割段数,默认为10
        center: types.Sequence = None,  # 中心位置,默认为空
        radius: types.Union[types.Numeric, str] = "75%",  # 半径,默认为"75%"
        start_angle: types.Numeric = 225,  # 起始角度,默认为225
        end_angle: types.Numeric = -45,  # 结束角度,默认为-45
        is_clock_wise: bool = True,  # 是否顺时针,默认为True
        title_label_opts: types.GaugeTitle = opts.GaugeTitleOpts(  # 仪表盘标题配置,默认为指定的配置
            offset_center=["0%", "20%"],
        ),
        detail_label_opts: types.GaugeDetail = opts.GaugeDetailOpts(  # 仪表盘详细标签配置,默认为指定的配置
            formatter="{value}%",
            offset_center=["0%", "40%"],
        ),
        progress: types.GaugeProgress = opts.GaugeProgressOpts(),  # 仪表盘进度配置,默认为指定的配置
        pointer: types.GaugePointer = opts.GaugePointerOpts(),  # 仪表盘指针配置,默认为指定的配置
        anchor: types.GaugeAnchor = opts.GaugeAnchorOpts(),  # 仪表盘锚点配置,默认为指定的配置
        tooltip_opts: types.Tooltip = None,  # 提示框配置,默认为空
        axisline_opts: types.AxisLine = None,  # 坐标轴线配置,默认为空
        axistick_opts: types.AxisTick = None,  # 坐标轴刻度配置,默认为空
        axislabel_opts: types.AxisLabel = None,  # 坐标轴标签配置,默认为空
        itemstyle_opts: types.ItemStyle = None,  # 数据项样式配置,默认为空
    )

3. 仪表盘标题配置

这是一个名为GaugeTitleOpts的类,它继承自BasicOpts类。类中定义了一个构造方法__init__,用于初始化类的属性。每行代码都是一个参数,包含了参数名、类型注解和默认值。这些参数用于配置仪表盘图中标题的样式和选项。

python 复制代码
class GaugeTitleOpts(BasicOpts):
    def __init__(
        self,
        is_show: bool = True,  # 是否显示标题,默认为True
        offset_center: Sequence = None,  # 标题的偏移中心位置,默认为空
        color: str = "#333",  # 标题的颜色,默认为"#333"
        font_style: str = "normal",  # 标题的字体样式,默认为"normal"
        font_weight: str = "normal",  # 标题的字体粗细,默认为"normal"
        font_family: str = "sans-serif",  # 标题的字体族,默认为"sans-serif"
        font_size: Numeric = 15,  # 标题的字体大小,默认为15
        background_color: str = "transparent",  # 标题的背景颜色,默认为"transparent"
        border_color: str = "transparent",  # 标题的边框颜色,默认为"transparent"
        border_width: Numeric = 0,  # 标题的边框宽度,默认为0
        border_radius: Numeric = 0,  # 标题的边框圆角半径,默认为0
        padding: Numeric = 0,  # 标题的内边距,默认为0
        shadow_color: Optional[str] = "transparent",  # 标题的阴影颜色,默认为"transparent"
        shadow_blur: Optional[Numeric] = 0,  # 标题的阴影模糊大小,默认为0
        shadow_offset_x: Numeric = 0,  # 标题的阴影水平偏移量,默认为0
        shadow_offset_y: Numeric = 0,  # 标题的阴影垂直偏移量,默认为0
        overflow: Optional[str] = "none",  # 标题的溢出处理方式,默认为"none"
        rich: Optional[dict] = None,  # 标题的富文本样式配置,默认为空
        is_value_animation: bool = True,  # 是否开启标题数值动画效果,默认为True
    )

4. 仪表盘数据内容配置

配置仪表盘图的数据内容:

python 复制代码
class GaugeDetailOpts(BasicOpts):
    def __init__(
        self,
        is_show: bool = True,  # 是否显示仪表盘详情
        background_color: str = "transparent",  # 背景颜色
        border_width: Numeric = 0,  # 边框宽度
        border_color: str = "transparent",  # 边框颜色
        offset_center: Sequence = None,  # 仪表盘详情的偏移中心
        formatter: Optional[JSFunc] = None,  # 格式化函数
        color: str = "#464646",  # 字体颜色
        font_style: str = "normal",  # 字体样式
        font_weight: str = "normal",  # 字体粗细
        font_family: str = "sans-serif",  # 字体类型
        font_size: Numeric = 15,  # 字体大小
        border_radius: Numeric = 0,  # 边框圆角
        padding: Numeric = 0,  # 内边距
        shadow_color: Optional[str] = "transparent",  # 阴影颜色
        shadow_blur: Optional[Numeric] = 0,  # 阴影模糊度
        shadow_offset_x: Numeric = 0,  # 阴影水平偏移量
        shadow_offset_y: Numeric = 0,  # 阴影垂直偏移量
        overflow: Optional[str] = "none",  # 文字超出部分的处理方式
        rich: Optional[dict] = None,  # 富文本样式
        is_value_animation: bool = True,  # 是否开启数值动画效果
    )

5. 仪表盘进度条配置

python 复制代码
class GaugeProgressOpts(BasicOpts):
    def __init__(
        self,
        is_show: bool = False,  # 是否显示仪表盘进度条,默认为False不显示
        is_overlap: bool = True,  # 是否允许仪表盘进度条重叠,默认为True允许重叠
        width: Numeric = 10,  # 仪表盘进度条的宽度,默认为10
        is_round_cap: bool = False,  # 是否使用圆形的末端样式,默认为False不使用
        is_clip: bool = False,  # 是否裁剪超出仪表盘范围的进度条,默认为False不裁剪
        itemstyle_opts: Union[ItemStyleOpts, dict, None] = None,  # 进度条样式选项,可以是ItemStyleOpts对象、字典或None,默认为None
    )

6. 仪表盘指针指针配置

python 复制代码
class GaugePointerOpts(BasicOpts):
    def __init__(
        self,
        is_show: bool = True,  # 是否显示仪表盘指针,默认为True显示
        length: Union[str, Numeric] = "80%",  # 仪表盘指针的长度,默认为"80%"
        width: Numeric = 8,  # 仪表盘指针的宽度,默认为8
    )

7. 仪表盘标记点配置

python 复制代码
class GaugeAnchorOpts(BasicOpts):
    def __init__(
        self,
        is_show: bool = True,  # 是否显示标记点
        is_show_above: bool = False,  # 是否显示在仪表盘上方
        size: Numeric = 6,  # 标记点的大小
        icon: str = "circle",  # 标记点的形状
        offset_center: Optional[Sequence] = None,  # 标记点相对于仪表盘中心的偏移量
        is_keep_aspect: bool = False,  # 是否保持标记点的纵横比
        itemstyle_opts: Union[ItemStyleOpts, dict, None] = None,  # 标记点的样式选项
    ):

三、仪表盘图实战

1. 基础仪表盘图

python 复制代码
import pyecharts.options as opts
from pyecharts.charts import Gauge


c = (
    Gauge()  # 创建一个Gauge对象
    .add("", [("完成率", 66.6)])  # 添加系列数据,完成率为66.6%
    .set_global_opts(title_opts=opts.TitleOpts(title="基础仪表盘图"))  # 设置全局配置项,包括标题
)

# 保存为HTML文件
c.render("基础仪表盘图.html")

# 在Jupyter Notebook中显示漏斗图
c.render_notebook()

运行结果:

2. 改变轮盘内的字体

python 复制代码
import pyecharts.options as opts
from pyecharts.charts import Gauge


c = (
    Gauge()  # 创建一个Gauge对象
    .add("业务指标", [("完成率", 66.6)],# 添加系列数据,完成率为66.6%
         # 给标题标签设置选项
         title_label_opts=opts.LabelOpts(
             font_size=40,  # 设置字体大小为40
             color="red",  # 设置字体颜色为红色
             font_family="Microsoft YaHei"  # 设置字体为"Microsoft YaHei"
         ),
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="改变轮盘内的字体"))  # 设置全局配置项,包括标题

)

# 保存为HTML文件
c.render("改变轮盘内的字体.html")

# 在Jupyter Notebook中显示漏斗图
c.render_notebook()

运行结果:

3. 修改仪表盘不同区间颜色

linestyle_opts 中,color 的可选颜色有以下几种:

  1. 使用十六进制颜色码:例如 "#67e0e3""#37a2da""#fd666d"
  2. 使用 RGB 颜色值:例如 (0, 255, 0)(255, 0, 0)(0, 0, 255)
  3. 使用 RGBA 颜色值:例如 (0, 255, 0, 0.5)(255, 0, 0, 0.7)(0, 0, 255, 1)
  4. 使用颜色名称:例如 "red""blue""green"

除了单一颜色外,还可以使用渐变色来设置 color。渐变色用于在图形中创建平滑的过渡效果,可以使用 (位置, 颜色) 的形式来设置渐变色。其中,位置 是一个介于 0 到 1 之间的数值,表示颜色在渐变中的位置,颜色 可以是任意一种上述的颜色表示方法。

linestyle_opts 中,使用渐变色的示例为 color=[(0.3, "#67e0e3"), (0.7, "#37a2da"), (1, "#fd666d")],表示从位置 0 到位置 0.3 使用颜色 #67e0e3,从位置 0.3 到位置 0.7 使用颜色 #37a2da,从位置 0.7 到位置 1 使用颜色 #fd666d

python 复制代码
import pyecharts.options as opts
from pyecharts.charts import Gauge


c = (
    Gauge()  # 创建一个Gauge对象
    .add("业务指标", [("完成率", 66.6)],# 添加系列数据,完成率为66.6%
         # 创建一个 AxisLineOpts 对象,并设置 linestyle_opts 参数
         axisline_opts=opts.AxisLineOpts(
             linestyle_opts=opts.LineStyleOpts(
                 color=[(0.3, "#67e0e3"), (0.7, "#37a2da"), (1, "#fd666d")], width=10
             )
         )
         # AxisLineOpts 对象用于设置坐标轴线的样式
         # linestyle_opts 参数用于设置线条的样式,包括颜色和宽度
         # color 参数是一个列表,用于设置线条的颜色,列表中的每个元素都是一个元组,元组的第一个元素表示颜色的位置,第二个元素表示颜色的值
         # 在这个例子中,线条的颜色在位置 0.3 处为 "#67e0e3",在位置 0.7 处为 "#37a2da",在位置 1 处为 "#fd666d"
         # width 参数用于设置线条的宽度,这里设置为 10
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="不同颜色仪表盘图"))  # 设置全局配置项,包括标题

)

# 保存为HTML文件
c.render("不同颜色仪表盘图.html")

# 在Jupyter Notebook中显示漏斗图
c.render_notebook()

运行结果:

4. 修改仪表盘刻度分割段数

通过在add函数中添加split_number=段数参数修改刻度分割段数:

python 复制代码
import pyecharts.options as opts
from pyecharts.charts import Gauge


c = (
    Gauge()  # 创建一个Gauge对象
    .add("业务指标",
         [("完成率", 66.6)],# 添加系列数据,完成率为66.6%
        split_number=5, # 修改刻度分割段数
         # 创建一个 AxisLineOpts 对象,并设置 linestyle_opts 参数
         axisline_opts=opts.AxisLineOpts(
             linestyle_opts=opts.LineStyleOpts(
                 color=[(0.3, "#67e0e3"), (0.7, "#37a2da"), (1, "#fd666d")], width=10
             )
         )
         # AxisLineOpts 对象用于设置坐标轴线的样式
         # linestyle_opts 参数用于设置线条的样式,包括颜色和宽度
         # color 参数是一个列表,用于设置线条的颜色,列表中的每个元素都是一个元组,元组的第一个元素表示颜色的位置,第二个元素表示颜色的值
         # 在这个例子中,线条的颜色在位置 0.3 处为 "#67e0e3",在位置 0.7 处为 "#37a2da",在位置 1 处为 "#fd666d"
         # width 参数用于设置线条的宽度,这里设置为 10
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="不同颜色仪表盘图"))  # 设置全局配置项,包括标题

)

# 保存为HTML文件
c.render("不同颜色仪表盘图.html")

# 在Jupyter Notebook中显示漏斗图
c.render_notebook()

运行结果,和上一个图对应可以发现单数段数刻度没有了:

5. 修改仪表盘半径大小

通过在add函数中添加radius="50%"参数修改刻度分割段数:

python 复制代码
import pyecharts.options as opts
from pyecharts.charts import Gauge


c = (
    Gauge()  # 创建一个Gauge对象
    .add("业务指标",
         [("完成率", 66.6)],# 添加系列数据,完成率为66.6%
         radius="50%", # 修改仪表盘半径
         # 创建一个 AxisLineOpts 对象,并设置 linestyle_opts 参数
         axisline_opts=opts.AxisLineOpts(
             linestyle_opts=opts.LineStyleOpts(
                 color=[(0.3, "#67e0e3"), (0.7, "#37a2da"), (1, "#fd666d")], width=10
             )
         )
         # AxisLineOpts 对象用于设置坐标轴线的样式
         # linestyle_opts 参数用于设置线条的样式,包括颜色和宽度
         # color 参数是一个列表,用于设置线条的颜色,列表中的每个元素都是一个元组,元组的第一个元素表示颜色的位置,第二个元素表示颜色的值
         # 在这个例子中,线条的颜色在位置 0.3 处为 "#67e0e3",在位置 0.7 处为 "#37a2da",在位置 1 处为 "#fd666d"
         # width 参数用于设置线条的宽度,这里设置为 10
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="不同颜色仪表盘图"))  # 设置全局配置项,包括标题

)

# 保存为HTML文件
c.render("不同颜色仪表盘图.html")

# 在Jupyter Notebook中显示漏斗图
c.render_notebook()

运行结果:

相关推荐
爱吃生蚝的于勒3 分钟前
C语言最简单的扫雷实现(解析加原码)
c语言·开发语言·学习·计算机网络·算法·游戏程序·关卡设计
Ai 编码助手6 分钟前
Go语言 实现将中文转化为拼音
开发语言·后端·golang
hummhumm9 分钟前
第 12 章 - Go语言 方法
java·开发语言·javascript·后端·python·sql·golang
hummhumm9 分钟前
第 8 章 - Go语言 数组与切片
java·开发语言·javascript·python·sql·golang·database
何曾参静谧9 分钟前
「QT」文件类 之 QDir 目录类
开发语言·qt
何曾参静谧11 分钟前
「QT」文件类 之 QTemporaryDir 临时目录类
开发语言·qt
杜杜的man13 分钟前
【go从零单排】Directories、Temporary Files and Directories目录和临时目录、临时文件
开发语言·后端·golang
qq_3089574714 分钟前
Gin 框架入门(GO)-1
开发语言·golang·gin
互联网杂货铺31 分钟前
基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)
自动化测试·软件测试·python·selenium·测试工具·单元测试·测试用例
myheartgo-on1 小时前
PySpark——Python与大数据
大数据·python·信息可视化