R 在ggplot2中手动更改形状将颜色从实体更改为轮廓?

R 在ggplot2中手动更改形状将颜色从实体更改为轮廓?,r,ggplot2,scatter-plot,R,Ggplot2,Scatter Plot,我的总体目标是用黑色勾勒出纯色的形状 我在ggplot2的散点图中格式化形状和颜色时遇到问题。我想要基于位置的形状,以及基于时间的颜色。这很有效,但是我使用scale\u shape\u manual()手动更改形状,因为十字很难看到。颜色从填充变为轮廓,如下所示 转到: 我尝试重新组织我在aes()中呈现变量的顺序,使用fill=而不是color=,创建单个geom\u point()层,并使用scale\u color\u manual()手动更改颜色比例。我的原始代码是: p <-

我的总体目标是用黑色勾勒出纯色的形状

我在ggplot2的散点图中格式化形状和颜色时遇到问题。我想要基于位置的形状,以及基于时间的颜色。这很有效,但是我使用
scale\u shape\u manual()
手动更改形状,因为十字很难看到。颜色从填充变为轮廓,如下所示

转到:

我尝试重新组织我在
aes()
中呈现变量的顺序,使用
fill=
而不是
color=
,创建单个
geom\u point()
层,并使用
scale\u color\u manual()
手动更改颜色比例。我的原始代码是:

p <- ggplot(data=data.scores,aes(x=NMDS1,y=NMDS2))+
  geom_point(aes(shape=Location, color=Time), size=3) +
  scale_shape_manual(values = c(0,1,2,5))
然而,这只是将点转向所有黑色圆圈:

我以前使用过
scale\u shape\u manual()
pch=
,没有任何问题,我不知所措

有什么想法吗

谢谢

J

您可以尝试:

ggplot(data.scores, aes(x=NMDS1, y=NMDS2, group=Location,fill=Time,color=Time)) +
  geom_point(aes(shape=Location,color=Time),size=3,stroke = 1)+
  scale_shape_manual(values = c(21:24))+ 
  scale_fill_manual(values=c('red','pink','green','blue'))+
  scale_color_manual(values=c('red','pink','green','blue'))

对于您的主要问题,也可以尝试以下方法:

ggplot(data.scores, aes(x=NMDS1, y=NMDS2, group=Time,fill=Time,color=Time)) +
  geom_point(aes(shape=Location),colour = "black", size = 4)+
  geom_point(aes(shape=Location,color=Time),size=3)+
  scale_shape_manual(values = c(21:24))+ 
  scale_fill_manual(values=c('red','pink','green','blue'))+
  scale_color_manual(values=c('red','pink','green','blue'))
您可以尝试:

ggplot(data.scores, aes(x=NMDS1, y=NMDS2, group=Location,fill=Time,color=Time)) +
  geom_point(aes(shape=Location,color=Time),size=3,stroke = 1)+
  scale_shape_manual(values = c(21:24))+ 
  scale_fill_manual(values=c('red','pink','green','blue'))+
  scale_color_manual(values=c('red','pink','green','blue'))

对于您的主要问题,也可以尝试以下方法:

ggplot(data.scores, aes(x=NMDS1, y=NMDS2, group=Time,fill=Time,color=Time)) +
  geom_point(aes(shape=Location),colour = "black", size = 4)+
  geom_point(aes(shape=Location,color=Time),size=3)+
  scale_shape_manual(values = c(21:24))+ 
  scale_fill_manual(values=c('red','pink','green','blue'))+
  scale_color_manual(values=c('red','pink','green','blue'))
他们是你的朋友。具体来说,
shape=21

库(ggplot2)
ggplot(数据分数,aes(NMDS1,NMDS2,填充=位置))+
几何点(形状=21,尺寸=5)

由(v0.3.0)于2020-07-02创建。

是您的朋友。具体来说,
shape=21

库(ggplot2)
ggplot(数据分数,aes(NMDS1,NMDS2,填充=位置))+
几何点(形状=21,尺寸=5)


由(v0.3.0)于2020-07-02创建

您可以使用
dput(data.scores)
共享部分数据吗?这将更容易提供帮助。编辑post您可以使用
dput(data.scores)
共享部分数据吗?帮助会更容易。编辑帖子谢谢你,鸭子!我可以创建您在那里显示的图像,但它不包括基于形状的位置?也没有黑色轮廓。@Geomicro我已经更新了解决方案。让我知道这是否对你的目标有效。@Geomicro我为边界添加了另一块。这会有帮助的。啊,是的。非常漂亮的谢谢你,鸭子,谢谢你,鸭子!我可以创建您在那里显示的图像,但它不包括基于形状的位置?也没有黑色轮廓。@Geomicro我已经更新了解决方案。让我知道这是否对你的目标有效。@Geomicro我为边界添加了另一块。这会有帮助的。啊,是的。非常漂亮的谢谢你,鸭子。