2013-09-30 38 views
2

我试图将RChart嵌入闪亮的应用程序中。具体来说,使用功能nPlottype=lineChart NVD3功能。我正在绘制模拟正常数据的3条密度曲线。我想实现一些在下面的例子中所描述的功能:RCharts lineChart功能

http://nvd3.org/ghpages/line.html

我的问题:

  1. 如何对不同的密度曲线不同的颜色?
  2. 如何让功能单击组变量(1),(2),(3)以有效地删除选定的密度。类似于在示例中单击“正弦波”(右上角)以移除橙色正弦曲线?
  3. 如何添加x轴和y轴标签?我的$params$xAxis=通话不起作用。

下面是我server.R和ui.R文件:

## server.r 
library(rCharts) 
library(shiny) 

x <-rnorm(1000,0,1) 
y <-rnorm(1000,1,1) 
z <-rnorm(1000,2,1) 
out <- c(x,y,z) 
grp <- c(rep(0,1000),rep(1,1000),rep(2,1000)) 
data <- as.data.frame(cbind(out,grp)) 
dens <- by(data$out, data$grp, density) 
d <- unlist(c(dens[[1]][1][1], dens[[2]][1][1], dens[[3]][1][1])) 
support <- unlist(c(dens[[1]][2][1], dens[[2]][2][1], dens[[3]][2][1])) 
grpvar <- c(rep(0,length(unlist(dens[[1]][1][1]))), rep(1,length(unlist(dens[[2]][1][1]))), rep(2,length(unlist(dens[[3]][1][1])))) 
dat <- as.data.frame(cbind(d,support,grpvar)) 


shinyServer(function(input, output) { 

output$myChart <- renderChart({ 

p1 <- nPlot(support~d, group=grpvar, data = dat, type = "lineChart") 

p1$addParams(dom = 'myChart') 
p1$params$width = 600 
p1$params$height = 400 

p1$params$xAxis = "Support" 
p1$params$yAxis = "Density" 

p1$chart(tooltipContent = "#! function(key, x, y, e){ 
return '<b>Group</b>: ' + e.point.grpvar 
} !#") 

return(p1) 
}) 
}) 


## ui.R 
library(rCharts) 
library(shiny) 

shinyUI(pageWithSidebar(
headerPanel("rCharts: Interactive Charts from R using NVD3.js"), 

sidebarPanel(

wellPanel(
    helpText( "Look at the pretty graph" 
    ) 
    ), 

wellPanel(
    helpText( "Look at the pretty graph" 
    ) 
    ), 

wellPanel(
    helpText( "Look at the pretty graph" 
    ) 
    ) 

), 


mainPanel(
div(class='wrapper', 
tags$style(".Nvd3{ height: 600px;}"), 
showOutput("myChart","Nvd3") 
) 

) 
)) 

预先感谢任何帮助/建议您可以提供。

回答

1

你只需要添加周围grpvar引号,所以

p1 <- nPlot(support~d, group="grpvar", data = dat, type = "lineChart") 
+0

愚蠢的错误...感谢察觉这对我。 – Chris