Problem mit geom_text / Frage

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
pfischer
Beiträge: 31
Registriert: Mi Mär 29, 2017 5:31 pm

Problem mit geom_text / Frage

Beitrag von pfischer »

Liebes Forum,
ich erzeuge eine Balkengraphik mit folgendem code:

Code: Alles auswählen

ggplot(data=df_abun_month_group_all, aes(x=date, y=abundance_month, fill=group, order=group)) +
  geom_bar(position="stack", stat="identity") +
  geom_errorbar(aes(x=date, ymin=abundance_month_sum, ymax=abundance_month_sum+sd_month_sum), width=.05) +
  scale_x_date(date_breaks = "1 year", date_labels = "%Y", minor_breaks = "6 month") +
  labs(x = "Year", y = expression(paste("CPUE"))) +
  geom_hline(yintercept=0, linetype=1, colour="black", size = 0.2) +
  theme(plot.margin = margin(0.5,0.7,0.5,0.5, "cm")) +
  theme_pubr(base_size = 15) +
 * geom_text(data = df_month_nosampling, aes(x = date, y = -0.5, label = sampling_label), size = 3, vjust = +1, hjust = +0.5)
  
Das klappt auch ganz gut (siehe Anhang). ABER:
wie man sieht, gibt es oben ein Legende mit einem roten Quadrat das keine Beschriftung hat.
Bildschirmfoto 2024-03-13 um 08.49.55.png
Wenn ich die Zeile

Code: Alles auswählen

geom_text(data = df_month_nosampling, aes(x = date, y = -0.5, label = sampling_label), size = 3, vjust = +1, hjust = +0.5) 

weg lasse
Bildschirmfoto 2024-03-13 um 08.57.13.png
ist dieses nicht identifizierte Legende weg
aber es fehlen auch die * an der unteren Achse die anzeigen, wann keine Proben vorliegen. Ich habe schon alles versucht diese erste rote Legende wegzubekommen
VG Philipp
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Problem mit geom_text / Frage

Beitrag von bigben »

Hallo Philipp,

bin weder ein ggplot2-Magier noch habe ich das ohne Beispieldaten/reproduzierbares Beispiel ausprobiert, aber mein Hüftschuss wäre so etwas:

Code: Alles auswählen

geom_text(data = df_month_nosampling, aes(x = date, y = -0.5, label = sampling_label), size = 3, vjust = +1, hjust = +0.5,
          show.legend = FALSE) 
in der Hoffnung, dass das show.legend = FALSE die Legende für den ersten Datensatz in Ruhe lässt, eine Erweiterung der Legende für df_month_nosampling aber verhindert.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten