R 中 googleVis 的两个分布

Two distributions in with googleVis in R

我正在尝试使用 googlevis 函数在一张图中获得两个分布 gvisAreaChart 但它没有按我想要的那样工作:

 library(googleVis)
 df <- data.frame(a=rnorm(n = 400,mean = .1,sd = .01),b=rnorm(n = 400,mean = .13,sd = .01))
 dfplot <- rbind(data.frame(x=density(df$a)$x,y=density(df$a)$y,var=rep("a",512)),data.frame(x=density(df$b)$x,y=density(df$b)$y,var=rep("b",512)))
 plot(gvisAreaChart(dfplot,xvar = 'x',yvar='y'))  

我想给这两个分布不同的颜色,当它们重叠时。我知道这在 ggplot 中是可行的,但我正在寻找 googleVis 的解决方案,因为它与 Shiny 配合使用效果更好。

谢谢。

编辑:发现非常麻烦的解决方法:

 dfplot <- data.table(x=seq(0,by = .001))
 df <- data.table(a=rnorm(n = 400,mean = .1,sd = .01),b=rnorm(n = 400,mean = .13,sd = .01))
 dfa <- data.table(x=round(density(df$a)$x,3),y1=density(df$a)$y,var=rep("a",512))
 dfb <- data.table(x=round(density(df$b)$x,3),y2=density(df$b)$y,var=rep("b",512))

 dfa[duplicated(x),test:=TRUE];dfa<-dfa[is.na(test)]
 dfb[duplicated(x),test:=TRUE];dfb<-dfb[is.na(test)] 

 setkey(dfplot,x);setkey(dfa,x);setkey(dfb,x)
 merge <- merge(dfplot,dfa,all.x=T,all.y=F,allow.cartesian=T)
 merge <- merge(merge,dfb,all.x=T,all.y=F,allow.cartesian=T)

 merge <- merge[,max:=pmax(y1,y2,na.rm=T)]
 merge <- merge[!is.na(max)]
 merge<-subset(merge,select = c('x','y1','y2'))

 plot(gvisAreaChart(merge,xvar = 'x',yvar=c('y1','y2')))

很遗憾,我对 googleVis 不太熟悉,但希望您能接受 rCharts

的解决方案
rm(list = ls())
library(shiny)
library(rCharts)

df <- data.frame(a=rnorm(n = 400,mean = .1,sd = .01),b=rnorm(n = 400,mean = .13,sd = .01))
dfplot <- rbind(data.frame(x=density(df$a)$x,y=density(df$a)$y,var=rep("a",512)),data.frame(x=density(df$b)$x,y=density(df$b)$y,var=rep("b",512)))
hPlot(x = "x", y = "y", group = "var", data = dfplot, type = "area")