我第一次在 deneb 中使用 vega-lite。我创建了一条具有多个 y 轴的线。在右侧 y 轴上,Vega 自动将数据点的精确值指定为刻度标签和间隔(参见附图)。例如,对于 % 轴,我希望它为 20%、25%、30%...我希望刻度为整数,刻度之间的间隔均匀。与左侧 y 轴的操作方式类似。我尝试过“tickCount”,但不起作用。我也将我的代码粘贴在下面。会不会是数据类型的问题?非常感谢任何帮助!
我尝试允许 vega 自动分配刻度和间隔,因为我预计默认值是使用整数。所发生的情况是 vega 使用了数据表的精确值作为刻度和间隔。
`{
"data": {"name": "dataset"},
"encoding": {
"x": {
"field": "PERIOD_YEAR",
"type": "nominal"
}
},
"layer": [
{
"mark": {
"type": "line"
},
"encoding": {
"y":{
"field": "QTY",
"type": "quantitative"
}
}
},
{
"mark": {
"type": "line"
},
"encoding": {
"y":{
"field": "GM%_Less LC__formatted",
"sort":"-y"
}
}
},
{
"mark": {
"type": "line"
},
"encoding": {
"y": {
"field": "GM $/unit_Less LC__formatted",
"sort":"-y",
"axis": {"offset":80}
}
}
}
],
"resolve": {"scale": {"y":"independent"}}
}`
如果将类型设置为定量,您将获得不错的刻度值。您可以将域范围设置为您想要的任何值。我很困惑,因为我以为你尝试过这个?这就是你想要的结果吗?
{
"data": {
"name": "dataset"
},
"encoding": {
"x": {
"field": "Year"
}
},
"layer": [
{
"mark": {
"type": "line"
},
"encoding": {
"y": {
"field": "Quantity",
"type": "quantitative"
}
}
},
{
"mark": {
"type": "line"
},
"encoding": {
"y": {
"field": "GM %",
"sort": "-y", "type": "quantitative", "scale":{"zero":false}
}
}
},
{
"mark": {
"type": "line"
},
"encoding": {
"y": {
"field": "GM $ / Unit",
"sort": "-y", "type": "quantitative","scale":{"zero":false},
"axis": {
"offset": 80
}
}
}
}
],
"resolve": {
"scale": {
"y": "independent"
}
}
}