Vega-Lite - 圆和线的比例错误

Vega-Lite - Error in the scales of circles and lines

我正在尝试使用 Vega-Lite 绘制类似于图形的图,其中节点通过边连接到其他节点。节点的大小根据变量而变化,而边缘宽度也变化。 节点的信息与边的信息存储在不同的数据集中。

问题是,一旦我尝试将所有内容绘制在一起(“节点”+“边”),Vega-Lite 将节点的大小标记为非常小(几乎不可见)。如果我的边缘图不使用“大小”,一切都会正常。

这是我正在做的一个例子(请注意,符号与原生 Vega-Lite 有点不同,因为我在 Julia 上编程):

v1 = @vlplot(
    mark={:circle,opacity=1},
    x={μ[:,1],type="quantitative",axis=nothing},
    y={μ[:,2],type="quantitative",axis=nothing},
    width=600,
    height=400,
    size={μ_n,legend=nothing,type="q"})
v2 = @vlplot(
    mark={"type"=:circle,color="red",opacity=1},
    x={ν[:,1],type="quantitative",axis=nothing},
    y={ν[:,2],type="quantitative",axis=nothing},
    width=600,
    height=400,
    size={ν_m,legend=nothing,type="q"})

然后,当我为边缘创建可视化并将所有内容绘制在一起时:

v3 = @vlplot(
    mark={"type"=:line,color="black",clip=false},
    data = df,
    encoding={
    x={"edges_x:q",axis=nothing},
    y={"edges_y:q",axis=nothing},
    opacity={"ew:q",legend=nothing},
    size={"ew:q",scale={range=[0,2]},legend=nothing},
    detail={"pe:o"}},
    width=600,
    height=400
)
@vlplot(view={stroke=nothing})+v3+v2+v1

关于为什么会发生这种情况以及如何解决它的任何想法? (请注意,“scale”属性不是原因。即使我删除它,问题仍然存在)。

渲染复合图表时,Vega-Lite 默认使用共享比例(参见 https://vega.github.io/vega-lite/docs/resolve.html):看起来当您的 size 比例在线图和圆图之间共享时,它会导致结果不佳。

我不熟悉 VegaLite.jl 语法,但您希望在顶级图表上的 JSON 规范是:

 "resolve": {"scale": {"size": "independent"}}