[ DATT-A9D > データで遊ぶ > 新浦安オンザアイス ]
PCゲーム「A列車で行こう9」で遊びながら学ぶ、Rのハローワールド。(最終更新:2022年6月25日)
データで遊ぶ
新浦安オンザアイス

▼最終的にこのような図を描きたい |
 |
※以下の手順は続けて行ないます。途中で「R」を閉じてしまうと、最初からやり直しになります。やむを得ず中断するときは「作業スペース(現在の状態)を保存」しますが、これを常用してはなりません。あらかじめ考えておいた手順を一続きで実行するのが基本です。
※クラスタリングは乱数を使うアルゴリズムです。実行のたびに結果が異なることを理解しましょう。クラスターの番号は同じにはならず、このためプロットの色分けも実行のたびに変わります。
- 海と山の点を主成分分析(回転)
- クラスタリング(k=17)して重心を得る
- 重心を使って平地の微地形を復元
- 等高線を描く
- 「ベクトル円海山」で得た重心(17個)に4隅の点を加えた21個の点を母点とする
- 「GIMP」などのグラフィックソフトを用意して、レイヤー機能を使って重ねてみよう(「乗算」67%)
- 赤枠のところでトリミングして、マップの画像と同じサイズにリサイズします
- 「R」のプロットは縦横比がおかしい場合もあるので、縦横比を無視してリサイズしましょう
- 拡大するとぼやけますが…気にしな~い! そもそもおおざっぱな計算なので厳密さを求めないこと

- ここで描いたボロノイ図は、海と山も含め、マップ全体を指定した数の領域に分割したもの
- 与えた母点の散らばりは一様でないので、変化に富んだ形状の領域が形成される
- ここで引かれた線をボロノイ境界という。線の交点をボロノイ点という
- ボロノイ点に分岐駅や立体交差駅を置けるか考えてみよう
- 平地の点をクラスタリング(k=17)する
- 得られた重心を番号付きでプロットする
- 平地のみを、重心が互いによく離れるように、指定した数の領域に分割したもの
- 「駅間距離」を1つの路線だけで(1次元で:直線上で)考えるのでなく、マップ全体で(2次元で:平面上で)どの駅も互いにじゅうぶんな距離を空けたい
- 等高線・ボロノイ図とは異なる分割をするので、さらに補間するヒントになるだろう
ARXいじわる協議(54208) All Rights Reserved. ©2018-2022, tht.