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
というデータを
使ってプロットすること。
ここで作成したグラフは、今後の課題でも利用するので 着実に完成させよう。