rcharts nplot 运行 shiny 应用时只显示图表顶部

3
当我在Shiny中运行rCharts时,只有图形的顶部显示在我的本地控制台中。我完全不知道这是为什么,我正在运行最新的rCharts和Shiny开发版本。非常感谢任何帮助!以下两个文件应该可以完全重现这个问题。谢谢你提前的帮助,Sebastian。
## server.R
require(rCharts)
library(RCurl)
options(RCHART_WIDTH = 800)
shinyServer(function(input, output) {
output$myChart <- renderChart({
x <- getURL("https://raw.github.com/sebastianbarfort/vaa/master/vaa_.csv")
df___ <- read.csv(text = x)
p2 <- nPlot(Economy ~ Immigration, group = 'X.1', data = df___, 
               type = 'scatterChart')
p2$chart(color = c('red', 'blue', 'green',"yellow","yellow","yellow","yellow","yellow"))
p2$set(dom = "myChart")
return(p2)
})
})


##ui.R
require(rCharts) 
shinyUI(pageWithSidebar(
headerPanel("xxx"),
sidebarPanel(
selectInput(inputId = "x",
            label = "Choose X",
            choices = c("CL", "Economy", "Education", "Envrionment",    "EU",
                        "FP",   "Health",   "Immigration"),
            selected = "Economy"),
selectInput(inputId = "y",
            label = "Choose Y",
            choices = c("CL", "Economy", "Education", "Envrionment",  "EU",
                        "FP",   "Health",   "Immigration"),                
            selected = "Immigration")
),
mainPanel(
showOutput("myChart","Nvd3")
)
))

如果从Github加载csv文件失败(如果你使用RCurl应该不会出现这种情况),这里有一个直接链接到Github上数据的链接:https://github.com/sebastianbarfort/vaa/blob/master/vaa_.csv

请尝试在另一台计算机上运行您的示例;我放弃了纠正它。第一行df__是一个剩余的部分,会导致错误。下一个df__在没有您证书的计算机上存在安全问题;它可能可以通过一些curl操作来解决,但在普通的R中无法工作。 - Dieter Menne
代码现在应该可以运行了,只要RCurl被加载。如果不行的话,我已经在Github上包含了一个CSV文件的直接链接。 - Sebastian Barfort
1个回答

7

这里有一个快速解决方案。将您的mainPanel行修改为以下内容。图表

需要设置最小高度才能正确显示。我已经推出了一个修复程序来纠正这个问题,但仍存在一个小错误。本周我将推出一个更全面的修复程序,应该可以解决这个问题,而不需要您添加tags$style行。

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

注意:在与Shiny一起使用时,最好使用非公式界面,因为Shiny输入被解释为字符串。未来版本可能会放宽此要求。因此,例如,初始化绘图的行应为

p2 <- nPlot(x = input$x, y = input$y, group = 'X.1', 
  data = df___, type = 'scatterChart')

编辑。如果您安装了rCharts的dev版本(dev分支),则可以添加像应用程序中一样的基本控件,而无需使用Shiny。以下是操作方法。此功能仍处于实验阶段,API将随着我继续简化代码库而发生更改,请谨慎使用。

require(rCharts)
require(RCurl)
x <- getURL("https://raw.github.com/sebastianbarfort/vaa/master/vaa_.csv")
df___ <- read.csv(text = x)
p2 <- nPlot(Economy ~ Immigration, 
  group = 'X.1', 
  data = df___, 
  type = 'scatterChart'
)
p2$chart(color = c('red', 'blue', 'green',"yellow","yellow","yellow",
  "yellow","yellow")
)
p2$addControls("x", value = "Immigration", values = names(df___)[-c(1:2)])
p2$addControls("y", value = "Economy", values = names(df___)[-c(1:2)])

嗨@Ramnath,感谢您的帮助。后者完美地解决了问题,但在您选择API之前,我更喜欢使用Shiny选项。在Shiny版本中,当我更改p2 <- nPlot(Economy ~ Immigration, group = 'X.1', data = df___, type = 'scatterChart')p2 <- nPlot(input$x ~ input$y, group = 'X.1', data = df___, type = 'scatterChart')所有点都显示在左上角。我的代码有什么问题吗?感谢您在rCharts和Slidify上的所有工作,它们都非常棒!最好的问候,Sebastian - Sebastian Barfort
不错,在Chrome下可以使用;点效果非常有帮助,不会打扰。然而,通常情况下“在Windows 7,64位本地Firefox下无法使用”,并且在IE下也无法使用;这很有趣,因为我一直认为这是IE下的一个问题。 - Dieter Menne
感谢@DieterMenne,我希望在Chrome稳定后解决Firefox/IE问题。非常感谢您的帮助和检查工作! - Ramnath
嗨Ramnath,感谢留言。我和Dieter一样在Firefox上遇到了问题,但在Chrome上一切正常。使用$addControls比在Shiny中运行时绘图响应更快,但两者都能完成工作。 - Sebastian Barfort
太好了。如果它有效,您能接受答案以便问题可以关闭吗? - Ramnath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接