我想对geom_boxplot进行一些修改:
以下是一个例子:
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)
答案 0 :(得分:2)
可以通过重新排序因子的级别(z $ x)来反转y轴上标签的顺序:
z$x = with(z, factor(x, rev(levels(x))))
要在图表中获取图例,您可以使用legend.position
选项。诀窍是当你把它设置为例如传说的“顶部”或“底部”位于情节之外。使用两个数字的矢量时,它会将图例放在图中的该位置。在代码中:
p + opts(legend.position = c(0.85,0.85),
legend.background = theme_rect("white"))
这导致了以下情节,我认为这就是你想要的:
注意添加legend.background以绘制图例周围的填充矩形。此外,我自己并不喜欢在图中使用图例,因为它可能会模糊数据。但是,当然,你可以决定:)。