0
ここに間違いが見込まれますか? ggsave
が動作しますが、png(file=file)
部分ではありません。空白の画像が保存されます。光沢のあるドットチャートを保存
output$savePlotAmount <- downloadHandler(
filename = "amount.png",
content = function(file) {
if(input$plotType == "dot"){
png(file = file)
plotAmount()
dev.off()
}else{
ggsave(plotAmount(), filename = file)
}
})
私は修理に「時間」を費やしましたが、何が起こっているのかわかりません。この例は再生産可能ではありませんが、すべてのアプリを再生産することは難しいです。
EDIT: plotAmount()
何ですか:
plotAmount <- reactive({
if(input$plotType == "violin") {
plotAmount <- ggplot(values$x, aes_string(x = input$groupedBy, y = input$yVariableContinous)) +
geom_violin() +
ggtitle(paste0(input$yVariableContinous, " grouped by ", input$groupedBy)) +
scale_y_continuous(limits = c(0, quantile(values$x[,input$yVariableContinous] , 0.95, na.rm = T)))
}
if(input$plotType == "boxplot") {
plotAmount <- ggplot(values$x, aes_string(x = input$groupedBy, y = input$yVariableContinous)) +
geom_boxplot(outlier.shape = NA) +
ggtitle(paste0(input$yVariableContinous, " grouped by ", input$groupedBy)) +
scale_y_continuous(limits = c(0, quantile(values$x[,input$yVariableContinous] , 0.95, na.rm = T)))
}
if(input$plotType == "dot") {
var <- ifelse(input$groupedBy == 1, input$xVariable, input$groupedBy)
agregat <- aggregate(x = values$x[,input$yVariableContinous], by = list(g = values$x[,var], xx = values$x[,input$xVariable]), FUN = input$valueAs)
dotchart(agregat$x, labels = agregat$xx,
groups = as.factor(agregat$g),
color = brewer.pal(9,"Set1")[as.numeric(as.factor(agregat$g))],
xlab = "salary",
cex = .75,
main = paste0(input$yVariableContinous, " for ", input$xVariable,
"\ngrouped by ", input$groupedBy),
xlim = c(min(values$x[,input$yVariableContinous], na.rm = T), quantile(values$x[,input$yVariableContinous] , 0.95, na.rm = T)),
pch = 16
)
}
ここで 'png(file = file)'の最初の部分はggplotではありません。これはドットチャートです - 基本的な 'plot()'と同じです。そして、 'ggsave(...')の2番目の引数はうまくいきます。 –
'plotAmount()'はggplotオブジェクトですよね、 'print(plotAmount())'を試してください。https://www.rdocumentation.org/packages /ggplot2/versions/2.2.1/topics/print.ggplot –
いいえ、 '$ plotType ==" dot "'なら 'plot()'と同じ 'dotchart()'です。 ggplotです。私は 'plotAmount()'のコードを追加しました –