Seite 1 von 1

ggplot2_Horizontale

Verfasst: Do Okt 22, 2020 5:22 pm
von cacadu
Hallo,
ich bin grade dabei mit ggplot2 meine Daten darzustellen, bin aber auf zwei Probleme gestoßen:
1. Ich habe 12 Panels (faced_wrap) und würde jedem gerne noch eine Horizontale hinzufügen. An sich wollte ich den Befehl
geom_hline benutzen. Meine Frage ist nun, ob ich diese in jedem Panel direkt mit diesem Befehl in eine andere Höhe legen kann, meine bisherigen Versuche führten dazu, dass ich in jedem die 12 gleichen Linien hatte, statt in jedem eine in anderer Höhe.

Mein bisheriger Code lautet:

Code: Alles auswählen

ggplot(Profile, aes(Profil, Tiefe))+geom_raster(aes(fill=Wert), interpolate=TRUE)+facet_wrap(~Profil, scales = "free")+geom_hline(yintercept=c(0.2,0.12,0.15,0.26,0.34,0.45,0.15,0.26,0.34,0.25,0.50,0.12), show.legend = True)+scale_fill_gradient(low = "lightblue", high = "darkblue", na.value = NA)+scale_y_continuous(breaks = c(0.0,0.1,0.2,0.3,0.4,0.5), labels = c("0.0","0.1","0.2","0.3","0.4","0.5"))+scale_fill_continuous(name= "Ksat[mm/h]",breaks=c(0,200,400,600,800,1000), labels=c("0","200", "400", "600", "800", "<1000"))
2. die Codes "scale_fill_gradient(...)" und "scale_fill_continuous(...)" funktionieren bei mir nicht gemeinsam, habe ich beides im Code, so funktioniert nur der erste, zweiterer nur, wenn ich den ersten ganz rausnehme. Hat jemand eine Idee, wie ich das lösen könnte?

Vielen Dank schoneinmal für jede Hilfe!

Re: ggplot2_Horizontale

Verfasst: Do Okt 22, 2020 5:31 pm
von Athomas
Bitte immer eine kleines Beispiel (Daten + Programm) zum Nachvollziehen dazupacken!

Hier musst Du halt für jedes Facet die gewünschte Höhe mitgeben...
Präziser, wenn komplettes Beispiel :) !

Re: ggplot2_Horizontale

Verfasst: Do Okt 22, 2020 10:12 pm
von cacadu
Danke erstmal für deine Hilfe.
So sehen die Daten im Moment aus:
Unbenannt.PNG
Unbenannt.PNG (5.66 KiB) 3482 mal betrachtet
Das hatt ich mir schon fast gedacht, dass ich das einzelnd machen muss, ich hab nur leider keine Ahnung wie, hättest du eine Idee?
ach, und ich arbeite mit rStudio und dem Paket ggplot2

Re: ggplot2_Horizontale

Verfasst: Do Okt 22, 2020 10:17 pm
von bigben
Ein Foto von Zahlenkolonnen hilft nun niemandem. Lies mal hier : viewtopic.php?f=20&t=11

LG,
Bernhard

Re: ggplot2_Horizontale

Verfasst: Di Okt 27, 2020 4:46 pm
von cacadu
Tut mir Leid, ich bin noch etwas sehr unerfahren hier.
So ist es hoffentlich besser.
Daten:

Code: Alles auswählen

Profile<-structure(list(Profil = c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 
5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 
11, 11, 12, 12, 12), Tiefe = c(0.1, 0.3, 0.5, 0.1, 0.3, 0.5, 
0.1, 0.3, 0.5, 0.1, 0.3, 0.5, 0.1, 0.3, 0.5, 0.1, 0.3, 0.5, 0.1, 
0.3, 0.5, 0.1, 0.3, 0.5, 0.1, 0.3, 0.5, 0.1, 0.3, 0.5, 0.1, 0.3, 
0.5, 0.1, 0.3, 0.5), Wert = c(438.4, 156.2, 210.6, 1, 0.5, 1.3, 
1.1, 0.5, 1.4, 0.6, 0.6, 1000, 906.47, 24.17, 0.22, 0, 0.34, 
0.51, 0.45, 0, 0.08, 0.03, 2.76, 0.29, 13.03, 65.33, 0.01, 0.34, 
0.09, 0.02, 0.02, 2.23, 0.21, 2.03, 0.45, 2.21)), class = "data.frame", row.names = c(NA, 
-36L))
Paket und Programm:

