hereとhereから同じ問題について質問しましたが、まだ問題を解決できません。問題を細かく分解するのではなく、問題全体を持ってきて助けを求める必要があると思います。
csv にエクスポートしたデータフレームがあり、http://pastebin.com/SNT9Ykt7にあります。
chart <- ggplot(data=map.shp,aes(x=long,y=lat))
### PART1 START ###
chart <- chart + geom_polygon(data=map.shp,aes(x=long,y=lat,group=id),colour=rgb(162,159,140,maxColorValue=255),fill=rgb(233,235,232,maxColorValue=255),size=0.1)
### PART1 END ###
### PART2 START ###
map.group <- unique(map.shp[,"group"])
for (loop in (1:length(map.group))) {
temp.shp <- map.shp[map.shp[,"group"]==map.group[loop],]
temp.colour <- "red"
if (unique(temp.shp[,"hole"])=="TRUE") {
temp.colour <- "blue"
}
chart <- chart + geom_polygon(data=temp.shp,aes(x=long,y=lat,group=id,order=group),colour=rgb(162,159,140,maxColorValue=255),fill=temp.colour,size=0.1)
}
### PART2 END ###
chart <- chart + opts(panel.background=theme_rect(colour=rgb(190,225,247,maxColorValue=255),fill=rgb(190,225,247,maxColorValue=255)),
panel.grid.major=theme_blank(),
panel.grid.minor=theme_blank(),
panel.border=theme_blank(),
plot.background = theme_blank(),
axis.line=theme_blank(),
axis.text.x=theme_blank(),
axis.title.x=theme_blank(),
axis.text.y=theme_blank(),
axis.title.y=theme_blank(),
axis.ticks=theme_blank())
chart <- chart + coord_cartesian(xlim = range(map.shp[,"long"]), ylim = range(map.shp[,"lat"]))
PART1 スクリプトでは、次の出力が得られます。
PART2 スクリプトでは、次の出力が得られます。
実はこれは穴の開いたピースランドで、このレイヤーの下に何か別のものを表示するので、穴を「穴」として表示する必要があるため、PART2 スクリプトを使用した表示はできません。しかし、PART2 スクリプトはマップを正しくプロットしています (赤は土地、青は穴)。
修正する必要がある PART1 出力からのいくつかの問題:
- 穴として表示されない穴の一部
- ポリゴンの外側の線が間違ってプロットされています
PART1で何を間違えたのかわかりません。誰でも助けることができますか?
更新 01
txt ファイルは、次のコードを使用して作成されます。
map.shp.raw <- readShapeSpatial("shp_files/map.shp")
map.shp <- fortify(map.shp.raw)
添付された txt ファイルは、txt として保存し、read.table コマンドを使用して data.frame としてインポートできます。