我有一个看起来像这样的数据集

"YEAR","A","B"
2001,100,177
2002,154,419
2003,334,190
2012,301,90

..还有更多的行。

“YEAR”列的范围从 2001 年到 2013 年。
我在data.table“DT”中加载了数据集

我想在 X 轴上绘制 YEAR 图形,在 Y 轴上绘制 A 和 B 的线图。

换句话说,我必须将这两个图合二为一。
DT %>% ggvis(~YEAR, ~A) %>% layer_lines()
DT %>% ggvis(~YEAR, ~B) %>% layer_lines()

我知道用 ggplot2 做这件事的方法,但找不到 ggvis 的方法。
即使我能做到 Shiny ,它也会很棒。
非常感谢您的帮助。

最佳答案

你可以这样做:

library(ggvis)

DT %>% ggvis(x= ~YEAR) %>%
  layer_lines(y= ~A, stroke:='blue')   %>%
  layer_lines(y= ~B, stroke:='orange')

我假设每行还需要不同的颜色才能区分组,因此我添加了 stroke 参数。

输出:

如果您先融化 data.frame 然后使用 stroke 参数进行绘图,它可能会更好,这也将返回一个图例。像这样:
library(reshape2)
DT2 <- melt(DT, 'YEAR', c('A','B'))
DT2 %>% ggvis(~YEAR, ~value, stroke=~variable) %>% layer_lines()

关于r - 在 Y 轴上绘制 2 个变量,在 R 中使用 ggvis,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31357901/

10-12 20:45