对我的问题可能有一个非常简单的解决方案,但我无法在网上找到满意的答案 .
使用以下命令,我能够创建以下boxplot图并将其与各个数据点重叠:
ggplot(data = MYdata, aes(x = Age, y = Richness)) +
geom_boxplot(aes(group=Age)) +
geom_point(aes(color = Age))
有几件事我想添加/更改:
1. 使用从左到右的6种不同颜色更改每个箱图的线条颜色和/或填充(取决于"Age"):
c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00")
我试过了
ggplot(data = MYdata, aes(Age, Richness)) +
geom_boxplot(aes(group=Age)) +
scale_colour_manual(values = c("#E69F00", "#56B4E9", "#009E73",
"#F0E442", "#0072B2", "#D55E00"))
但它会导致 "Continuous value supplied to discrete scale"
错误 .
2. 使用从左到右的6种不同颜色更改每个数据点的颜色(取决于"Age"):
c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00")
我试过了:
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"))
但它也会导致错误:
提供给离散比例的连续值
3. 将图例中的文本更改为"0 month","1 month","3 months","6 months","9 months","12 months"
1 回答
首先,提供样本数据会有所帮助 . 既然你没有,这里有一些:
第1部分和第2部分源于同样的问题 .
Age
是一个连续变量,但您尝试以离散比例使用它(通过指定特定年龄值的颜色) . 通常,比例将变量映射到视觉;对于连续年龄,每种可能的年龄值都有相应的颜色,而不仅仅是碰巧出现在数据中的颜色 . 但是,您可以同时将年龄视为某些美学的分类变量(因子) . 对于问题的第三部分,在比例描述中,您可以定义与比例中特定中断对应的特定标签 . 把这一切放在一起(并添加一些东西给你的x轴标记更像你在示例中所拥有的):使用此配色方案,落在箱线图内的点是不可见的(因为它们与箱线图的填充颜色相同) . 也许留下箱形凹陷并将其线条绘制成颜色会更好 .
最后,考虑一下你是否真的需要对每个年龄的颜色进行不同的着色,因为它们已经被x轴很好地定义了 .