dir または ls コマンドは何をするか?
/Applications/Safari.app/Contents/MacOS/...
実は「パス名」と呼ばれているものには 2つの種類がある。 前回の授業でいう「パス名」は、「絶対パス名」のことであった。
/A/E/X
./X
. (ドット)」で表す:
./X, ./K など
..」で表せる。
../../../../../../../Application =
/Application
カレントディレクトリが E のとき…
A への相対パス名は?
H への相対パス名は?
K への相対パス名は? (2つある)
cd コマンドを入力して
自分のホームフォルダに移動せよ。
cd コマンドを利用してカレントディレクトリを変更せよ。
C:\Windows フォルダ
/Application フォルダ
cd コマンドを実行したか?
dir / ls コマンドに相対パス名を与え、
自分のホームフォルダの一覧を表示させよ。
以下の例における > や % は
実際に入力する文字ではなく、各行に毎回表示される
プロンプト ("C:\Users\euske>" や
"euske@shinyama-macbook ~ %" など) を表す。
> start パス名 (絶対または相対)
指定したパス名のフォルダをエクスプローラーで開く。
> ren 旧パス名 新パス名
ファイルの名前を変更する。
> copy 元パス名 新パス名
ファイルを別名でコピーする。
> del パス名
ファイルを削除する。
(ゴミ箱と違い、一瞬で削除されるので注意!)
% open パス名 (絶対または相対)
指定したパス名のフォルダをFinderで開く。
% mv 旧パス名 新パス名
ファイルの名前を変更する。
% cp 元パス名 新パス名
ファイルを別名でコピーする。
% rm パス名
ファイルを削除する。
(ゴミ箱と違い、一瞬で削除されるので注意!)
コマンド プロンプトまたはターミナルを起動し、以下の操作を実行せよ: (注意: 各コマンドは、成功したときには何も表示しない)
start . または open . と入力せよ。
何が起こるか?
ren / mv コマンドを使って
そのファイル名を変更せよ。
copy / cp コマンドを使って、
そのファイルを別の名前でコピーせよ。
del / rm コマンドを使って、
そのファイルを削除せよ。
「プログラミングをやりたい」 = 「運動をやりたい」
実際にやりたいのは?
matplotlib の本当の使い方は sin(x) などのグラフを描くことではなく、 実験データをプロットすることである。ここでは、外部から テキスト形式のデータを与えることで、任意のグラフを描画する。
data1.txt という名前で保存する:
1 10 2 40 3 25 4 100 5 60
data1.txt を
ホームフォルダ (Notebookファイルが入っているフォルダ) の中に置けばよい。)

import numpy as np
import matplotlib.pyplot as plt
a = np.genfromtxt("./data1.txt")
plt.plot(a[:,0], a[:,1], label="data1", color="blue")
a = np.genfromtxt("./data1.txt")
plt.bar(a[:,0], a[:,1], label="data1", color="red")
plt.title("Simple Plot")
plt.xlabel("x label")
plt.ylabel("y label")
plt.legend()
plt.savefig("./plot1.png")
plt.show()
正しく動いていれば、以下のようなグラフが表示されるはずである:

data1.txt を開いて中の値を適当に書き換え、
グラフを再描画させて内容が変化していることを確認する。
上の演習 3-5. で使った matplotlib プログラムを簡単に解説する。
まず、最初の2行は、とにかく必要。
次にプロットを描く部分が続く。 これは基本的に、以下の繰り返しである。 まず、どのファイルをデータとして使うか (import numpy as np import matplotlib.pyplot as plt
./data1.txt) を指定し、
そのプロットの名前 (data1)、
および線の色 (blue) を指定している。
ファイルの指定には相対パスが使われる。
a = np.genfromtxt("./data1.txt")
plt.plot(a[:,0], a[:,1], label="data1", color="blue")
次の部分は前とほとんど同じだが、plot の部分が bar に
変わっている。こうすると折れ線グラフではなく、棒グラフが描かれる。
a = np.genfromtxt("./data1.txt")
plt.bar(a[:,0], a[:,1], label="data1", color="red")
最後に、グラフの題名を「Simple Plot」、
X軸、Y軸の表示をそれぞれ「x label」「y label」に設定し、
完成したグラフを ./plot1.png というファイル名で保存する。
このときのファイル名も実は相対パス名である。
plt.title("Simple Plot")
plt.xlabel("x label")
plt.ylabel("y label")
plt.legend()
plt.savefig("./plot1.png")
plt.show()
つぎに、クラス共通課題の 論文で使われる 本物のグラフを作成しよう。 まず、図 5. 「実行時間比較」から始めることにする。
kadai-plot-data というフォルダをデスクトップに移動する。kadai-plot-data フォルダをドラッグ・ドロップする。
これにより、フォルダの中身が Google Drive にアップロード (送信) される。
注意:
zipファイルの中から直接 kadai-plot-data をドラッグ・ドロップしないこと。
必ず一度、デスクトップ上に出してからでないと、うまく動かない。

kadai-plot-data フォルダが
表示されているはずである。このフォルダの相対パス名は
./drive/My Drive/kada-plot-data である。

import numpy as np
import matplotlib.pyplot as plt
a = np.genfromtxt("./drive/My Drive/kadai-plot-data/cnm/etime-size.txt")
plt.plot(a[:,0], a[:,1], label="CNM", linestyle="-.", color="black")
a = np.genfromtxt("./drive/My Drive/kadai-plot-data/he2/etime-size.txt")
plt.plot(a[:,0], a[:,1], label="HE'", linestyle=":", color="black")
a = np.genfromtxt("./drive/My Drive/kadai-plot-data/he1/etime-size.txt")
plt.plot(a[:,0], a[:,1], label="HE", linestyle="--", color="black")
a = np.genfromtxt("./drive/My Drive/kadai-plot-data/hn/etime-size.txt")
plt.plot(a[:,0], a[:,1], label="HN", linestyle="-", color="black")
plt.xlabel("Size of Social Network")
plt.ylabel("Elapsed Time [sec]")
plt.legend()
plt.show()
正しく動いていれば、以下のようなグラフが表示されるはずである:

演習 3-6. でやったグラフを修正して、以下のようなグラフ
(論文の図6) を描け。
このときの matplotlib のプログラム (画像ファイルではない) を
テキストファイルで提出せよ。
ファイル名はなんでもよいが、拡張子は .txt であること。

演習 3-6. のグラフとの違い:
cnm, hn2, hn1, hn の
各フォルダにある etime-size.txt というデータを使ってプロットしていたが、
今回のプロットは各フォルダにある etime-size-M.txt というデータを
使ってプロットすること。
ここで作成したグラフは、今後の課題でも利用するので 着実に完成させよう。