Scatterplot и Shiny - PullRequest
       19

Scatterplot и Shiny

0 голосов
/ 05 марта 2019

Я все еще новичок в Блестящем и ggplot, поэтому я не уверен, что является причиной проблемы, и я ранее опубликовал другие проблемы с этим кодом, однако я столкнулся с новой проблемой ... когда я запускаю код, мой график не появляется, и вместо этого я получаю ошибку: Предупреждение: ошибка в FUN: объект "total_pigs" не найден.

Я получаю эту ошибку независимо от параметров, выбранных в функции selectInput "x".

У меня есть отдельный файл CSV в том же каталоге, что и файл app.R. SelectInput (s) соответствует столбцам и строкам в CSV, я надеялся, что мой код просто прочитает данные, хранящиеся в нем, и это сгенерирует мои точки заговора.

library(shiny)
library(ggplot2)
path <- file.path("eu_pigs.csv", stringsAsFactors = FALSE)
ui <- fluidPage(
titlePanel("Breeding Numbers 2016 - 2018 (pig)"),
sidebarLayout(
sidebarPanel(
selectInput(inputId = "x", 
          label = "Pig Breeds:", 
          choices = c("total_pigs", "female_breeding_herd", 
                      "in_pig_sows", "in_pig_gifts", "other_sows", 
                      "maiden_gilts", "boars_for_service", "other_pigs"),
          selected = "total_pigs"),
selectInput(inputId = "y",
          label = "Year by year change:",
          choices = c(2016, 2017, 2018, sep = ""),
          selected = 2016)
),
mainPanel(
plotOutput(outputId = "scatterplot")
)
)
)

server <- (function(input, output) {
output$scatterplot <- renderPlot({
ggplot(data = read.csv("eu_pigs.csv")) +
aes_string(x = input$x, y = input$y) +
geom_point()
})
})

shinyApp(ui, server)

Я прилагаю изображение моего CSV-файла.

image of my csv file

1 Ответ

0 голосов
/ 05 марта 2019

Как предполагает DS_UNI, проблема, вероятно, связана со структурой ваших данных. ggplot2 хочет работать с аккуратными данными, поэтому в этом случае это будет означать, что каждая строка представляет случай, то есть год.

Вот что, я думаю, вам нужно сделать, хотя здесь делаются некоторые предположения о том, как вы хотите, чтобы конечный результат выглядел!

Шаг первый: Считайте в CSV для обработки данных

pigs_data <- read.csv("eu_pigs.csv")

Шаг второй: Сделать первый столбец из имен строк

row.names(pigs_data) <- pigs_data$pig_breeds
pigs_data[1] <- NULL

Шаг третий: Транспонировать данные

pigs_data <- t(pigs_data)

Затем вы должны использовать pigs_data в аргументе данных ggplot.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...