Seite 1 von 1

Box-Whisker

Verfasst: Fr Sep 21, 2018 8:48 pm
von retep
Hallo,

vielleicht darf ich nochmal die Hilfe der Spezialisten hier im Forum in Anspruch nehmen.
Ich habe einen Box-Whisker Plot erstellt und wollte gerne die Daten in der Grafik der Größe nach
absteigend sortieren lassen.

Folgender Ablauf sei gegeben:

#Spurenelemente Ackerboden (µg/l)
#######################################################################################

Code: Alles auswählen

P           <- round(runif(8760, min =   4, max = 25), 2)
R           <- round(runif(8760, min = 0.2, max = 1), 2)
S           <- round(runif(8760, min = 100, max = 5000), 2)
T           <- round(runif(8760, min =  20, max = 3000), 2)
U           <- round(runif(8760, min =   1, max =  700), 2)
V           <- round(runif(8760, min =   3, max =   60), 2)
W           <- round(runif(8760, min =  10, max =  400), 2)
X           <- round(runif(8760, min = 0.1, max =    3), 2)
Y           <- round(runif(8760, min = 	 1, max =   50), 2)
Z           <- round(runif(8760, min =   1, max =    8), 2)

Spurenelemente <- list (Si = P, F = R, Al = S, Fe = T, Mn = U, Cu = V, Zn = W, Cd = X, Pb = Y, As = Z)
########################################################################################
# Umformatieren mit dem "melt" Befehl
#######################################################################################

Code: Alles auswählen

library(ggplot2)
library(digest)
library(reshape2)
library(wesanderson)
data.box_Whisker_sp <- melt(Spurenelemente) 
data.box_Whisker_sp
names(data.box_Whisker_sp)                   # zeigt die Spaltennamen an
names(data.box_Whisker_sp)[2] <- "variable"  # 2. Spalte bekommmt einen neuen Namen
#########################################################################################

Code: Alles auswählen

ggplot(data.box_Whisker_sp,aes(x = reorder(variable,-value), y = variable ,fill = variable)) +
  #geom_boxplot()+
  geom_boxplot(outlier.size=1.5, outlier.shape=21, notch = TRUE)+
  stat_summary(fun.y="mean", geom="point", shape=23, size=2, fill="red")+
  scale_fill_brewer(palette="BuGn") + theme_minimal()+
  #geom_boxplot(notch=TRUE)
  #theme_minimal()+
  #scale_fill_brewer(palette = "Paired") +
  #scale_fill_manual(values=wes_palette(n=5, name="GrandBudapest1"))+
  ggtitle ("Box-Whisker - Konzentrationsbereich von Spurenelementen auf Ackerböden")+
  #theme_bw() + 
  guides(fill = guide_legend(title = "")) +
  theme(legend.position = "none") +
  scale_x_discrete(name ="Kationen") +
  scale_y_continuous(name =" Konzentration [µg/l]") 
#########################################################################################
Wenn ich den Plot durchführe bekomme ich die Fehlermeldung:
Error: Discrete value supplied to continuous scale
Wenn ich die Meldung auf "stackoverflow" (https://stackoverflow.com/questions/292 ... roduzieren)
reproduzieren will, dann wird empfohlen die variable als "numeric" zu indizieren. Aber diese ist schon als "numeric" indiziert wie folgender Befehl zeigt:
>str(data.box_Whisker_sp)
'data.frame': 87600 obs. of 2 variables:
$ value : num 10.69 9.75 16.89 23.44 14.4 ...
$ variable: chr "Si" "Si" "Si" "Si" ...

Kann mir hier jemand vielleicht aus der "Patsche" helfen? Denn so richtig weiß ich nicht weiter und es würde die Übersichtlichkeit der Grafik enorm verbessern, wenn die Werte sortiert sind. Denn die unsortierten Werte werden ohne Probleme geplottet.

Vielen Dank für Eure Mühe und Verständnis!

retep :-)

Re: Box-Whisker

Verfasst: Sa Sep 22, 2018 12:16 am
von Athomas
Ich nehme stark an, Du meinst

Code: Alles auswählen

y = value
und nicht

Code: Alles auswählen

y = variable
in dem Aufruf von ggplot?

Re: Box-Whisker

Verfasst: Sa Sep 22, 2018 12:47 am
von retep
Hej,

oh wie peinlich!!!!!! :oops:

Natürlich !!!! Jetzt ist alles okay. Sorry für diesen dummen Aussetzer! Jetzt funktioniert alles wie es soll!

Danke, danke :-)

Re: Box-Whisker

Verfasst: Sa Sep 22, 2018 9:19 am
von Athomas
Danke, danke :-)
Keine Ursache, aber ich muss trotzdem nochmal nachlegen: Deine Frage zeigt ganz schön, warum die Leute hier immer um ein MINIMALbeispiel bitten!

Ein Beispiel hast Du ja geliefert, aber das ist völlig überladen, und der ganze Zierrat lenkt von dem eigentlichen Problem ab - ich hab's auch nicht direkt gesehen, sondern erst, nachdem ich das ganze Zeug systematisch zusammengestrichen habe!

Das "Eindampfen" von fehlerhaften Progrämmchen führt häufig dazu, dass man den Fehler selbst findet - und keine (evtl. peinliche :D ) Frage gestellt werden muss!