他のプログラムで作成したデータをMathematicaで読み込んで可視化してみる

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

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


##**準備**
**用意するもの**
1. Mathematica
2. importするファイル

テストファイルは
https://github.com/KeitaSumiya/Mathematica.git
内の
ReadList_Test
です. 

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

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

![test-data.png](https://qiita-image-store.s3.amazonaws.com/0/102253/c71d6a35-2532-f32f-9b9d-9399b737a09d.png)



##**やってみる**
上から順に実行してみて下さい. 

###Notebookの場所を指定する
![ReadList_test1.png](https://qiita-image-store.s3.amazonaws.com/0/102253/2de41de4-4195-3371-216f-610cdfd75532.png)

###Dataを読み込む
"Number"は, 数として読み込む事を指定(文字として読み込むときは"String"とします), 
"RecordLists"は, datファイル内の行ごとにサブリストとして読み込む(True)事を指定しています. 
Falseにすると全て1行のリストとして読み込みます. 
( 末尾に ; をつけると出力オフになります[計算はされています] )
![ReadList_test2.png](https://qiita-image-store.s3.amazonaws.com/0/102253/eb8e2abe-2cd9-ade3-dba1-6f9874862381.png)

###Dataをキレイに並べて表示する
![ReadList_test3.png](https://qiita-image-store.s3.amazonaws.com/0/102253/e4ec3753-cc89-0cf5-5b20-b65b9834b0de.png)

###Dataから行ごとに取り出す
![ReadList_test4.png](https://qiita-image-store.s3.amazonaws.com/0/102253/43f4b5e8-8ca5-1a3b-d8dc-2630d9801a11.png)

Esc+[[+Esc で [[ になります. "Esc+[[+Esc"と"[["は同じものです. 
( "==="は両辺の真偽を問う関数です. )
![ReadList_test5.png](https://qiita-image-store.s3.amazonaws.com/0/102253/45325288-43eb-4ee6-655d-7bfbef1c00b3.png)

###Dataから列ごとに取り出す
![ReadList_test6.png](https://qiita-image-store.s3.amazonaws.com/0/102253/efa50fbc-2da9-8ec1-f32f-e7b049af8769.png)

###Dataから指定の列たちを好きな順に取り出す
![ReadList_test7.png](https://qiita-image-store.s3.amazonaws.com/0/102253/e64b95c8-ee4d-abbd-f0c2-8163ad85ef9a.png)

###それを点でプロット
![ReadList_test8.png](https://qiita-image-store.s3.amazonaws.com/0/102253/688beeeb-5c8b-bbe7-d6cb-b3b78825e7f6.png)

###点をつなげてプロット
![ReadList_test9.png](https://qiita-image-store.s3.amazonaws.com/0/102253/4bf665dd-1015-dcc2-f8ac-8b282c36e47b.png)

###Dataから指定の列たちを1列以上取り出す
![ReadList_test10.png](https://qiita-image-store.s3.amazonaws.com/0/102253/dd44df42-f56b-ef48-2a28-60cfa338d4d1.png)

これは元のデータと同じ
![ReadList_test11.png](https://qiita-image-store.s3.amazonaws.com/0/102253/04325947-edcb-4e84-9fa7-05fbbfecc3c5.png)

###Zの値を半分にし, Xと合わせたリストを作ってみる
![ReadList_test12.png](https://qiita-image-store.s3.amazonaws.com/0/102253/fcb55fc8-f07f-d451-31c3-188431609558.png)

###それをプロット
![ReadList_test13.png](https://qiita-image-store.s3.amazonaws.com/0/102253/323fc902-95f7-1e9e-097c-98129bb74d24.png)

###3次元的にプロットしてみる
![ReadList_test14.png](https://qiita-image-store.s3.amazonaws.com/0/102253/86a6ab43-bdd8-afbe-4a6c-f82f0528f25c.png)

###3次元的にプロットしてみる(線でつなぐ)
( ListPointPlot3DにJoinedというoptionはありません. )
![ReadList_test15.png](https://qiita-image-store.s3.amazonaws.com/0/102253/03cf82fc-b1c7-2a81-8a9d-5290d6d18437.png)

###3次元的にプロットしてみる(面で補完する)
![ReadList_test16.png](https://qiita-image-store.s3.amazonaws.com/0/102253/a9e59929-f936-261b-417c-a57329d700d2.png)


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