2024年9月5日木曜日

draw.shape()で海面の色を指定

午前
・シーケンス準備
・PCR実験

午後
・論文書き(修論論文化)

死蔵になりそうな修論の論文化を強引に進める。

作図は随分前に終わっていたのだが、気になっていた点があった。

日本地図に円グラフを描くために、
ggplot() +
  geom_sf(地図データ) +
  geom_scatterpie(円グラフデータ)
を使っていたのだが、円グラフがやや縦長になってしまう。

緯度経度を同じ数値として扱ってしまうのかな〜と考えているのだが、改善方法が思いつかない。
このままで良いか、いやダメだ、と自問自答を繰り返した結果、作り直すことにした。

改善方法が思いつかないので、私が使っているもう一つの円グラフの作図方法「mapplots::draw.pie()」で対応した。

「mapplots::draw.pie()」は独特なデータ形式が使われるが、「mapplots::make.xyz()」で簡単に作成できる。

地図は、shpファイルを「mapplots::draw.shape()」で描く必要がある?

ここまでは他の論文のコピペなのですぐに終わったが、海面の色指定に苦戦してしまったのでメモ。海面をwhitesmoke、陸地をblackにする場合は下記のようにする。
jpn <- read.shapefile(PATH) #shpファイルの読み込み
xlim <- c(122.5, 147.5) #X軸の指定
ylim <- c(22.5, 47.5) #Y軸の指定

#ベースの指定;bgで海面の色を指定!
basemap(xlim, ylim, axes=F, xlab="", ylab="", bg="whitesmoke")

#地図=陸地の指定;colで陸地の色を指定!
draw.shape(jpn, col="black")
綺麗な円になった。
ただ、円グラフの位置が微妙ずれてしまい、微調整に2〜3時間かかった。