Ich habe eine Frage über die Anwendung von ggplot Farbskala Farbverlauf. Ich habe Datensatz, wo die Antwortvariable eine kontinuierliche Variable ist, die sowohl positive als auch negative Zahlen enthält, und die unabhängige Variable ist eine Anzahl von unabhängigen Standorten. Ich versuche, die Daten so zu plotten, dass ich alle Daten im Hintergrund darstellen und dann einen Farbskalengradienten auf die Antwortdaten anwenden kann, die den negativen Bereich der Daten abdecken. Dies ist, was ich bisher mit einem Beispieldatensatz habe, der die Struktur meines tatsächlichen Datensatzes nachahmt.anwenden ggplot Farbskala Farbverlauf auf einen Teil der Daten
tr_sim <- data.frame(site_id = seq(1,100,1), estimated_impact =
rnorm(100,18,200), impact_group = rep(c(1,2),each = 50))
rng_full <- range(tr_sim$estimated_impact)
#produce plot showing the full range of impacts across all sites and then
over the subsetted sites
impact_plot_full <- ggplot(data = tr_sim, aes(x = factor(site_id, levels =
site_id[order(estimated_impact)]), y = estimated_impact)) +
geom_bar(stat = "identity",width = 1, fill = "grey80")
impact_plot_full
impact_plot_full +
geom_bar(stat = "identity", width = 1, position = "stack", aes(y =
estimated_impact[impact_group == 1])) +
scale_fill_gradient2(low="firebrick", mid="yellow", high = "green4") +
labs(y = "Estimated Impact ($/week)", x = "Total number of sites with estimate
is 100", title = "Sites with the greatest impact after coverage loss") +
theme(axis.text.x = element_blank()) +
scale_y_continuous(breaks =
round(seq(rng_full[1],rng_full[2],by=100),digits=0))
kann ich alle Daten im Hintergrund in grau plotten und ich bin versucht, den negativen Bereich der Antwortdaten auf diesem zu zeichnen. Ich bekomme den Fehler, dass 'Ästhetik entweder die Länge 1 oder die gleiche wie die Daten (100), y, x' sein muss. Ich weiß, dass dies auftritt, weil die negativen Daten nicht die gleiche Länge wie der gesamte Datensatz haben, aber ich kann keinen Weg finden, dies zu tun. Irgendwelche Vorschläge würden sehr geschätzt werden.
Danke, Curtis
danke @ M.A., Funktioniert jetzt super. Ich habe versucht, +1 für Ihre Antwort zu geben, aber mein Rep-Score ist zu niedrig – Curtis