Ich versuche, eine App zu erstellen, mit der der Benutzer mehrere Linien in einem einzigen Diagramm plotten kann. Meine Daten enthalten Tourismusdaten zu mehreren Ländern nach Jahren.Plotten mehrerer Linien in einem einzigen Diagramm mit Shiny und ggplot2
> head(tourism)
years Bulgaria Czech Republic Denmark Poland Sweden Norway
1 1995 5437.963 10274.98 9651.070 5523.500 7860.659 7294.971
2 1996 5921.961 13640.53 10810.187 5594.191 7716.620 7236.490
3 1997 5476.931 14932.49 10918.596 7579.637 7658.900 7243.111
4 1998 5197.050 16218.00 10287.564 7229.771 8029.087 7868.735
5 1999 4382.405 16125.00 9965.684 5644.924 8600.785 7814.983
6 2000 5170.091 15597.09 10005.887 6891.283 8654.086 7468.899
Jetzt versuche ich, die Daten mit der ‚Jahr‘ Spalte als die x-Achse und den anderen Spalten als die y-Achse plotten.
ui = fluidPage(
titlePanel("Tourism"),
sidebarLayout(
sidebarPanel(
selectizeInput("cnt",
"Select Country:",
choices = c("Bulgaria",
"Czech Republic",
"Denmark",
"Poland",
"Sweden",
"Norway"),
selected = "Bulgaria",
multiple = TRUE
)
),
mainPanel(
plotOutput("plot")
)
)
)
server = function(input, output) {
output$plot = renderPlot({
ggplot(tourism) +
geom_line(mapping = aes(x = years, y = tourism[,input$cnt], colour = input$cnt)) +
labs (x = "Years", y = "Nights spent per 1000", title = "Tourism") +
scale_colour_discrete(name = "Country")
})
}
shinyApp(ui = ui, server)
Das Problem ist, wenn ich zu einem Zeitpunkt mehr als ein Land zu zeichnen versuchen, ich die folgenden Fehlermeldung erhalten: „Ästhetik muss entweder Länge 1 oder die gleiche wie die Daten sein (21): x, y , Farbe".
Während der Suche habe ich festgestellt, dass ich einen beobachtenden oder reaktiven Teil vermisse, aber ich kann nicht herausfinden, wie man ihn hinzufügt.
Jede Hilfe wäre willkommen.
Edited, einen kleinen Tippfehler gemacht. – Zach
Hat etwas ähnliches eingegeben :) –
Ihre Lösung hat perfekt funktioniert, vielen Dank! –