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

文章目录

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

from pyecharts.charts import Gauge
from pyecharts import options as opts

2. add函数

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

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__,用于初始化类的属性。每行代码都是一个参数,包含了参数名、类型注解和默认值。这些参数用于配置仪表盘图中标题的样式和选项。

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. 仪表盘数据内容配置

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

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. 仪表盘进度条配置

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. 仪表盘指针指针配置

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

7. 仪表盘标记点配置

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. 基础仪表盘图

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. 改变轮盘内的字体

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

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=段数参数修改刻度分割段数:

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%"参数修改刻度分割段数:

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()

运行结果:

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年9月28日
下一篇 2023年9月28日

相关推荐