Julia Vega Lite-多个数据集的一个绘图

Julia Vega Lite-多个数据集的一个绘图,julia,legend,altair,vega-lite,Julia,Legend,Altair,Vega Lite,我正在为Julia开发一个软件包,目标是使用Vega Lite作为后端进行快速绘图。 熟悉Matplotlib的人都知道,向量有不同的集合,并将所有集合绘制在同一个图形中是很常见的,每个集合都有自己的标签。例如: x=范围(0,10) y=np.rand.rand(10) w=范围(0,5) z=np.rand.rand(5) plt.plot(x,y,label='y') plt.plot(w,z,label='z') plt.legend() 我想知道的是,除了使用Vega Lite(或

我正在为Julia开发一个软件包,目标是使用Vega Lite作为后端进行快速绘图。 熟悉Matplotlib的人都知道,向量有不同的集合,并将所有集合绘制在同一个图形中是很常见的,每个集合都有自己的标签。例如:

x=范围(0,10)
y=np.rand.rand(10)
w=范围(0,5)
z=np.rand.rand(5)
plt.plot(x,y,label='y')
plt.plot(w,z,label='z')
plt.legend()

我想知道的是,除了使用Vega Lite(或Altair)之外,我如何做类似的事情。 我知道我可以做两个独立的绘图,然后一个接一个地添加。我的问题主要是如何让图例发挥作用,因为要获得图例,通常需要另一个字段 例如“color”,指向数据框中的另一个字段


我也看到过类似的帖子,但都是关于从不同栏目发布数据的问题。这种情况的答案基本上是使用折叠变换。但在我的问题中,这不太管用,因为我更感兴趣的是从两个不同的绘图开始,可能使用两个不同的数据集,所以“合并”数据集不是一个好的解决方案。

您可以利用这样一个事实,即在复合图表中,Vega Lite默认使用共享比例。如果将颜色、形状、笔划等指定给每个层的唯一值,将自动生成相应的图例

以下是使用Altair生成Vega Lite规范的示例:

将熊猫作为pd导入
将numpy作为np导入
将牵牛星导入为alt
x=np.linspace(0,10)
df1=pd.DataFrame({
“x”:x,
'y':np.sin(x)
})
df2=pd.DataFrame({
“x”:x,
“y”:np.cos(x)
})
chart1=alt.Chart(df1).转换\u计算(
标签='正弦''
).mark_line().encode(
x='x',
y='y',
color='label:N'
)
chart2=alt.Chart(df2).转换\u计算(
标签='“余弦”'
).mark_line().encode(
x='x',
y='y',
color='label:N'
)
alt.layer(图表1、图表2)

非常感谢,杰克!我不知道你怎么会在回答关于Vega Lite的问题时如此无所不在!