对我的问题可能有一个非常简单的解决方案,但我无法在网上找到满意的答案.
使用以下命令,我能够创建以下boxplot图并将其与各个数据点重叠:
ggplot(data = MYdata, aes(x = Age, y = Richness)) +
geom_boxplot(aes(group=Age)) +
geom_point(aes(color = Age))
Run Code Online (Sandbox Code Playgroud)
有几件事我想添加/更改:
1.使用从左到右的6种不同颜色更改每个箱图的线条颜色和/或填充(取决于"年龄"):
c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00")
Run Code Online (Sandbox Code Playgroud)
我试过了
ggplot(data = MYdata, aes(Age, Richness)) +
geom_boxplot(aes(group=Age)) +
scale_colour_manual(values = c("#E69F00", "#56B4E9", "#009E73",
"#F0E442", "#0072B2", "#D55E00"))
Run Code Online (Sandbox Code Playgroud)
但它会导致"Continuous value supplied to discrete scale"错误.
2.使用从左到右的6种不同颜色更改每个数据点的颜色(取决于"年龄"):
c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00")
Run Code Online (Sandbox Code Playgroud)
我试过了:
ggplot(data = MYdata, aes(Age, Richness)) +
geom_boxplot(aes(group=Age)) +
geom_point(aes(color = Age)) +
scale_colour_manual(values = c("#E69F00", "#56B4E9", "#009E73",
"#F0E442", "#0072B2", "#D55E00")) …Run Code Online (Sandbox Code Playgroud) 我试图将boxplot的异常值颜色与美学(scale_colour_discrete)设置的填充颜色相匹配.
这是一个例子.
m <- ggplot(movies, aes(y = votes, x = factor(round(rating)),
fill=factor(Animation)))
m + geom_boxplot() + scale_y_log10()
Run Code Online (Sandbox Code Playgroud)
这会在下面生成图表.如何将这些黑点更改为身体中使用的偏红/绿色?如果我理解正确的话,boxplot的outlier.colour选项似乎选择了一种颜色,而不是审美.如果有帮助,我不介意使用色彩美学.
编辑:
改编了这个解决方案(在geom_boxplot中更改whisker定义).水平躲闪由stats_summary重置,我无法弄清楚如何取回它.因为我现在知道,所以我可以根据需要放弃异常值和拉伸胡须.
# define the summary function
f <- function(x) {
r <- quantile(x, probs = c(0.05, 0.25, 0.5, 0.75, 0.95))
names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
r
}
# define outlier function, beyound 5 and 95% percentiles
o <- function(x) {
subset(x, x < quantile(x,probs=c(0.05))[1] | quantile(x,probs=c(0.95))[1] < x)
}
m <- ggplot(movies, aes(y = votes, x = …Run Code Online (Sandbox Code Playgroud)