2013-09-30 3 views
2

Я пытаюсь встроить RChart в блестящее приложение. В частности, работа с функцией nPlot и функцией NVD3 type=lineChart NVD3. Я пытаюсь построить 3 кривые плотности для моделированных нормальных данных. Я пытаюсь достичь некоторых функциональных возможностей, описанных в примере ниже:RCharts lineChart Особенности

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

Мои вопросы:

  1. Как иметь различные цвета для различных кривых плотности?
  2. Как настроить функцию, чтобы щелкнуть по групповой переменной (1), (2), (3), чтобы эффективно удалить выбранную плотность. Аналогично нажатию на «Sine Wave» (вверху справа) в примере, чтобы удалить оранжевую кривую синуса?
  3. Как добавить метки оси X и Y-оси? Мой звонок $params$xAxis= не работает.

Ниже приведен мои server и 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