首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用scatter3d和Shiny动态生成绘图

用scatter3d和Shiny动态生成绘图
EN

Stack Overflow用户
提问于 2017-07-16 09:10:07
回答 1查看 334关注 0票数 0

我正在尝试创建一个快速应用程序,让用户选择3个变量,并使用scatter3D重新生成3D散射。当我使用闪亮的时候,我总是碰到这个错误,我看不出来去纠正它。

错误:并非所有参数都具有相同的长度。

如果替换:

代码语言:javascript
复制
x = paste("df.output$",input$test,sep=""),
y = paste("df.output$",input$test2,sep=""),
z = paste("df.output$",input$test3,sep=""),

使用

代码语言:javascript
复制
x = df.output$age_scaled
y = df.output$freq_scaled
z = df.output$bonus_scaled

我的ui功能如下所示

代码语言:javascript
复制
ui <- fluidPage(
  titlePanel("3 Dimensional Cluster Analysis"),
  sidebarLayout( 
  sidebarPanel(
  selectInput("test", "X-Axis", choices=colnames(df.output) , 
  selected=colnames(df.output[1]), width = NULL, size = NULL),
    selectInput("test2", "Y-Axis", choices=colnames(df.output), 
  selected=colnames(df.output[2]), width = NULL, size = NULL),
    selectInput("test3", "Z-Axis", choices=colnames(df.output), 
  selected=colnames(df.output[3]), width = NULL, size = NULL)),

   mainPanel(
    rglwidgetOutput("plot",  width = 1000, height = 500)
      )
    ))

服务器功能如下所示

代码语言:javascript
复制
library(rgl)

server <- (function(input, output) 
{
  # reactive({
  #   a <- paste("df.output$",test$input,sep="")
  # })
  output$plot <- renderRglwidget(
    {
      rgl.open(useNULL=T)
      scatter3d(
        x = paste("df.output$",input$test,sep=""),
        y = paste("df.output$",input$test2,sep=""),
        z = paste("df.output$",input$test3,sep=""),
        groups = as.factor(df.output$Cluster), 
        grid=FALSE,
        surface=FALSE,
        ellipsoid=TRUE,
        ellipsoid.alpha=0.5,
        fit=smooth,
        xlab=input$test,
        ylab=input$test2,
        zlab=input$test3
      )
       par3d(mouseMode = "trackball")
       rglwidget() 
     })
})   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-16 11:02:29

你的代码

代码语言:javascript
复制
x = paste("df.output$",input$test,sep="")

将x设置为长度为1的字符向量。如果要从dataframe中选择组件,请使用

代码语言:javascript
复制
x = df.output[[input$test]]

您的代码也不使用包含scatter3d的包(它不是rgl函数)。在car包中有一个具有该名称的函数,在plot3D包中有一个类似的名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45126888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档