这是我的第一篇文章。如果您需要更多信息来回答这个问题,请告诉我!
我一直在尝试如何在geom_jitter()和stat_summery()中为组设置不同的大小。
figure made with the R script below
在此图中,为4个组设置了4个形状,我想为单个图(使用geom_jitter())和每组的平均值(使用stat_summery())使用相同的形状。我还指定了每个形状的大小,因为如果我对所有形状使用相同的大小,这些形状的大小看起来会略有不同。事实证明,geom_jitter()和stat_summery()使用不同的size定义,所以我需要在geom_jitter()和stat_summery()中使用不同的“size”值。但是,我不能对它们都使用scale_size_manual(),所以我需要对geom_jitter()或stat_summery()使用一个公共的大小。此图对平均值使用通用大小,但您可以看到Group=1000的菱形看起来比其他三个平均值小。这是我的R脚本为这个数字。
library(ggplot2)
library(tidyverse)
x %>%
ggplot(aes(x=Time,y=value),group=Group)+
geom_jitter(aes(color = Group,shape = Group,size = Group),
position = position_jitterdodge(jitter.width=0.2,dodge.width=0.6),alpha=0.3 ) +
scale_shape_manual(values = c(15,16,17,18))+
scale_size_manual(values = c(6,7,5,7))+
scale_color_manual(values = c("green","orange", "red", "blue"))+
stat_summary(aes(group = Group,shape= Group),
size=1.3,
fun.data="mean_cl_normal",
geom = "pointrange", position = position_dodge(0.6) )+
scale_x_discrete(limits=c("90","150"))+
coord_cartesian(ylim=c(0,10))+
theme_classic()+
labs(y="lab value",x="lab time", fill="lab group")+
theme(axis.text.x=element_text(size=12,colour = "black"),axis.text.y=element_text(size=12,colour = "black"),axis.title=element_text(size=14,colour = "black"))
如果有人能告诉我如何为这4个形状的平均值设置不同的大小,我将非常感激。如果有人能告诉我如何更改图例的标题(labs(fill="”)由于某种原因无法工作),我也会很感激。
1条答案
按热度按时间sshcrbum1#
正如已经在评论中提到的,你使用的是
color
aes,因此你必须通过color=
而不是fill=
来设置图例标题。此外,您必须为所有图例使用相同的标题,即。做labs(..., color="lab group", shape ="lab group", size="lab group")
。否则,图例将不会合并。第二,在size
aes上为geom_pointrange
贴图获得相同的大小,并设置fatten=1
。最后我设置了show.legend=FALSE
不显示图例中的点范围。使用一些假随机示例数据: