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

添加常量竖线时的像素偏差问题:实为代码错误及修正方案

问题:无坐标轴条形图中Rule竖线的像素偏差修复方案

问题描述

我创建无坐标轴的条形图,仅通过rule标记添加一条常量竖线时,出现了对齐方面的像素偏差问题,能否修复?

我已用Snagit箭头标注出该“像素偏差”,附图显示竖线与条形图的基准位置存在错位。

更新说明

参考Davide的评论,此现象并非故障,而是代码问题。将竖线的x值设为0而非100后,即可正常显示。

原始配置代码

{
"width": 200,
"height": 200, 
"params": [
  
  {"name": "colGood", "value": "#1b9e77"},
  {"name": "colBad", "value": "#7570b3"}
],
"data": {"name": "thedata",
    "values": [
      {"region": "Europe" , "Act": 11000, "PY": 9000, "Plan": 10000},
      {"region": "Asia" , "Act": 17000, "PY": 16000, "Plan": 18000},
      {"region": "Americas" , "Act": 19000, "PY": 14000, "Plan": 12000},
      {"region": "Australia" , "Act": 13000, "PY": 14000, "Plan": 12000}
    ]
  },
"transform": [
  {"calculate": "datum['Act'] - datum['Plan']" , "as": "deltaAct_Plan"},
  {"calculate": "datum['deltaAct_Plan'] >= 0 ? datum['Act'] - datum['deltaAct_Plan'] : datum['Act']" , "as": "deltaAct_Plan_Start"},
  {"calculate": "datum['deltaAct_Plan'] > 0 ? datum['Act'] : datum['Plan']" , "as": "deltaAct_Plan_End"},
  {"calculate": "(datum['Act'] / datum['Plan']) - 1" , "as": "deltaAct_Plan_Perc"}
],
"layer": [
    {
      "mark": {
        "type": "bar",
        "height": {"band": 0.8}
      },
      "encoding": {
        "y": {"field": "region", "type": "nominal",
          "axis": {
              "title": null,
              
              "labels": false,
              "domain": false,
              "ticks": false,
              "grid": false
          }
        },
        "x": {"field": "deltaAct_Plan", "type": "quantitative",
          "axis": {
            "title": null ,
            "domain": false,
            "grid": false}
        },
        "color": {"value": {"expr": "datum['deltaAct_Plan'] < 0 ? colBad : colGood"}}
      }
    },
    { "description": "the horzontal line called y-axis",
      "mark": { 
        "type": "rule", 
        "color": "darkgrey", 
        "size": 1 },
      "encoding": {"x": {"datum": 100}}
    }
]
}

修复方案

找到配置中layer数组里的rule标记部分,将"encoding": {"x": {"datum": 100}}修改为"encoding": {"x": {"datum": 0}},即可让竖线与条形图基准位置对齐,解决像素偏差问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:02:29