【发布时间】:2019-09-26 20:27:51
【问题描述】:
我有 vega 图表。 当零到来时,它以这种方式显示图表:
值等于0时是否可以删除圆圈? 我尝试通过 data.filter(el=>el.count!==0) 过滤数据,但它也删除了 X 轴上的值。
我需要保留这些值,但只删除圆圈。 还尝试在 vega 规范中使用“转换”,但根本没有显示任何内容。
【问题讨论】:
我有 vega 图表。 当零到来时,它以这种方式显示图表:
值等于0时是否可以删除圆圈? 我尝试通过 data.filter(el=>el.count!==0) 过滤数据,但它也删除了 X 轴上的值。
我需要保留这些值,但只删除圆圈。 还尝试在 vega 规范中使用“转换”,但根本没有显示任何内容。
【问题讨论】:
您可以使用production rules 将不透明度设置为0(当值等于0 时),否则设置为1。
【讨论】:
data.filter(el=>el.count!==0) 没有显示任何圈子。因为第一张图片中所有圆圈的 y 轴值显示为 0。
要删除与 y 轴重叠的圆圈,data.filter(el => el.date != first_date_value) 将删除左侧的第一个圆圈。first_date_value 是从 x 轴开始的最小日期。
要以 vega 方式执行此操作,请将 x 轴移动与圆半径相同的像素量。因此,x 轴刻度的范围是 [radius_of_circle, width] 而不是 [0, width]
"scales": [
{
"name": "x",
"type": "point",
"range": {"signal": "[15, width]"},
"domain": {"data": "table", "field": "x"}
},
...
这将以 15px 偏移量开始 x 轴,如下图所示。因此,即使是第一个圆也不会在 y 轴上重叠。
【讨论】: