r:在 ggplot2 中绘制带孔的多边形时撕裂

r: tearing when plotting polygons with holes in ggplot2

我正在尝试绘制这些 body 地图,但无法正确显示人脸。 "heads" 由两个多边形组成:一个是面部(实心椭圆),另一个是头部的其余部分(donut-shaped,中心有孔)。这些应该根据 "score" 列的值进行着色。关于 group=groupfill=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)。根据我的阅读,他们应该朝另一个方向发展。我试过颠倒逻辑,改变点的方向,以及其他一些东西。希望大家帮帮忙

library(ggpolypath)

ggplot(data = fortifyResults, aes(y = lat, x = long, group = group)) +
    geom_polypath(aes(fill = factor(score)), color = "black")