Ich habe derzeit ein Streudiagramm nur eine Spalte aus meinem Datensatz, die ich von einem CSV lesen. Ich möchte ATI und BTI zeichnen.Shiny R: Zeichnen Sie eine andere Spalte von Daten auf Streudiagramm mit ggplot2
PP BTI ATI
1 9710 9660
2 10000 9900
3 10300 10100
4 10600 10400
.
.
.
99 159000 107000
Mein Code sieht wie folgt aus:
#server.R
#Income Percentile Scatterplot
incomedata <- read.csv("/Users/mathewsayer/Documents/Work/Level 7/Shiny Flat Tax/Flat Tax App/data/incomedist.csv")
ranges <- reactiveValues(x = NULL, y = NULL)
output$plot1 <- renderPlot({
ggplot(incomedata, aes(x = BTI, y = PP)) +
geom_point() +
coord_cartesian(xlim = ranges$x, ylim = ranges$y)
})
#Brush and zoom on scatterplot
observeEvent(input$plot1_dblclick, {
brush <- input$plot1_brush
if (!is.null(brush)) {
ranges$x <- c(brush$xmin, brush$xmax)
ranges$y <- c(brush$ymin, brush$ymax)
}
else {
ranges$x <- NULL
ranges$y <- NULL
}
})
Ich habe versucht, ATI wie diese hinzu: aes(x = BTI:ATI, y = PP)
aber ich erhalte die Fehlermeldung Aesthetics must be either length 1 or the same as the data (99): x, y
Würde ich besser meine Daten als ein Aufruf Rahmen oder Tisch? Jede Hilfe würde sehr geschätzt werden.
EDIT: Die schwarzen Plot Punkte sind BTI, ich möchte die Daten von ATI ähnlich zu diesem Foto-Mock-up Ich gerade getan habe.
Mein Argument hinter dem Perzentil auf der y-Achse ist, dass die Benutzer ihr Einkommen kennen, aber nicht, welches Perzentil sie ' Re in. Deshalb haben sie zuerst über die x-Achse gelesen, um ihren Platz dort zu finden, bevor sie nach oben schauen, um zu sehen, welches Perzentil. Natürlich meine [zweite Frage] (https://stackoverflow.com/questions/37226473/shiny-r-plotting-outputs-onto-a-scatterplot-alongside-existing-data-from-a-csv) welche ich Ich werde mich gerade auf den Weg machen, um das halb-redundant zu machen. – gizzard