我试图使用不同数据框中的数据在ggvis图中添加任意文本的图例。我曾尝试使用add_legend()
,但我不知道要使用哪些参数。使用plot()
是使用legend()
功能非常简单,但它已经很难找到一个方法来做到这一点使用ggvis()
ggvis - add_legend具有多个数据和图内的位置图例
这里是我一直在使用plot()
一个简单的例子:
df1 = data.frame(x = sample(1:10), y = sample(1:10))
df2 = data.frame(x = 1:10, y = 1:10)
df3 = data.frame(x = 1:10, y = sqrt(1:10))
plot(df1)
lines(df2$x, df2$y, col = "red")
lines(df3$x, df3$y, col = "green")
legend("topleft", c("Data 2","Data 3"), lty = 1, col = c("red","green"))
现在,使用ggvis()
我可以积点,并从不同的数据集的线条,但我不能找到一种方法,使用add_legend()
把传说,这里是一个使用ggvis()
代码:
df1 %>% ggvis(x=~x,y=~y) %>% layer_points() %>%
layer_paths(x=~x,y=~y,data = df2, stroke := "red") %>%
layer_paths(x=~x,y=~y,data = df3, stroke := "green")
我会很感激任何帮助。
谢谢。
编辑:
这样仅使用一个数据帧和plot()
一个示例代码
df = data.frame(x = sample(1:10), y = sample(1:10), x2 = 1:10, y2 = 1:10, y3 = sqrt(1:10))
plot(df[,c("x","y")])
lines(df$x2, df$y2, col = "red")
lines(df$x2, df$y3, col = "green")
legend("topleft", c("Data 2","Data 3"), lty = 1, col = c("red","green"))
我不知道你可以用两个不同的数据集来做到这一点。尽管从这两个数据框中构建一个数据框,然后将其融合,那将更有意义。你会得到你想要的这种方式。如果这对你是可以接受的,那么我可以提供一个解决方案。 – LyzandeR
是的,我可以将所有数据放在一个数据帧中。谢谢。 – Geovany