【问题标题】:How do I format currency in Vega-Lite?如何在 Vega-Lite 中格式化货币?
【发布时间】:2021-12-06 14:35:52
【问题描述】:

我正在尝试在 Vega-Lite 编辑器中将值格式化为货币。我正在尝试复制文档,但遇到了一个奇怪的错误。 Y轴是数值。传入格式化字符串会给出“预期值”。

这是 json:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "description": "Protocol Chart",
  "width": 500,
  "height": 225,
  "data": {
        "values": [
        {
            "asset": "eth",
            "time": "2021-06-15T00:00:00Z",
            "ReferenceRateUSD": "2577.04473863238"
        },
        {
            "asset": "eth",
            "time": "2021-06-16T00:00:00Z",
            "ReferenceRateUSD": "2552.74103641146"
        },
        {
            "asset": "eth",
            "time": "2021-06-17T00:00:00Z",
            "ReferenceRateUSD": "2360.99938690824"
        }
    ]
  },
  "config": {
        "view": {
            "stroke": "transparent"
        }
  },
  "mark": "line",
    "encoding": {
        "x": {
            "axis": {
                "domainColor": "#DDD",
                "grid": false, 
                "labelColor": "#AEAEAE", 
                "ticks": false, 
                "labelPadding": 10
            }, 
            "field": "time", 
            "type": "temporal", 
            "title": ""
        },
        "y": {
            "axis": {
                "labelOffset": 2,
                "domainColor": "white",
                "labelColor": "#AEAEAE", 
                "ticks": false, 
                "labelPadding": 10,
                "format": '$.2f'
            }, 
            "field": "ReferenceRateUSD", 
            "type": "quantitative", 
            "title": "", 
            "scale": {
                "zero": false
            }
        },
        "color": {
            "field": "doesntmatter", 
            "type": "nominal", 
            "legend": null,
            "scale": {
                "range": ["#91DB97"]
            }
        }
  }
}

我在这里缺少什么?如何让它接受我的格式化字符串?

【问题讨论】:

    标签: data-visualization vega-lite vega


    【解决方案1】:

    "$.2f" 看起来是正确的d3-format 货币字符串,但请注意,这仅在关联的formatType"number" 时才有效(请参阅axis label docs)。

    由于您没有包含您所看到问题的完整reproducible example,我只能冒险猜测您的数据类型不是数字,这就是格式化失败的原因。如果不是这种情况,我建议您编辑您的问题,以提供您看到的错误的完整示例。


    编辑:您的完整示例似乎可以在当前版本的 vega/vega-lite (view in editor) 上正常工作:

    也许您需要更新您的 vega/vega-lite 库?

    【讨论】:

    • 我更新了。数据本身是数字的,在我看到的四个定量选项中似乎是最正确的,但我一定是错误的......
    • 谢谢 - 请参阅编辑后的答案。
    • 谢谢,不知道是什么问题。包含所有数据点(不仅仅是三个)的版本破坏了编辑器,但事实证明它可以在我的代码中工作,所以不用担心。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    相关资源
    最近更新 更多