【发布时间】:2015-06-20 02:05:40
【问题描述】:
我正在尝试使用来自不同数据帧的数据在 ggvis 图中添加带有任意文本的图例。我尝试过使用add_legend(),但我不知道要使用哪些参数。使用plot() 使用legend() 函数非常简单,但很难找到使用ggvis() 的方法
这是我使用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"))
【问题讨论】:
-
我不知道你是否可以用两个不同的数据集来做到这一点。虽然从两者中制作一个数据框然后将其融合会更有意义。你会得到你想要的这种方式。如果您可以接受,那么我可以提供解决方案。
-
是的,我可以将所有数据放在一个数据框中。谢谢。