Box-Whisker
Verfasst: Fr Sep 21, 2018 8:48 pm
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)
#######################################################################################
########################################################################################
# Umformatieren mit dem "melt" Befehl
#######################################################################################
#########################################################################################
#########################################################################################
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
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