1

geom_boxplot をいくつか変更したい:

  1. Y 軸の順序を逆にします (上に A1、下に A4)。
  2. グラフの横ではなく、グラフに凡例をプロットすることは可能ですか?

次に例を示します。

aa <- c(rep("A1",5), rep("A2",3), rep("A3",4), rep("A4",9))
aa <- as.factor(aa)
per <- runif(length(aa), min=0, max=100)
per <- trunc(per)
z <- data.frame(x=aa,y=per) 
z$ch <- NA
z[z$x %in% c("A1","A2"), "ch"] <- "string1"
z[z$x %in% c("A3"), "ch"] <- "string2"
z[z$x %in% c("A4"), "ch"] <- "string3"

z$ch <- as.factor(z$ch)

p <- ggplot(z, aes(x, y, fill = ch)) + 
geom_boxplot(size = 0.2, position = "dodge", outlier.colour = "red", outlier.shape = 16,     outlier.size = 2) + 
geom_jitter(size=1) + opts(legend.position = "right") + 
scale_colour_hue("variable") +
coord_flip()
print(p)
4

1 に答える 1

2

y 軸のラベルの順序を逆にするには、因子 (z$x) のレベルを並べ替えます。

z$x = with(z, factor(x, rev(levels(x))))

プロット内の凡例を取得するには、legend.positionオプションを使用できます。トリックは、たとえば「上」または「下」に設定すると、凡例がプロットの外側に配置されることです。2 つの数値のベクトルを使用すると、凡例がプロット内のその位置に配置されます。コード内:

p + opts(legend.position = c(0.85,0.85), 
         legend.background = theme_rect("white"))

これは、次のプロットにつながります。これは、あなたが望んでいたものだと思います。

ここに画像の説明を入力

凡例を囲む塗りつぶされた長方形を描画するために、legend.background が追加されていることに注意してください。さらに、私自身は、データを不明瞭にする可能性があるため、プロット内に凡例を表示するのはあまり好きではありません。しかし、それはもちろん、あなたが決めることです:)。

于 2011-12-12T09:35:50.087 に答える