電子回路とか

何回目かもわからない

Pythonを始めた1(プロット1)

Pythonを初めたけど色々やっていると何が何かわからなくなるのでメモ程度に.

やったこと

グラフのプロット

使ったライブラリ

  • numpy(配列とか)
  • matplotlib(MATLAB的な(?))

pipを使ってインストール.pipの使い方とかは下のサイトを参考に.

Pythonで一番最初に入れるべきパッケージ setuptools と pip - Life with Python

python -m pip install numpy
python -m pip install matplotlib

ただのプロット

まずはsin関数をplotしてみる.

ソースコード
-*- coding: utf-8 -*-
# matplotlib.pyplot を plt として定義
import matplotlib.pyplot as plt
# numpy を np として定義 
import numpy as np       

# plotという関数を定義
def plot():
  # 角周波数 ω を-π ~ π まで 0.1 刻みで点を取る
    w = np.arange(-np.pi, np.pi, 0.1)
  # y = sinω
    y = np.sin(w)
  # w を横軸, y を縦軸にしてプロット                      
    plt.plot(w, y)
  # プロットしたグラフを表示                     
    plt.show()

# main関数
if __name__ == "__main__":
    plot() # plot()という関数を呼ぶ
実行結果

f:id:pt_okn:20160328002255j:plain

x,yの範囲を決める

ソースコード
-*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np


def plot_range():
    w = np.arange(-np.pi, np.pi, 0.1)
    y = np.sin(w)
    plt.plot(w, y)
  # w の最小 ~ w の最大までをプロット
    plt.xlim(min(w), max(w))
  # y も同様
    plt.ylim(min(y) - 0.1, max(y) + 0.1)
    plt.show()


if __name__ == "__main__":
    plot_range()
実行結果

f:id:pt_okn:20160328002328j:plain

目盛りやグリッドをつける

ソースコード
-*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as tick


def plot_grid():
    w = np.arange(-np.pi, np.pi, 0.1)
    y = np.sin(w)
    plt.plot(w, y)
    plt.xlim(min(w), max(w))
    plt.ylim(min(y) - 0.1, max(y) + 0.1)
  # x軸の主目盛りを1間隔で表示
    plt.gca().xaxis.set_major_locator(tick.MultipleLocator(1))
    # x軸の補助目盛りを0.5間隔で表示
    plt.gca().yaxis.set_major_locator(tick.MultipleLocator(0.5))
    # y軸も同様
    plt.gca().xaxis.set_minor_locator(tick.MultipleLocator(0.2))
    plt.gca().yaxis.set_minor_locator(tick.MultipleLocator(0.1))
    # グリッドを表示
    plt.grid()
    plt.show()


if __name__ == "__main__":
    plot_grid()
実行結果

f:id:pt_okn:20160328002309j:plain

すごく基礎的なことですが他にも色々書いていけたらなと思います.