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

Apache Superset图表Y轴自定义数值格式:信用评级映射问题咨询

Apache Superset信用评级Y轴标签自定义方案解答

1. 映射表+自定义数字格式方案是否可行?

完全可行。具体落地可以这么做:

  • 在数据库里建个rating_mapping映射表,存好1-21对应的信用评级标签(比如1对应AAA,2对应AA+);
  • 把原始数据集和这个映射表做关联,确保每个数字评分都能匹配到对应的标签;
  • 进入图表配置后,针对Y轴设置自定义格式——如果是ECharts类图表,还能通过自定义JS代码替换标签,把数字值换成对应的评级文字。

2. 更简便的实现方式?

有两种更省事的路子:

  • 直接在图表里写硬编码映射:要是评级规则固定死了,不用折腾数据库建表,直接在Y轴的标签格式化里写个JS函数就行。比如在ECharts的Y轴配置里加这段代码:
    axisLabel: {
      formatter: function(value) {
        const ratingMap = {
          1: 'AAA', 2: 'AA+', 3: 'AA', 4: 'AA-',
          5: 'A+', 6: 'A', 7: 'A-', 8: 'BBB+',
          9: 'BBB', 10: 'BBB-', 11: 'BB+', 12: 'BB',
          13: 'BB-', 14: 'B+', 15: 'B', 16: 'B-',
          17: 'CCC+', 18: 'CCC', 19: 'CCC-', 20: 'CC', 21: 'C'
        };
        return ratingMap[value] || value;
      }
    }
    
    这种方式不用改任何数据,直接在图表层面搞定,适合规则不变的场景。
  • 用Superset计算列转标签:在数据集里加个计算列,用CASE WHEN语句直接把数字转成评级标签,比如:
    CASE 
      WHEN score = 1 THEN 'AAA'
      WHEN score = 2 THEN 'AA+'
      -- 补全1-21的对应规则
      WHEN score = 21 THEN 'C'
      ELSE score::TEXT
    END AS rating_label
    
    之后图表计算平均值用原始的score列,显示标签用这个新的rating_label列,既保证平均计算准确,又能显示对应的评级文字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:12:39