Rでお遊び:シャーロットに想いを馳せて。彗星軌道の作成?「sphereplot」パッケージ


アニメ「シャーロット」は残り3話を残すのみです。まだ、オープニングで示されている「謎の軌道」や「彗星」などは謎のままです。そこで、地球を中心と黄道や赤道、ポイントを手軽に描写できる「sphereplot」パッケージを紹介します。

このパッケージ、お遊び以上に使えると思います。アニメの謎を解くだけではなく。「噴火による影響」や「彗星の軌道」などの描写に使用できると思います。

シャーロットや天体が好きな方は、「秋の夜長にプロットをグリグリ」動かしてみてはいかがでしょうか。

本パッケージは出力にrglを利用しています。rglに出力した内容をHTMLに保存するコマンドも紹介していますので、何かの役に立てばと思います。

パッケージのバージョンは1.5。紹介コマンドはR version 3.2.2で確認しています。


パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("sphereplot")

実行コマンド

詳細はコマンド、パッケージヘルプを確認してください。なお、出力を作業ディレクトリにHTMLで保存するコマンドは最下部の「writeWebGL」コマンドととなります。WebGLですので、発展性があります。

#パッケージの読み込み
library("sphereplot")

#球を描写:rgl.sphgridコマンド
#半径の設定:radiusオプション
#経度ラベルの色を設定:col.longオプション
#緯度ラベルの色を設定:col.latオプション
#グリッド間隔を度で指定:deggapオプション
#経度の間隔を設定:longtypeオプション;H,時間:D,角度
#半径の軸を設定:radaxisオプション;TRUE/FALSE
#半径のラベルを設定:radlabオプション
rgl.sphgrid(radius = 1, col.long = "#6e5f72", col.lat = "#a87963", deggap = 30, longtype = "D",
            add = FALSE, radaxis = TRUE, radlab = "Radius")

#球体内にポイントプロットデータを作成:pointsphereコマンド
#プロット数:Nオプション
#経度のプロット範囲を角度で設定:longlimオプション
#緯度のプロット範囲を角度で設定:latlimオプション
#半径のプロット範囲を設定:rlimオプション
PSH <- pointsphere(N = 700, longlim = c(260, 273), latlim = c(-36, -23), rlim = c(0, 2.5))

#ポイントを描写:rgl.sphpointsコマンド
#経度のプロット範囲を設定:longオプション
#緯度のプロット範囲を設定:latオプション
#プロット半径:radius オプション
#範囲単位の指定:degオプション;TRUEで角度
#色を指定:colオプション
#シンボルの大きさ:cexオプション
rgl.sphpoints(long = 30:390, lat = 0:360, radius = 1.0, deg = TRUE, col = "red", cex = 2)
#pointsphereコマンドで作成したポイントもプロットできます
rgl.sphpoints(PSH , deg = TRUE, col = c("#00bfd4", "#8a5136", "#4b61ba", "#28231e"), cex = 6)

#赤道線をプロット:rgl.sphcircコマンド
#緯度に対して回転:CrossEqオプション
#緯度に対して回転:PeakDecオプション
rgl.sphcirc(CrossEq = 45, PeakDec = 45, radius = 1.5, deg = TRUE, col = "#a87963")

#Plot Galactic plane + Galactic centre(銀河面?)をプロット:rgl.sphMWコマンド
#Plot Galactic plane + Galactic centre(銀河面?)の球サイズを指定:MWcenradオプション
rgl.sphMW(radius = 2.7, col = "#deb7a0", type = "s", MWcenrad = 0.3, addMWplane = TRUE)

#黄道をプロット:rgl.sphsunコマンド
rgl.sphsun("get", radius = 2, col = "#6e5f72")

#テキストをプロット
rgl.sphtext(long = 40,  lat = 50, radius = 4, "Charlotte", deg = TRUE, col = "#6e5f72", cex = 3)

・連続に実施してHTMLファイルで作業フォルダに保存。

rgl.sphgrid(radius = 1, col.long = "#6e5f72", col.lat = "#a87963", deggap = 30, longtype = "D",
            add = FALSE, radaxis = TRUE, radlab = "Radius")
PSH <- pointsphere(N = 700, longlim = c(260, 273), latlim = c(-36, -23), rlim = c(0, 2.5))
rgl.sphpoints(long = 30:390, lat = 0:360, radius = 1.0, deg = TRUE, col = "red", cex = 2)
rgl.sphpoints(PSH , deg = TRUE, col = c("#00bfd4", "#8a5136", "#4b61ba", "#28231e"), cex = 6)
rgl.sphcirc(CrossEq = 45, PeakDec = 45, radius = 1.5, deg = TRUE, col = "#a87963")
rgl.sphMW(radius = 2.7, col = "#deb7a0", type = "s", MWcenrad = 0.3, addMWplane = TRUE)
rgl.sphsun("get", radius = 2, col = "#6e5f72")
rgl.sphtext(long = 40,  lat = 50, radius = 4, "Charlotte", deg = TRUE, col = "#6e5f72", cex = 3)
#出力を作業ディレクトリにHTMLで保存
writeWebGL(width = 550, height = 550)

出力例

・コマンド連続実行の結果
[pc][/pc]
[nopc]iPhoneなどのスマートフォンではグリグリできません、お手数ですがパソコンで閲覧してください。
sphereplot[/nopc]


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク