ggplot2: dynamische Inhalte für Legende und Farbgebung

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
Konkordanz
Beiträge: 7
Registriert: So Sep 10, 2023 9:06 am

ggplot2: dynamische Inhalte für Legende und Farbgebung

Beitrag von Konkordanz »

Hallo Forum,

bitte helft mir. Ich möchte eine simple ggplot2-GRafik bauen, welche allerdings dynamische Werte einsetzt. Und ich bekomme es einfach nicht hin. Bitte schaut euch mal meine Beispielsyntax an. Ich definiere also title1 und title2 sowie city1 und city2. Diese darin gespeicherten Werte möchte ich anschließend dynamisch in die ggplot-Syntax einsetzen, sodass die Legende entsprechend die Inhalte wiedergibt und auch die Farbgebung auf diesen Inhalten basiert. Ich habe etliche Wege versucht, aber ich scheitere. Habt ihr eine Idee? Vielen Dank (und guten Rutsch ;) )!

Code: Alles auswählen

set.seed(123)  
data <- expand.grid(city = c("A", "B"), year = 2010:2023)
data$wert <- runif(nrow(data), min = 10, max = 100)

title1 <- "this is title1"
title2 <- "this is title2"

city1 <- "A"
city2 <- "B"

# Plot mit Legenden-Titeln
ggplot(data, aes(x = year, y = wert, fill = city)) +
  geom_area(position="identity",alpha=0.5) +
  labs(title = "Your Main Title", x = "Year", y = "Wert", fill = "City") +
  scale_fill_manual(name = "City", values = c(city1 = "blue", city2 = "red"),
                    labels = c(city1 = title1, city2 = title2))
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: ggplot2: dynamische Inhalte für Legende und Farbgebung

Beitrag von Athomas »

Diese darin gespeicherten Werte möchte ich anschließend dynamisch in die ggplot-Syntax einsetzen
Sag bitte nicht "Syntax" zu Deinem Skript, da kriisch Plack :evil: !

Code: Alles auswählen

ggplot(data, aes(x = year, y = wert, fill = city)) +
  theme_bw() +
  geom_area(position="identity", alpha=0.5) +
  labs(title = "Your Main Title", x = "Year", y = "Wert") +
  scale_fill_manual(name="City", values = c("A" = "blue", "B" = "red"), labels = c("A" = title1, "B" = title2))
Guten Rutsch!
Konkordanz
Beiträge: 7
Registriert: So Sep 10, 2023 9:06 am

Re: ggplot2: dynamische Inhalte für Legende und Farbgebung

Beitrag von Konkordanz »

Code: Alles auswählen

ggplot(data, aes(x = year, y = wert, fill = city)) +
  theme_bw() +
  geom_area(position="identity", alpha=0.5) +
  labs(title = "Your Main Title", x = "Year", y = "Wert") +
  scale_fill_manual(name="City", values = c("A" = "blue", "B" = "red"), labels = c("A" = title1, "B" = title2))
Danke für den Lösungsansatz. Allerdings steht in der Label-Funktion ja immer noch "A" und "B". Stattdessen würde ich eben gerne die in city1 und city2 gespeicherten Werte einsetzen.
Antworten