[ DATT-A9DARX特級アンロック > データで遊ぶ > ベクトル円海山 ]

PCゲーム「A列車で行こう9」で遊びながら学ぶ、Rのハローワールド。(最終更新:2025年2月19日)


ベクトル円海山

処理の流れとプロット

ステップ1 データの準備(前処理) ※Rでの処理に応じて、xyzのリスト(3列65536行)と256x256の行列(256列256行)を使い分ける。
ステップ2 山と水面の重心を求める(クラスタリング)
  • 地形の複雑度を視感で判断し、求めるクラスター数を17(42+1)とする
  • 地形が複雑であるので、標高の行列を特異値分解(使うのは主成分分析)する
  • k平均法(k-means)を実行する
※いわゆる主成分分析をするわけでなく、ライブラリが使いやすいので主成分分析のを使うという意味。
平地以外の点を主成分分析 ▲クラスタリング(k=17)
▲便宜的にボロノイ図を描く ▲グラフィックソフトで重ねる
ステップ3 ベクトル円海山を実行する(本日のメインディッシュ
  • 山なのか水面なのか知らないが得られた重心で周囲の平地をモデルを図示するなら「応力」をベクトルで表示する感じ(※個人の感想です)">ひっぱる
  • 重心の標高がプラスなら周囲の平地を持ち上げる
  • 重心の標高がマイナスなら周囲の平地を押し下げる
  • 音の距離減衰の式を使った(かなり遠くまで広く薄く影響させる)
  • プラスとマイナスが適当にせめぎあう
  • 加算・減算による最大・最小を0~10mの値に圧縮する
  • 上掲のようなガヴァガヴァのコードでなく各自で改良されたい
  • もとの標高の行列の平地の要素を置き換えた行列で等高線を描く
ごにょごにょして描いた等高線 ▲グラフィックソフトで重ねる

こちらもお読みください


R統計数理研究所のミラーサイトから「R」を入手しよう
統計数理研究所とは

ARX特級アンロック(56674) All Rights Reserved. ©2018-2025, tht.