geom_point 具有形状、填充和颜色

geom_point with shape, fill and color

我创建了一个 ggplot 点,显示 x_axis 的每个级别中变量“y 轴”的均值和 sd,并且根据 cat.1 具有不同的形状,根据 cat.1 具有不同的颜色类别 2。根据“时间”有3个面板

可以从这里下载数据框“示例”:

https://drive.google.com/file/d/1fJWp6qoSYgegivA5PgNsQkVFkVlT4qcC/view?usp=sharing

plot1<-ggplot(example,aes(x=x_axis,y=mean , shape = cat.1)) +  theme_bw() +
  facet_wrap(~time,dir = "h")+
  geom_point(aes(color=cat.2), position = position_jitter(0), size=4)+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+
  geom_errorbar(aes(x_axis, ymin=mean-sd, ymax=mean+sd),
                position = position_jitter(0), width=0.1)

剧情是这样的:

plot1

因为我希望点有黑色边框,所以我添加了 color="black",并将之前的"color=cat.2"替换为"fill=cat.2"。我意识到正确的方法是使用“填充”而不是“颜色”,但是填充功能似乎不起作用!所有的点都是黑色的:

plot2<-ggplot(example,aes(x=x_axis,y=mean , shape = cat.1)) +  theme_bw() +
  facet_wrap(~time,dir = "h")+
  geom_point(aes(fill=cat.2), position = position_jitter(0), size=4, color="black")+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+
  geom_errorbar(aes(x_axis, ymin=mean-sd, ymax=mean+sd),
                position = position_jitter(0), width=0.1)

plot2

我尝试将“shape=21”添加到 geom_point 层,它给出了根据 cat.2 填充的点和黑色边框,但绘图不显示根据 cat.2 的形状类别 1.

如何根据两个因素创建具有形状和填充的散点图,并为点添加黑色边框?

现在使用 scale_shape_manual 正如@erc 所指出的那样,它起作用了:

plot3<-ggplot(example,aes(x=x_axis,y=mean , shape = cat.1)) +  theme_bw() +
  facet_wrap(~time,dir = "h")+
  geom_jitter(aes(fill=cat.2), position = position_jitter(0), size=4, color="black")+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+
  geom_errorbar(aes(x_axis, ymin=mean-sd, ymax=mean+sd),
                position = position_jitter(0), width=0.1) +
  scale_shape_manual( values =c("x"=24,"y"=21))