将 ggplot 气泡图导入 Shiny 时出错

Posted

技术标签:

【中文标题】将 ggplot 气泡图导入 Shiny 时出错【英文标题】:Error when importing ggplot bubble chart into Shiny 【发布时间】:2015-07-31 23:04:28 【问题描述】:

我在使用 Shiny 和 ggplot 时遇到了一些问题

当我运行以下代码以在 Shiny 中生成气泡图时,我收到以下错误消息:

$<-.data.frame(*tmp*, "value", value = numeric(0)) 中的错误: 替换有 0 行,数据有 3"

但是当我在外面运行它时很好

有什么想法吗?

谢谢

library(shiny)
library(ggplot2)

gtest = data.frame(cbind(sort(rep(c(1:3),5)),rep(c(1:5),3),sample(-8:8, 15)/10))


# Define a server for the Shiny app
server <- function(input, output) 

  g3 <- reactive(
    g2 <- gtest[gtest[2]==input$article,]
    g2 <-g2[order(g2[3],decreasing = TRUE), ]
    g2 <- rbind(g2[g2[1]==input$article,], g2[!g2[1]==input$article,])
    angl <-seq(0, 360, length.out =(nrow(g2)))
    angl <-angl[1:(length(angl)-1)]
    g2[3] <-(max(g2[3])-min(g2[3]))*.3+(max(g2[3])-g2[3])
    x<-c(0,g2[2:nrow(g2),3]*cos(angl%*%(pi/180)))
    y<-c(0,g2[2:nrow(g2),3]*round(sin((pi/180)*angl),2))
    g2<-cbind(g2,x,y)
    colnames(g2) <- c("col1","col2","value","x","y")
    g2
  )

  # Fill in the spot we created for a plot

  output$g3plot = renderPlot(
    p<-ggplot(g3(),aes(x,y,label= col1))+
      geom_point(colour="white", fill="red", shape=21, size = 20)+
      geom_text(size=5)+
      theme_bw()
    print(p)
  )


#runApp("R/Test_shiny")

# Define the overall UI
ui <- fluidPage(  
  titlePanel("Articles by similarities"),
  sidebarLayout(      
    sidebarPanel(
      selectInput("article", "Article:", choice=unique(gtest[2]))), hr()),
  mainPanel(
    plotOutput("g3plot")
  )   
)


shinyApp(ui = ui, server = server)

【问题讨论】:

【参考方案1】:

代码似乎从我这边运行:

我因此修改了以下行:

x<-c(0,g2[2:nrow(g2),3]*cos(angl*(pi/180)))

问候

【讨论】:

以上是关于将 ggplot 气泡图导入 Shiny 时出错的主要内容,如果未能解决你的问题,请参考以下文章

R Shiny:交互式输入从 rds 文件进入 ggplot 时出错(评估中的错误:找不到对象'x')

Shiny 和 ggplot - 同时使用 scale_x_ 和 scale_y_continuous 时出错

R语言ggplot2可视化气泡图:无填充色的气泡图自定义填充色的气泡图

R ggplot气泡图局部气泡显示没有在单个图表中

使用 ggplot 自定义气泡图图例

为 ggplot 气泡图创建同心圆图例