2

これは、私が以前に尋ねた質問に関連しています。

Shiny(R)からpngをダウンロード

複数の光沢のあるプロットを作成してダウンロードしましたが、maptools パッケージを使用したプロットの場合、空の png が返されます。

これは Shiny のバグですか、それとも私のコードに何か問題がありますか?

私のサーバーファイルからの関連する抜粋は次のとおりです。

plotInput2 <- function(){


  my.data<-DataInput()
  sub <- subset(DataInput(), as.character(DataInput()[,2])==input$var1)
  a = which(names(sub)==input$var2)
  x_lab <- as.numeric(sub[,a])   
  Country <- as.character(sub[,1])
  mapdata <- data.frame(Country=Country,Perc=x_lab)

  percent_map <- function(data) {
    # world <- map_data("world")
    data(wrld_simpl)
    world <- fortify(wrld_simpl,region='NAME')

    names(world) <- list("long","lat","order","hole","piece","group", "Country")
    world$Country <- tolower(world$Country)
    data$Country <- tolower(data$Country)
    world$Country <- tolower(world$Country)
    choro <- merge(world, data, by=c("Country"),all=TRUE)
    choro <- choro[order(choro$order), ]
    choro$Perc <-as.numeric(as.character(choro$Perc)) 

    ## PLOT MAP IN GREY ##
    ggplot() + geom_polygon(aes(long,lat,group=group),data=world, fill=NA) +


      ## PLOT DATA ##
      geom_polygon(aes(long, lat, group = group,  fill=Perc),data = choro)       

  }

  percent_map(mapdata)

    }    


output$mapjoon <- renderPlot({
  print(plotInput2())
})


output$downloadPlot2 <- downloadHandler(
  filename = "Shinyplot2.png",
  content = function(file) {
    png(file)
    plotInput2()
    dev.off()
  })
4

1 に答える 1

1

これは、光沢のあるアプリで作成されたプロットの保存と非常に関連しています。

print(plotInput2())代わりに downloadHandler に追加してみてくださいplotInput2()

print() が必要な理由は、http: //cran.r-project.org/doc/FAQ/R-FAQ.html#Why-do-lattice_002ftrellis-graphics-not-work_003fから確認できます。

ggplot はプロットを描画せず、グラフ オブジェクトを作成するだけのようです。

于 2014-11-19T11:33:47.770 に答える