好的,我想要将小提琴图和白盒图一起绘制,但我的数据有点棘手。我从一个具有多列的数据框中融合了数据,每个列都有对应于两个水平因子的值,以下是我的数据近似值:
library(ggplot2)
library(reshape2)
dat <- list(
A = rbind(
data.frame(group = "1",
vals = rnorm(500)),
data.frame(group = "2",
vals = rnorm(100))
),
B = rbind(
data.frame(group = "1",
vals = rnorm(500)),
data.frame(group = "2",
vals = rnorm(100))
),
C = rbind(
data.frame(group = "1",
vals = rnorm(500)),
data.frame(group = "2",
vals = rnorm(100))
)
)
dat.melt <- melt(dat)
我能找到的最好的方法是手动设置填充,但它会影响小提琴图和箱线图的填充:
dodge <- position_dodge(width = 1)
p <- ggplot(dat.melt, aes(x = L1, y = value, fill = group))+
geom_violin(position = dodge)+
geom_boxplot(width = 0.3,
position = dodge,
outlier.shape = NA)+
scale_fill_manual(values=c("white", "white"))
我能否只将箱线图设为白色而不是小提琴图?
附:如何只为小提琴图添加图例而不显示箱线图的图例?
ggplot2_2.2.1
中遇到了以下错误:Error in layer(data = data, mapping = mapping, stat = stat, geom = GeomViolin, : object 'dodge' not found
。 - Romanposition = position_dodge(width = 1)
取得了成功...很奇怪。 - Romandodge <- position_dodge(width = 1)
。 - Poiu Rewq