我正在尝试绘制这些身体地图,但无法正确显示面部。 "头部"由两个多边形组成:一个是脸(实心椭圆),另一个是头部的其余部分(甜甜圈形状,中间有孔)。 这些应该根据“分数”列的值进行着色。 我已经尝试了很多关于group=group放置位置和fill=scale的变化。
ggplot(data=Patients, aes(y=lat,
x=long,
fill=factor(score),
group=group))+
geom_polygon(color="black")+
facet_wrap(~Patient,
ncol = 5)+
scale_fill_manual(values=scoreColor)+
coord_fixed()
非常感谢您的帮助。
以下是我尝试创建可重现示例的代码:
library(ggplot2)
fortifyResults <-read.table(header=T, stringsAsFactors = F, text="
long lat order hole piece group id score
1 1 1 FALSE 1 Outer.1 Outer 20
1 4 2 FALSE 1 Outer.1 Outer 20
4 4 3 FALSE 1 Outer.1 Outer 20
4 1 4 FALSE 1 Outer.1 Outer 20
1 1 5 FALSE 1 Outer.1 Outer 20
2 2 6 TRUE 2 Outer.2 Outer 20
3 2 7 TRUE 2 Outer.2 Outer 20
3 3 8 TRUE 2 Outer.2 Outer 20
2 3 9 TRUE 2 Outer.2 Outer 20
2 2 10 TRUE 2 Outer.2 Outer 20
2 2 11 FALSE 1 Inner.1 Inner 10
2 3 12 FALSE 1 Inner.1 Inner 10
3 3 13 FALSE 1 Inner.1 Inner 10
3 2 14 FALSE 1 Inner.1 Inner 10
2 2 15 FALSE 1 Inner.1 Inner 10
")
这个版本的代码没有显示两个部分(尽管它们在图例中)
ggplot(data=fortifyResults, aes(y=lat, x=long, group=group))+
geom_polygon(aes(fill=factor(score)),color="black")
而这个会导致撕裂
ggplot(data=fortifyResults, aes(y=lat, x=long), group=group)+
geom_polygon(aes(fill=factor(score)),color="black")
我读到过点的方向很重要。这就是方向的表示方法。
ggplot(data= fortifyResults, aes(y=lat, x=long, group=group))+
geom_polygon(fill="yellow", color="black")+
geom_text(aes(label=order),hjust=0, vjust=-0.3)+
facet_wrap(~id)
再次强调,这里标题为“outer”的应该在中间有一个洞(hole==TRUE)。根据我所读的,它们应该走向另一个方向。我尝试过反转逻辑,改变点的方向以及其他一些操作。希望你们能够帮忙。
ggpolypath
包的geom_polypath
,它专门为此用例而设计。请参见此处。 - Z.Lin