第2回 - ターミナルの使い方 + matplotlib の使い方(1)

注意: 本日は、ブレイクアウトルームを使った演習があります。

雑談

世界をリアルタイムに見れるウェブサイトの紹介。

0. 前回までのあらすじ

演習 2-1. (前回の復習) パス名の練習
  1. 以下のパス名 (Mac) は絶対パス名か、相対パス名か?
    /home/shinyama/work
  2. カレントディレクトリが C のとき…
    A B C D E G H H K M カレントディレクトリ
    1. ファイル A への相対パス名を答えよ。
    2. ファイル M への相対パス名を答えよ。
  3. カレントディレクトリを /home/john とする:
    以下のフォルダ・ファイルを描き加えよ:
    home john
    • ./mail.txt (ファイル)
    • /share/ (フォルダ)
    • study/report.txt (ファイル)
    • ../work/exp1.data (ファイル)
    • /home/mary/fig.plot (ファイル)
    • ./study/../../game/ (フォルダ)

1. テキスト形式について (つづき)

演習 2-2. ファイルをテキスト形式として開く
  1. この授業スライドのページ (HTMLファイル) をブラウザで開き、ファイルとして保存せよ。
  2. 保存したファイルが置かれている位置 (パス名) を答えよ。
  3. HTMLファイルをテキストエディタで開き、中に隠されている合言葉を発見せよ。
    (なお、HTMLファイルを普通にダブルクリックするとブラウザが開いてしまうので、 テキストエディタを開いておいて、そこにドラッグ・ドロップするとよい。)

2. 「ターミナル (コマンド プロンプト)」とは何か?

2.1. ターミナルを起動する

Windowsの場合

Macの場合

2.2. ターミナルの使い方・超基本

  1. コマンドを入力して Enter を押す。
  2. コマンドには、実行するアプリのパス名を入力する。
  3. そのアプリが実行され、結果が表示される。
  4. → 1. に戻る。

文字入力するときの注意

演習 2-3. コマンドを入力する

アプリのパス名をコマンドとして入力すると、そのアプリが実行される。

2.3. ターミナルの便利な機能

演習 2-4. ターミナルの補完機能を使う
補完機能を使って、 以下のコマンドを20回以下のキー入力で入力せよ。

2.4. なぜターミナルがいいのか?

  1. 「やること」を言葉で書ける。
    アイコンやウィンドウを使った入力方式を GUI (Graphical User Interface) と呼ぶ。 これは、直感的ではあるが指示しにくい。
    「ここをクリックして、あれをドラッグして…」
  2. より細かく条件・処理を指定できる。
    例. 「東工大のウェブサイトにあるPDF形式のファイル」をすべて検索:
    Google検索: site:titech.ac.jp   filetype:pdf
  3. より厳密に書ける:
    • 「1から始まるn個の奇数を2乗したものをすべて足した数」
    • Σi=1...n (2i - 1)2

科学における再現性とは

3. ファイルとフォルダ (つづき)

ディスク A B C B E C K H K X C:
演習 2-5. lsコマンド・dirコマンド

以下のコマンドを入力し、結果を確認せよ。

3.1. カレント・フォルダ

演習 2-6. カレントフォルダの変更

以下のコマンドを順に実行し、何が起きたのか観察せよ:

現在の「注目しているフォルダ」のことを 「カレント・フォルダ」あるいは 「カレント・ディレクトリ」と呼ぶ。 (もともとフォルダはディレクトリと呼ばれていた。 用語としては、ディレクトリのほうが古い。)

Windowsの場合

Macの場合

演習 2-7. コマンドを使ったファイルの確認
  1. 自分のデスクトップ (フォルダ) のパス名を確認せよ。
  2. cd コマンドを使って、 現在の注目フォルダを自分のデスクトップフォルダに変更せよ。
  3. テキストエディタを使って、デスクトップ上にテキストファイルを作成せよ。
  4. pwd または ls コマンドを使って、 いま作成したファイル名が現れていることを確認せよ。

雑談・その2

