Я пытаюсь создать простой график набора данных через R shiny и ggplot2. Хотя сюжет прекрасен, когда я нажимаю флажок для плавного, ничего не происходит с графиком. Я использую stat_smooth() здесь. Другая проблема (не связанная с этим) заключается в том, что, хотя я добавил «options (shiny.maxRequestSize = -1)», чтобы пользователи могли загружать большие файлы, программа все равно дает мне ошибку, когда я пытаюсь загрузить что-то выше 5 MB (он просто падает). Есть идеи по этому поводу? Вот мой код:ggplot2 Почему моя гладкая функция не работает?
ui.R
dataset <- list('Upload a file'=c(1))
shinyUI(pageWithSidebar(
sidebarPanel(
fileInput('file', 'Data file'),
radioButtons('format', 'Format', c('CSV', 'TSV')),
checkboxInput('smooth', 'Smooth')
)
mainPanel(
plotOutput("plot")
)
)
server.R
library(ggplot2)
#Increase max upload size
options(shiny.maxRequestSize=-1)
shinyServer(function(input, output, session) {
data <- reactive({
if (is.null(input$file))
return(NULL)
else if (identical(input$format, 'CSV'))
return(read.csv(input$file$datapath))
else
return(read.delim(input$file$datapath))
})
observe({
df <- data()
str(names(df))
if (!is.null(df)) {
updateSelectInput(session, 'x', choices = names(df))
updateSelectInput(session, 'y', choices = names(df))
}
})
output$plot <- renderPlot({ #Basic Plot
if (is.null(data()))
return(NULL)
p <- ggplot(data(), aes_string(x=input$x, y=input$y)) +
geom_point(size = 3)
if (input$smooth)
p <- p + stat_smooth()
print(p)
})
}
Вы проверили, что ваш участок работает в автономном режиме с помощью 'stat_smooth()'? – Marius
Вы имеете в виду терминал? (Я использую R-студию). Я не уверен, как протестировать его через терминал. – jeffrey
Нет, я просто имею в виду, что вы убедились, что можете получить нужный сюжет, используя некоторые данные из данных в автономном режиме, не опасаясь запускать его через Shiny. Просто пытаюсь исключить простые исправления. – Marius