Code: Alles auswählen

sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19041)

Matrix products: default

locale:
[1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252    LC_MONETARY=German_Germany.1252
[4] LC_NUMERIC=C                    LC_TIME=German_Germany.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] ggplot2_3.3.2 readxl_1.3.1 

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.4.6     rstudioapi_0.11  magrittr_1.5     tidyselect_1.1.0 munsell_0.5.0    colorspace_1.4-1 R6_2.4.1        
 [8] rlang_0.4.7      fansi_0.4.1      dplyr_1.0.2      tools_3.6.1      grid_3.6.1       gtable_0.3.0     utf8_1.1.4      
[15] cli_2.0.2        withr_2.2.0      ellipsis_0.3.0   digest_0.6.25    assertthat_0.2.1 tibble_3.0.1     lifecycle_0.2.0 
[22] crayon_1.3.4     farver_2.0.3     purrr_0.3.4      vctrs_0.3.2      glue_1.4.0       labeling_0.3     compiler_3.6.1  
[29] pillar_1.4.4     cellranger_1.1.0 generics_0.0.2   scales_1.1.1     pkgconfig_2.0.3 

So, ich hoffe damit habe ich deine Geduld noch nicht überstrapaziert,
liebe Grüße, Cacadu

Re: ggplot2_Horizontale

Verfasst: Di Okt 27, 2020 6:58 pm
von bigben
Ich bin gar nicht ungeduldig, nur kurz angebunden, wenn ich auf dem Handy schreibe. Ich mag echte Tastaturen lieber. Will mich auch gar nicht vordrängeln, wenn Athomas schon einen Ansatz im Kopf hat.

LG,
Bernhard

Re: ggplot2_Horizontale

Verfasst: Di Okt 27, 2020 8:57 pm
von Athomas
Will mich auch gar nicht vordrängeln, wenn Athomas schon einen Ansatz im Kopf hat.
Ja, im Prinzip so, wie ich es früher gesagt hatte: einen weiteren Dataframe aufmachen, in dem für jedes "Profil" die gewünschte Höhe drinsteht und daraus dann geom_hline speisen...

Ich habe aber ehrlich gesagt keinen Bock, das auf die vorgegebene schwache Basis aufzupfropfen - und auch keine, ein völlig neues Beispiel zur sauberen Demonstration zu konstruieren!

Insofern entbinde ich Dich gerne von Deiner (empfundenen) Nichteinmischungspflicht :) !

Re: ggplot2_Horizontale

Verfasst: Di Okt 27, 2020 10:40 pm
von bigben
Ich verspüre keine Nichteinmischungspflicht. Einmischen tu ich mich immer gerne. Ich weiß bloß, dass Du ggplot2 viel besser kannst als ich.

Sei's drum, ich verstehe die Aufgabe etwa so:

Code: Alles auswählen

hilfreich  <- data.frame(Profil = 1:12,
                         y = c(0.2,0.12,0.15,0.26,0.34,0.45,0.15,0.26,0.34,0.25,0.50,0.12))


ggplot(Profile, aes(1, Tiefe)) +
  geom_raster(aes(fill=Wert),interpolate=TRUE) +
  geom_hline(data = hilfreich, aes(yintercept=y), color ="yellow") +
  facet_wrap(~ Profil) +
  scale_x_continuous(labels=NULL, limits =c(0.5,1.5)) + xlab("") +
  scale_y_continuous(breaks = c(0.0,0.1,0.2,0.3,0.4,0.5), labels = c("0.0","0.1","0.2","0.3","0.4","0.5")) +
  scale_fill_continuous(name= "Ksat[mm/h]",breaks=c(0,200,400,600,800,1000), labels=c("0","200", "400", "600", "800", "<1000"))
LG,
Bernhard

Re: ggplot2_Horizontale

Verfasst: Fr Okt 30, 2020 12:42 pm
von cacadu
Vielen vielen Dank dir, genau so wars gemeint, hatte bei meinen Versuchen irgendwie die Daten wohl immer falsch zusammen gepackt, aber jetzt funktioniert es endlich:D
Liebe Grüße, Caro