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

时间:2015-12-05 07:01:59

标签: r ggplot2 gis polygon

我正在尝试绘制这些身体贴图,但无法正确显示脸部。 “头部”由两个多边形组成:一个是面(实心椭圆形),另一个是头部的其余部分(圆环形,中心的孔)。这些应根据“得分”列的值进行着色。我已经尝试了很多关于 group = group 放置位置和 fill = scale 的变体。

comparison of real data

  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")

comparison of example

我读到点的方向有所不同。这就是方向的出现方式。

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)

enter image description here

同样,这里标题为“外部”的那个应该在中间有一个洞(洞== TRUE)。从我所读到的,他们应该走向另一个方向。我试过反转逻辑,改变点的方向,以及其他一些东西。我希望大家能帮忙。

1 个答案:

答案 0 :(得分:1)

library(ggpolypath)

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

1