第6章で使うための、整理整頓済みデータの読み込み

###For chapter 06
phyto_metadata <- readRDS("phyto_metadata.obj")
species_ryuko_data <- readRDS("phyto_ryuko_data.obj")
metadata_ecoplate <- readRDS("metadata_ecopl.obj")
summary_ecoplate <- readRDS("summary_ecopl.obj")

6.1 種組成データから種多様性(=種数)を計算するコード

species_richness <- c() #種数を格納(保存)するための空のベクトルを用意する
for(j in 1: length(species_ryuko_data[,1])) { #観測の数(length(...) = 15)の文だけループを回す
  species_richness[j] <- sum(species_ryuko_data[j,] > 0) #個体数が1以上の種を数え上げると、それが種数となる
}

species_richness <- apply(species_ryuko_data > 0, 1, sum) #for loopを使わずにより高速に計算する方法

簡単な可視化の例

6.2.1 種数についての未加工データの可視化(散布図)(図6.1)

plot(species_richness ~ as.numeric(phyto_metadata$year),#公式(Y~X)の形で指定
     type = "p", #グラフの種類 "p"はポイント(点)描画
     cex = 3 #ポイントの大きさの指定
     )

省スペースなコードの書き方(一つ上と同じ内容)

plot(species_richness ~ as.numeric(phyto_metadata$year), type = "p", cex = 3)

6.2.3 箱ひげ図を用いた可視化(図6.3)

boxplot(
  species_richness ~ phyto_metadata$year, #Y~Xの形式で軸を指定
  outline = TRUE, #外れ値を表示するかどうか
  col = "white", #箱の色
  xlab = "year 2018 vs 2019", #x軸の軸名
  ylab = "phytoplankton richness" #y軸の軸名
)

6.2.4 箱ひげ図+散布図

ランダム割り振り(図6.4A)
boxplot(
  species_richness ~ phyto_metadata$year,
  outline = TRUE,
  col = "white"
)
stripchart( #単変量(一次元)データの散布図用関数
  species_richness ~ phyto_metadata$year, #Y~Xの形式で軸を指定
  method = "jitter", #同じ値のデータをどのように描写するか:ランダム割り振り
  pch = c(1,2), #各点のマーク(模様)の指定
  cex = 3, #マークの大きさの指定
  vertical = TRUE, #数値軸に縦軸(TRUE)を使うか横軸(FALSE)を使うか
  add = TRUE #他のグラフに重ね合わせて描画するかどうか
)

規則的割り振り(図6.4B)
boxplot(
  species_richness ~ phyto_metadata$year,
  outline = TRUE,
  col = "white"
)
stripchart( #単変量(一次元)データの散布図用関数
  species_richness ~ phyto_metadata$year, #Y~Xの形式で軸を指定
  method = "stack", #同じ値のデータをどのように描写するか:規則的割り振り
  pch = c(1,2), #各点のマーク(模様)の指定
  cex = 3, #マークの大きさの指定
  vertical = TRUE, #数値軸に縦軸(TRUE)を使うか横軸(FALSE)を使うか
  add = TRUE #他のグラフに重ね合わせて描画するかどうか
)

6.2.5二次元散布図による可視化

植物プランクトンのデータを使った場合(図6.5A)
plot(
  species_richness ~ phyto_metadata$temp, #Y~Xの形式で軸を指定
  type = "p", #グラフの種類 "p"はポイント(点)描画
  cex = 3, #ポイントの大きさの指定
  xlab = "temperature", #X軸名
  ylab = "species richness" #Y軸名
)

細菌のデータを使った場合(図6.5B)
plot(summary_ecoplate[,1:5], cex = 2) #1列目から5列までの基質に関して総当たりの二次元散布図を作成

