r:在 ggplot2 中绘制带孔的多边形时撕裂
r: tearing when plotting polygons with holes in ggplot2
我正在尝试绘制这些 body 地图,但无法正确显示人脸。 "heads" 由两个多边形组成:一个是面部(实心椭圆),另一个是头部的其余部分(donut-shaped,中心有孔)。这些应该根据 "score" 列的值进行着色。关于 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)。根据我的阅读,他们应该朝另一个方向发展。我试过颠倒逻辑,改变点的方向,以及其他一些东西。希望大家帮帮忙
library(ggpolypath)
ggplot(data = fortifyResults, aes(y = lat, x = long, group = group)) +
geom_polypath(aes(fill = factor(score)), color = "black")
我正在尝试绘制这些 body 地图,但无法正确显示人脸。 "heads" 由两个多边形组成:一个是面部(实心椭圆),另一个是头部的其余部分(donut-shaped,中心有孔)。这些应该根据 "score" 列的值进行着色。关于 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)。根据我的阅读,他们应该朝另一个方向发展。我试过颠倒逻辑,改变点的方向,以及其他一些东西。希望大家帮帮忙
library(ggpolypath)
ggplot(data = fortifyResults, aes(y = lat, x = long, group = group)) +
geom_polypath(aes(fill = factor(score)), color = "black")