Ich möchte die Verteilung mehrerer Variablen (hier X1
und X2
) mit einem einzigen Wert (hier bm
) vergleichen. Das Problem ist, dass diese Variablen zu viele (etwa ein Dutzend) sind, um einen einzelnen Boxplot zu verwenden. Vergleichen Boxplots mit einem einzigen Wert
Zusätzlich sind die Ebenen zu unterschiedlich, um ein Diagramm zu verwenden. Ich brauche Facetten zu nutzen, um die Dinge besser organisiert:
jedoch mit diesem Grundstück meine Benchmark Kategorie (bm
), die in X1
und X2
ein einzelner Wert ist, erscheint nicht in X1
und scheint mehrere Werte in X2
haben . Ich möchte, dass es nur diese grüne Linie ist, die es in der ersten Handlung ist. Irgendwelche Ideen, warum es sich ändert? Gibt es eine gute Problemumgehung? Ich habe versucht, die Optionen facet_wrap
/facet_grid
, aber nichts lieferte das richtige Ergebnis.
Ich habe auch versucht, ein Bar-Plot mit bm
und drei leere Kategorien mit dem Boxplot zu kombinieren. Aber erstens sah es furchtbar aus und zweitens wurde es in der Facettierung ähnlich vermasselt. Grundsätzlich würde jede Arbeit helfen.
Unter dem Code, um das Minimalbeispiel erstellen angezeigt hier:
# Creating some sample data & loading libraries
library(ggplot2)
library(RColorBrewer)
set.seed(10111)
x=matrix(rnorm(40),20,2)
y=rep(c(-1,1),c(10,10))
x[y==1,]=x[y==1,]+1
x[,2]=x[,2]+20
df=data.frame(x,y)
# creating a benchmark point
benchmark=data.frame(y=rep("bm",2),key=c("X1","X2"),value=c(-0.216936,20.526312))
# melting the data frame, rbinding it with the benchmark
test_dat=rbind(tidyr::gather(df,key,value,-y),benchmark)
# Creating a plot
p_box <- ggplot(data = test_dat, aes(x=key, y=value,color=as.factor(test_dat$y))) +
geom_boxplot() + scale_color_manual(name="Cluster",values=brewer.pal(8,"Set1"))
# The first line delivers the first plot, the second line the second plot
p_box
p_box + facet_wrap(~key,scales = "free",drop = FALSE) + theme(legend.position = "bottom")
_ "wird vermasselt" _: bitte sei explizit darüber, was du nicht magst und was du stattdessen willst. Außerdem würde die Lesbarkeit Ihres Codes durch konsistente Abstände wirklich verbessert werden. – Axeman
Danke. Ich habe die Frage bearbeitet. Wird den Code jetzt auch bearbeiten. Obwohl ich nicht sicher bin, was Sie mit konsistentem Abstand meinen. – 5th