4. matplotlib入門

4.1. matplotlib とは?

本授業では、おもに a. の方法を利用するが、 b. を使ってもよい (結果は同じである)。

Google Colaboratory を使う場合

  1. Google Colaboratory にログインする。
  2. File メニューから New Notebook を選ぶ。
  3. 以下のような画面が出る。この枠内に文字を入力する。

Jupyter Notebook を使う場合

  1. Jupyter Notebook を起動する。
  2. New Notebook (Python3) を選ぶ。
  3. 以下のような画面が出る。この枠内に文字を入力する。

4.2. グラフを描画する

演習 2-8. 最初のグラフを描画する

Google Colaboratory (あるいは Jupyter Notebook) で 以下のプログラムを入力し、 再生 (あるいは Run) ボタンを押して実行せよ。 (キーボードの Ctrl + Enter でも実行できる。)

ちなみに、この「プログラム」の内容は理解できなくて大丈夫。 基本的に与えられたものをコピー・ペーストすれば動く。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)

plt.plot(x, np.sin(x), label="sin(x)")

plt.xlabel("x label")
plt.ylabel("y label")
plt.title("Simple Plot")
plt.legend()
plt.show()

正しく動作していれば、以下のような画面が表れるはずである:

時間に余裕があれば、以下もやってみよう:

演習 2-9. いろいろなグラフを描く
  1. 上のプログラムの中で、以下の行
    plt.plot(x, np.sin(x), label="sin(x)")
    
    を次のように書き換え、結果を観察せよ。
    plt.plot(x, x, label="linear")
    plt.plot(x, x**2, label="quadratic")
    plt.plot(x, x**3, label="cubic")
    
  2. プログラム中の "〜" で囲まれている部分 ("Simple Plot", "x label", "linear" など) を 書き換え、結果を観察せよ。
  3. (さらに時間がある人向け) Matplotlib Gallery にある プログラムをいくつか描画してみよう。

4.3. グラフを画像ファイルとして保存する

上のプログラムに以下の一行を追加すると、 描画したグラフを実際に PNGファイルとして保存 (ダウンロード) することができる。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)

plt.plot(x, np.sin(x), label="sin(x)")

plt.xlabel("x label")
plt.ylabel("y label")
plt.title("Simple Plot")
plt.legend()
plt.savefig("sinx.png")
plt.show()

注意: plt.savefig(...) の部分は 必ず plt.show() の前に書くこと。

Google Colaboratory を使う場合

Google Colaboratory は、内部にファイルを持っている。 上のプログラムが正しく動作すると、 sinx.png ファイルが生成される。 これを自分の PC にダウンロードするには、以下のようにする。

  1. 画面の左側の「フォルダ」アイコンをクリックする。
  2. 初期化にしばらく時間がかかるので、10秒ぐらい待つ。
  3. sinx.png というファイルが表示されるので、 右クリックして Download を選ぶ。
  4. ダウンロードしたファイルを PC 上に保存する。

Jupyter Notebook を使う場合

Juypter Notebook では、 画像ファイルは自分のホームフォルダ内に保存されている。 フォルダを開いて sinx.png が生成されていることを確認する。

(なお、作成した Notebook 自体もホームフォルダ内に保存されている。)

ブレイクアウトルーム演習

各自ブレイクアウトルームに分かれて、 上の matplotlib の演習 2-8, 2-9 を実際にやってみよう。

  1. 全員で簡単な自己紹介をする。(カメラをオンにしたほうが仲良くなりやすい。)
  2. まだ演習が終わっていない人 (あるいは、何すればいいかわからない人) が手をあげる。
  3. その人の画面を共有し、周囲の人がやり方をガイドする。(TAも巡回します)
  4. 全員が終わったら、残りの時間は雑談する。

注意: ネット接続が不安定になる人は、カメラを切ってもよい。 万が一、接続が途切れてしまったときは、もう一度入りなおすこと。

5. 本日のまとめ・小課題

小課題 2. グラフの画像を保存する (6月27日締切)