Box-Whisker

Alles zum Thema der beschreibenden Statistik

Moderator: jogo

Antworten
retep
Beiträge: 99
Registriert: Do Sep 06, 2018 7:50 pm

Box-Whisker

Beitrag 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 :-)
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Box-Whisker

Beitrag 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?
retep
Beiträge: 99
Registriert: Do Sep 06, 2018 7:50 pm

Re: Box-Whisker

Beitrag 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 :-)
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Box-Whisker

Beitrag 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!
Antworten