ggplot2 中形状的手动更改将颜色从实心更改为轮廓?
Manual change of shape in ggplot2 changes colors from solid to outline?
我的总体目标是用黑色勾勒出纯色形状。
我在 ggplot2 散点图中格式化形状和颜色时遇到问题。我想要基于位置的形状和基于时间的颜色。这很好用,但是当我使用 scale_shape_manual()
手动更改形状时,因为很难看到十字。颜色从填充变为轮廓,如下所示。
转到:
我尝试重新组织我在 aes()
中呈现变量的顺序,使用 fill =
而不是 color =
,创建单独的 geom_point()
层,并手动更改scale_color_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))
在上面显示的内容之后我还有 theme()
脚本,但我已经删除了那些,因为我已经确认它们不会影响我的问题。此外,我会理想地使用 pch 勾勒出黑色的点,如下所示:
p <- ggplot(data=data.scores,aes(x=NMDS1,y=NMDS2))+
geom_point(aes(shape=Location, color=Time), color = "black", pch=21, size=3) +
scale_shape_manual(values = c(1,2,0,5))
然而,这只是将点变成全黑圆圈:
我之前用过scale_shape_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'))
Shape aesthetic specifications 是你的朋友。具体来说,shape = 21
:
library(ggplot2)
ggplot(data.scores, aes(NMDS1, NMDS2, fill = Location)) +
geom_point(shape = 21, size = 5)
由 reprex package (v0.3.0)
于 2020 年 7 月 2 日创建
我的总体目标是用黑色勾勒出纯色形状。
我在 ggplot2 散点图中格式化形状和颜色时遇到问题。我想要基于位置的形状和基于时间的颜色。这很好用,但是当我使用 scale_shape_manual()
手动更改形状时,因为很难看到十字。颜色从填充变为轮廓,如下所示。
我尝试重新组织我在 aes()
中呈现变量的顺序,使用 fill =
而不是 color =
,创建单独的 geom_point()
层,并手动更改scale_color_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))
在上面显示的内容之后我还有 theme()
脚本,但我已经删除了那些,因为我已经确认它们不会影响我的问题。此外,我会理想地使用 pch 勾勒出黑色的点,如下所示:
p <- ggplot(data=data.scores,aes(x=NMDS1,y=NMDS2))+
geom_point(aes(shape=Location, color=Time), color = "black", pch=21, size=3) +
scale_shape_manual(values = c(1,2,0,5))
然而,这只是将点变成全黑圆圈:
我之前用过scale_shape_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'))
Shape aesthetic specifications 是你的朋友。具体来说,shape = 21
:
library(ggplot2)
ggplot(data.scores, aes(NMDS1, NMDS2, fill = Location)) +
geom_point(shape = 21, size = 5)
由 reprex package (v0.3.0)
于 2020 年 7 月 2 日创建