gpt4 book ai didi

javascript - 如何在Vega中的标签中添加像 "%"这样的符号?

转载 作者:行者123 更新时间:2023-12-03 03:58:43 25 4
gpt4 key购买 nike

我有以下代码:

{
"$schema": "https://vega.github.io/schema/vega/v3.0.json",
"width": 700,
"height": 100,
"padding": 5,
"data": [
{
"name": "table",
"values": [
{"category": "MOYENNE","position": 0,"value": 91},
{"category": "MOYENNE","position": 1,"value": 9}
]
}
],
"scales": [
{
"name": "yscale",
"type": "band",
"domain": {"data": "table","field": "category"},
"range": "height"
},
{
"name": "xscale",
"type": "linear",
"domain": {"data": "table","field": "value"},
"range": "width",
"round": true,
"zero": true,
"nice": true
},
{
"name": "color",
"type": "ordinal",
"domain": {"data": "table","field": "position"},
"range": ["#C8E6C9", "#FF8A65"]
}
],
"axes": [
{
"orient": "left",
"scale": "yscale",
"tickSize": 0,
"labelPadding": 4,
"zindex": 1
}
],
"marks": [
{
"type": "group",
"from": {
"facet": {
"data": "table",
"name": "facet",
"groupby": "category"
}
},
"encode": {
"enter": {"y": {"scale": "yscale","field": "category"}}
},
"signals": [{"name": "height","update": "bandwidth('yscale')"}],
"scales": [
{
"name": "pos",
"type": "band",
"range": "height",
"domain": {"data": "facet","field": "position"}
}
],
"marks": [
{
"name": "bars",
"from": {"data": "facet"},
"type": "rect",
"encode": {
"enter": {
"y": {"scale": "pos","field": "position"},
"height": {"scale": "pos","band": 1},
"x": {"scale": "xscale","field": "value"},
"x2": {"scale": "xscale","value": 0},
"fill": {"scale": "color","field": "position"}
}
}
},
{
"type": "text",
"from": {"data": "bars"},
"encode": {
"enter": {
"x": {"field": "x2","offset": 15},
"y": {
"field": "y",
"offset": {"field": "height","mult": 0.5}
},
"fill": {"value": "black"},
"align": {"value": "right"},
"baseline": {"value": "middle"},
"text": {"field": "datum.value"}
}
}
}
]
}
]
}

我只想在标签中添加 % 以获得 91% 和 9%。

我认为这是在最后一行:“text”:{“field”:“datum.value”},但我不能只执行以下操作:“text”:{“field”:“datum.value”} value"+ "%"} 或类似的东西...

有人可以帮我吗?预先非常感谢您:)

最佳答案

我不完全确定这是最佳实践,但它确实有效并且基于 format 的 Vega 表达式文档.

{
"$schema": "https://vega.github.io/schema/vega/v3.0.json",
"width": 700,
"height": 100,
"padding": 5,
"data": [
{
"name": "table",
"values": [
{"category": "MOYENNE","position": 0,"value": 91},
{"category": "MOYENNE","position": 1,"value": 9}
],
"transform": [
{
"type": "formula",
"expr": "format(datum.value/100,'0.0p')",
"as": "percentvalue"
}
]
}
],
"scales": [
{
"name": "yscale",
"type": "band",
"domain": {"data": "table","field": "category"},
"range": "height"
},
{
"name": "xscale",
"type": "linear",
"domain": {"data": "table","field": "value"},
"range": "width",
"round": true,
"zero": true,
"nice": true
},
{
"name": "color",
"type": "ordinal",
"domain": {"data": "table","field": "position"},
"range": ["#C8E6C9", "#FF8A65"]
}
],
"axes": [
{
"orient": "left",
"scale": "yscale",
"tickSize": 0,
"labelPadding": 4,
"zindex": 1
}
],
"marks": [
{
"type": "group",
"from": {
"facet": {
"data": "table",
"name": "facet",
"groupby": "category"
}
},
"encode": {
"enter": {"y": {"scale": "yscale","field": "category"}}
},
"signals": [{"name": "height","update": "bandwidth('yscale')"}],
"scales": [
{
"name": "pos",
"type": "band",
"range": "height",
"domain": {"data": "facet","field": "position"}
}
],
"marks": [
{
"name": "bars",
"from": {"data": "facet"},
"type": "rect",
"encode": {
"enter": {
"y": {"scale": "pos","field": "position"},
"height": {"scale": "pos","band": 1},
"x": {"scale": "xscale","field": "value"},
"x2": {"scale": "xscale","value": 0},
"fill": {"scale": "color","field": "position"}
}
}
},
{
"type": "text",
"from": {"data": "bars"},
"encode": {
"enter": {
"x": {"field": "x2","offset": 15},
"y": {
"field": "y",
"offset": {"field": "height","mult": 0.5}
},
"fill": {"value": "black"},
"align": {"value": "right"},
"baseline": {"value": "middle"},
"text": {"field": "datum.percentvalue"}
}
}
}
]
}
]
}

screenshot of percent values on chart

关于javascript - 如何在Vega中的标签中添加像 "%"这样的符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44826222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com