Mathematicaで外部データを可視化する

高度な計算能力で優れているMathematicaですが, 他のプログラムで作成したデータの可視化としても非常に強力です. 様々なデータの入出力に対応しているので大変便利なんですが, まずは簡単な使い方をしてみたいという方がいらっしゃると思います(というか, ついさっき聞かれました).

なので, 今回はその導入として, 簡単な例をいくつか紹介したいと思います.

準備

用意するもの

  1. Mathematica
  2. importするファイル

テストファイルは data/https___github.com/KeitaSumiya/Mathematica.git 内の ReadList_Test です.

ファイルの置き場所は相対パスでも絶対パスでも可能ですが, ひとまずは便利な相対パスでやってみます. 上でdownloadしたmathematica(nb)とデータ(dat)を同じディレクトリに置いて下さい.

テスト用のデータは, 11行3列の配列で, 1列目(X) : i 2列目(Y) : Sin[ipi/10] 3列目(Z) : 2i (iは0,1,2,...,10) という内容にしました.

https___qiita-image-store.s3.amazonaws.com_0_102253_c71d6a35-2532-f32f-9b9d-9399b737a09d

 

やってみる

上から順に実行してみて下さい.

Notebookの場所を指定する

https___qiita-image-store.s3.amazonaws.com_0_102253_2de41de4-4195-3371-216f-610cdfd75532

Dataを読み込む

"Number"は, 数として読み込む事を指定(文字として読み込むときは"String"とします), "RecordLists"は, datファイル内の行ごとにサブリストとして読み込む(True)事を指定しています. Falseにすると全て1行のリストとして読み込みます. ( 末尾に ; をつけると出力オフになります[計算はされています] )

https___qiita-image-store.s3.amazonaws.com_0_102253_eb8e2abe-2cd9-ade3-dba1-6f9874862381

 

Dataをキレイに並べて表示する

ReadList_test3.png

 

Dataから行ごとに取り出す

ReadList_test4.png

Esc+[[+Esc で [[ になります. "Esc+[[+Esc"と"[["は同じものです. ( "==="は両辺の真偽を問う関数です. ) ReadList_test5.png

 

Dataから列ごとに取り出す

ReadList_test6.png

 

Dataから指定の列たちを好きな順に取り出す

ReadList_test7.png

それを点でプロット

ReadList_test8.png

点をつなげてプロット

ReadList_test9.png

Dataから指定の列たちを1列以上取り出す

ReadList_test10.png

これは元のデータと同じ ReadList_test11.png

Zの値を半分にし, Xと合わせたリストを作ってみる

ReadList_test12.png

それをプロット

ReadList_test13.png

3次元的にプロットしてみる

ReadList_test14.png

3次元的にプロットしてみる(線でつなぐ)

( ListPointPlot3DにJoinedというoptionはありません. ) ReadList_test15.png

3次元的にプロットしてみる(面で補完する)

ReadList_test16.png

おわり

簡単な事ばかり書きましたが, どなたかのお役に立てば幸いです. 読んでいただきありがとうございました.