You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Panel for Python将Gauge图表改为半圆并设置彩色样式

如何将Panel+ECharts的标准圆形仪表盘改为彩色半圆样式?

我正在使用Python的Panel框架生成图表,已通过官网示例的代码生成了一个Gauge图表,代码如下:

import panel as pn
pn.extension('echarts')

def main():
    gauge = {
        'tooltip': {
            'formatter': '{a} <br/>{b} : {c}%'
        },
        'series': [
            {
            'name': 'Incidents',
            'type': 'gauge',
            'detail': {'formatter': '{value}%'},
            'data': [{'value': 50, 'name': f'Stable'}]
            }
        ]
    }
    gauge_pane = pn.pane.ECharts(gauge, width=400, height=400)
    gauge_pane.save(filename="incidents.png")

if __name__ == '__main__':
    main()

当前生成的是标准圆形样式,希望修改为彩色半圆样式,请问该如何调整代码?


解决方案

要实现彩色半圆仪表盘,需要在ECharts的配置中添加角度范围、分段颜色等关键配置项,以下是修改后的完整代码:

import panel as pn
pn.extension('echarts')

def main():
    gauge = {
        'tooltip': {
            'formatter': '{a} <br/>{b} : {c}%'
        },
        'series': [
            {
                'name': 'Incidents',
                'type': 'gauge',
                # 设置仪表盘为上半圆:起始角度180°,结束角度0°
                'startAngle': 180,
                'endAngle': 0,
                # 调整仪表盘半径,适配半圆显示
                'radius': '75%',
                # 设置仪表盘轴线的分段彩色样式
                'axisLine': {
                    'lineStyle': {
                        'width': 15,
                        # 分段颜色,按百分比区间定义
                        'color': [
                            [0.3, '#55FF55'],
                            [0.7, '#FFDD55'],
                            [1, '#FF5555']
                        ]
                    }
                },
                # 调整指针样式,适配半圆
                'pointer': {
                    'length': '60%',
                    'width': 3
                },
                # 调整数值显示位置
                'detail': {
                    'formatter': '{value}%',
                    'offsetCenter': [0, '60%']
                },
                'data': [{'value': 50, 'name': 'Stable'}]
            }
        ]
    }
    gauge_pane = pn.pane.ECharts(gauge, width=400, height=400)
    gauge_pane.save(filename="incidents_semicircle.png")

if __name__ == '__main__':
    main()

关键配置说明

  • startAngle: 180 和 endAngle: 0:将仪表盘的绘制范围从整圆改为上半圆
  • axisLine.lineStyle.color:定义仪表盘轴线的分段颜色,数组中每个元素是[百分比阈值, 颜色],可根据需求调整区间和颜色
  • radius:调整仪表盘的大小比例,避免半圆超出画布范围
  • pointer:调整指针的长度和宽度,让视觉效果更协调
  • detail.offsetCenter:调整数值文本的位置,适配半圆的布局

内容的提问来源于stack exchange,提问作者Europa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:05:43