使用R中的ggvis在Y轴上绘制2个变量

时间:2015-07-11 13:55:39

标签: r shiny ggvis

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

"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的方法。 即使我能用闪亮的东西做它也应该很棒。 非常感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

你可以这样做:

library(ggvis)

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

我假设你需要为每一行提供不同的颜色,以便能够区分这些组,所以我添加了stroke参数。

输出:

enter image description here

如果先熔化data.frame然后使用stroke参数进行绘图,那么它可能会更好,这也会返回一个图例。像这样:

library(reshape2)
DT2 <- melt(DT, 'YEAR', c('A','B'))
DT2 %>% ggvis(~YEAR, ~value, stroke=~variable) %>% layer_lines()

enter image description here

答案 1 :(得分:2)

试试这个:

DT %>% ggvis(~YEAR, ~A) %>% layer_lines()%>%layer_lines(x=~YEAR, y=~B)