LS0tDQp0aXRsZTogImJhc2ljX2dyYXBoaWMuUuOBq+WvvuW/nOOBl+OBn1IgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KIyMjIOesrDbnq6Djgafkvb/jgYbjgZ/jgoHjga7jgIHmlbTnkIbmlbTpoJPmuIjjgb/jg4fjg7zjgr/jga7oqq3jgb/ovrzjgb8NCmBgYHtyfQ0KIyMjRm9yIGNoYXB0ZXIgMDYNCnBoeXRvX21ldGFkYXRhIDwtIHJlYWRSRFMoInBoeXRvX21ldGFkYXRhLm9iaiIpDQpzcGVjaWVzX3J5dWtvX2RhdGEgPC0gcmVhZFJEUygicGh5dG9fcnl1a29fZGF0YS5vYmoiKQ0KbWV0YWRhdGFfZWNvcGxhdGUgPC0gcmVhZFJEUygibWV0YWRhdGFfZWNvcGwub2JqIikNCnN1bW1hcnlfZWNvcGxhdGUgPC0gcmVhZFJEUygic3VtbWFyeV9lY29wbC5vYmoiKQ0KYGBgDQoNCiMjIyA2LjEg56iu57WE5oiQ44OH44O844K/44GL44KJ56iu5aSa5qeY5oCn77yI77yd56iu5pWw77yJ44KS6KiI566X44GZ44KL44Kz44O844OJDQpgYGB7cn0NCnNwZWNpZXNfcmljaG5lc3MgPC0gYygp44CAI+eoruaVsOOCkuagvOe0je+8iOS/neWtmO+8ieOBmeOCi+OBn+OCgeOBruepuuOBruODmeOCr+ODiOODq+OCkueUqOaEj+OBmeOCiw0KZm9yKGogaW4gMTogbGVuZ3RoKHNwZWNpZXNfcnl1a29fZGF0YVssMV0pKSB7ICPoprPmuKzjga7mlbAobGVuZ3RoKC4uLikgPSAxNSnjga7mlofjgaDjgZHjg6vjg7zjg5fjgpLlm57jgZkNCiAgc3BlY2llc19yaWNobmVzc1tqXSA8LSBzdW0oc3BlY2llc19yeXVrb19kYXRhW2osXSA+IDAp44CAI+WAi+S9k+aVsOOBjO+8keS7peS4iuOBrueoruOCkuaVsOOBiOS4iuOBkuOCi+OBqOOAgeOBneOCjOOBjOeoruaVsOOBqOOBquOCiw0KfQ0KDQpzcGVjaWVzX3JpY2huZXNzIDwtIGFwcGx5KHNwZWNpZXNfcnl1a29fZGF0YSA+IDAsIDEsIHN1bSnjgIAjZm9yIGxvb3DjgpLkvb/jgo/jgZrjgavjgojjgorpq5jpgJ/jgavoqIjnrpfjgZnjgovmlrnms5UNCmBgYA0KIyMjIOewoeWNmOOBquWPr+imluWMluOBruS+iw0KIyMjIyA2LjIuMSDnqK7mlbDjgavjgaTjgYTjgabjga7mnKrliqDlt6Xjg4fjg7zjgr/jga7lj6/oppbljJYo5pWj5biD5ZuzKSjlm7M2LjEpDQpgYGB7cn0NCnBsb3Qoc3BlY2llc19yaWNobmVzcyB+IGFzLm51bWVyaWMocGh5dG9fbWV0YWRhdGEkeWVhciksI+WFrOW8jyhZflgp44Gu5b2i44Gn5oyH5a6aDQogICAgIHR5cGUgPSAicCIsICPjgrDjg6njg5Xjga7nqK7poZ4gInAi44Gv44Od44Kk44Oz44OI77yI54K577yJ5o+P55S7DQogICAgIGNleCA9IDPjgIAj44Od44Kk44Oz44OI44Gu5aSn44GN44GV44Gu5oyH5a6aDQogICAgICkNCmBgYA0KIyMjIyDnnIHjgrnjg5rjg7zjgrnjgarjgrPjg7zjg4njga7mm7jjgY3mlrnvvIjkuIDjgaTkuIrjgajlkIzjgZjlhoXlrrnvvIkNCmBgYHtyfQ0KcGxvdChzcGVjaWVzX3JpY2huZXNzIH4gYXMubnVtZXJpYyhwaHl0b19tZXRhZGF0YSR5ZWFyKSwgdHlwZSA9ICJwIiwgY2V4ID0gMykNCmBgYA0KIyMjIyA2LjIuMyDnrrHjgbLjgZLlm7PjgpLnlKjjgYTjgZ/lj6/oppbljJYo5ZuzNi4zKQ0KYGBge3J9DQpib3hwbG90KA0KICBzcGVjaWVzX3JpY2huZXNzIH4gcGh5dG9fbWV0YWRhdGEkeWVhcizjgIAjWX5Y44Gu5b2i5byP44Gn6Lu444KS5oyH5a6aDQogIG91dGxpbmUgPSBUUlVFLOOAgCPlpJbjgozlgKTjgpLooajnpLrjgZnjgovjgYvjganjgYbjgYsNCiAgY29sID0gIndoaXRlIizjgIAj566x44Gu6ImyDQogIHhsYWIgPSAieWVhciAyMDE4IHZzIDIwMTkiLOOAgCN46Lu444Gu6Lu45ZCNDQogIHlsYWIgPSAicGh5dG9wbGFua3RvbiByaWNobmVzcyLjgIAjeei7uOOBrui7uOWQjQ0KKQ0KYGBgDQojIyMjIDYuMi40IOeuseOBsuOBkuWbs++8i+aVo+W4g+Wbsw0KIyMjIyMg44Op44Oz44OA44Og5Ymy44KK5oyv44KKKOWbszYuNEEpDQpgYGB7cn0NCmJveHBsb3QoDQogIHNwZWNpZXNfcmljaG5lc3MgfiBwaHl0b19tZXRhZGF0YSR5ZWFyLA0KICBvdXRsaW5lID0gVFJVRSwNCiAgY29sID0gIndoaXRlIg0KKQ0Kc3RyaXBjaGFydCjjgIAj5Y2Y5aSJ6YeP77yI5LiA5qyh5YWD77yJ44OH44O844K/44Gu5pWj5biD5Zuz55So6Zai5pWwDQogIHNwZWNpZXNfcmljaG5lc3MgfiBwaHl0b19tZXRhZGF0YSR5ZWFyLOOAgCNZfljjga7lvaLlvI/jgafou7jjgpLmjIflrpoNCiAgbWV0aG9kID0gImppdHRlciIsICPlkIzjgZjlgKTjga7jg4fjg7zjgr/jgpLjganjga7jgojjgYbjgavmj4/lhpnjgZnjgovjgYvvvJrjg6njg7Pjg4Djg6DlibLjgormjK/jgooNCiAgcGNoID0gYygxLDIpLCAj5ZCE54K544Gu44Oe44O844Kv77yI5qih5qeY77yJ44Gu5oyH5a6aDQogIGNleCA9IDMs44CAI+ODnuODvOOCr+OBruWkp+OBjeOBleOBruaMh+Wumg0KICB2ZXJ0aWNhbCA9IFRSVUUs44CAI+aVsOWApOi7uOOBq+e4pui7uChUUlVFKeOCkuS9v+OBhuOBi+aoqui7uChGQUxTRSnjgpLkvb/jgYbjgYsNCiAgYWRkID0gVFJVReOAgCPku5bjga7jgrDjg6njg5Xjgavph43jga3lkIjjgo/jgZvjgabmj4/nlLvjgZnjgovjgYvjganjgYbjgYsNCikNCmBgYA0KIyMjIyMg6KaP5YmH55qE5Ymy44KK5oyv44KKKOWbszYuNEIpDQpgYGB7cn0NCmJveHBsb3QoDQogIHNwZWNpZXNfcmljaG5lc3MgfiBwaHl0b19tZXRhZGF0YSR5ZWFyLA0KICBvdXRsaW5lID0gVFJVRSwNCiAgY29sID0gIndoaXRlIg0KKQ0Kc3RyaXBjaGFydCjjgIAj5Y2Y5aSJ6YeP77yI5LiA5qyh5YWD77yJ44OH44O844K/44Gu5pWj5biD5Zuz55So6Zai5pWwDQogIHNwZWNpZXNfcmljaG5lc3MgfiBwaHl0b19tZXRhZGF0YSR5ZWFyLOOAgCNZfljjga7lvaLlvI/jgafou7jjgpLmjIflrpoNCiAgbWV0aG9kID0gInN0YWNrIiwgI+WQjOOBmOWApOOBruODh+ODvOOCv+OCkuOBqeOBruOCiOOBhuOBq+aPj+WGmeOBmeOCi+OBi++8muimj+WJh+eahOWJsuOCiuaMr+OCig0KICBwY2ggPSBjKDEsMiksICPlkITngrnjga7jg57jg7zjgq/vvIjmqKHmp5jvvInjga7mjIflrpoNCiAgY2V4ID0gMyzjgIAj44Oe44O844Kv44Gu5aSn44GN44GV44Gu5oyH5a6aDQogIHZlcnRpY2FsID0gVFJVRSzjgIAj5pWw5YCk6Lu444Gr57im6Lu4KFRSVUUp44KS5L2/44GG44GL5qiq6Lu4KEZBTFNFKeOCkuS9v+OBhuOBiw0KICBhZGQgPSBUUlVF44CAI+S7luOBruOCsOODqeODleOBq+mHjeOBreWQiOOCj+OBm+OBpuaPj+eUu+OBmeOCi+OBi+OBqeOBhuOBiw0KKQ0KYGBgDQojIyMjIDYuMi415LqM5qyh5YWD5pWj5biD5Zuz44Gr44KI44KL5Y+v6KaW5YyWDQojIyMjIyDmpI3nianjg5fjg6njg7Pjgq/jg4jjg7Pjga7jg4fjg7zjgr/jgpLkvb/jgaPjgZ/loLTlkIgo5ZuzNi41QSkNCmBgYHtyfQ0KcGxvdCgNCiAgc3BlY2llc19yaWNobmVzcyB+IHBoeXRvX21ldGFkYXRhJHRlbXAsICNZfljjga7lvaLlvI/jgafou7jjgpLmjIflrpoNCiAgdHlwZSA9ICJwIiwgI+OCsOODqeODleOBrueorumhniAicCLjga/jg53jgqTjg7Pjg4jvvIjngrnvvInmj4/nlLsNCiAgY2V4ID0gMyzjgIAj44Od44Kk44Oz44OI44Gu5aSn44GN44GV44Gu5oyH5a6aDQogIHhsYWIgPSAidGVtcGVyYXR1cmUiLOOAgCNY6Lu45ZCNDQogIHlsYWIgPSAic3BlY2llcyByaWNobmVzcyLjgIAjWei7uOWQjQ0KKQ0KYGBgDQojIyMjIyDntLDoj4zjga7jg4fjg7zjgr/jgpLkvb/jgaPjgZ/loLTlkIgo5ZuzNi41QikNCmBgYHtyfQ0KcGxvdChzdW1tYXJ5X2Vjb3BsYXRlWywxOjVdLCBjZXggPSAyKSAjMeWIl+ebruOBi+OCiTXliJfjgb7jgafjga7ln7ros6rjgavplqLjgZfjgabnt4/lvZPjgZ/jgorjga7kuozmrKHlhYPmlaPluIPlm7PjgpLkvZzmiJANCmBgYA0KDQo=