User Tools

Site Tools


python:matplotlib:基本的な使い方

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
python:matplotlib:基本的な使い方 [2018/01/20 22:18]
koudai
python:matplotlib:基本的な使い方 [2018/01/21 00:27]
koudai [初めてのプロット]
Line 10: Line 10:
 ===== 初めてのプロット ===== ===== 初めてのプロット =====
  
-とりあえず何か書いてみましょう。+とりあえずsin関数を書いてみましょう。
 次のスクリプトを作成します。 次のスクリプトを作成します。
  
Line 17: Line 17:
 import matplotlib.pyplot as plt import matplotlib.pyplot as plt
  
-x = np.arange(-np.pinp.pi, 0.1)  # xを-πからπまで0.1刻みで用意する +x = np.arange(-55, 0.1)   # xを-5から5まで0.1刻みで用意する 
-y = np.sin(x)                      # y = sin x+y = np.sin(x)               # y = sin x
  
 plt.plot(x, y)   # 横軸をxとして y=y(x) のグラフをプロットする plt.plot(x, y)   # 横軸をxとして y=y(x) のグラフをプロットする
Line 33: Line 33:
 あるいはplt.savefigを使うとファイルに直接出力できます。 あるいはplt.savefigを使うとファイルに直接出力できます。
  
-<file python sin.py>+<file python>
 import numpy as np import numpy as np
 import matplotlib.pyplot as plt import matplotlib.pyplot as plt
  
-x = np.arange(-np.pinp.pi, 0.1)+x = np.arange(-55, 0.1)
 y = np.sin(x) y = np.sin(x)
  
 plt.plot(x, y) plt.plot(x, y)
-plt.savefig("sin.png"  # プロットしたグラフを画面表示する+plt.savefig("sin.png"  # プロットしたグラフをファイルsin.png保存する
 </file> </file>
  
Line 59: Line 59:
   * tiff   * tiff
 です。 です。
-拡張子により自動判別されます。+ファイルの種類は拡張子により自動判別されます。 
 + 
 + 
 +===== グラフの表示範囲の指定 ===== 
 + 
 +プロットしたグラフを画面に表示する際、そのままだとすべてのデータが枠内に収まるように表示されます。 
 +表示したい範囲を制限したい場合は次のようにします。 
 + 
 +<file python sin.py> 
 +import numpy as np 
 +import matplotlib.pyplot as plt 
 + 
 +x = np.arange(-5, 5, 0.1)  
 +y1 = np.sin(x) 
 +y2 = np.cos(x) 
 + 
 +plt.title("graph"
 +plt.xlabel("x"
 +plt.ylabel("y"
 + 
 +plt.plot(x, y1, label="sin x") 
 +plt.plot(x, y2, label="cos x") 
 +plt.legend() 
 + 
 +plt.xlim(-np.pi, np.pi)   # x軸は-πからπまで 
 +plt.ylim(-1.2,   1.2)     # y軸は-1.2から1.2まで 
 + 
 +plt.show() 
 +</file> 
 + 
 +{{:python:matplotlib:intro2.png?direct&400|}} 
 + 
  
  
Line 67: Line 99:
 ついでにタイトルもつけます。 ついでにタイトルもつけます。
  
-<file python sin.py>+<file python>
 import numpy as np import numpy as np
 import matplotlib.pyplot as plt import matplotlib.pyplot as plt
  
-x = np.arange(-np.pinp.pi, 0.1)+x = np.arange(-55, 0.1)
 y = np.sin(x) y = np.sin(x)
-plt.title("graph"      # グラフのタイトル +plt.title("graph"  # グラフのタイトル 
-plt.xlabel(r"$x$"      # x軸(横軸)のラベル +plt.xlabel("x"     # x軸(横軸)のラベル 
-plt.ylabel(r"$\sin x$" # y軸(縦軸)のラベル+plt.ylabel("sin x" # y軸(縦軸)のラベル
  
 plt.plot(x, y) plt.plot(x, y)
 +
 +plt.xlim(-np.pi, np.pi)
 +plt.ylim(-1.2,   1.2)
 +
 plt.show() plt.show()
 </file> </file>
  
-ここで<nowiki>r"..."</nowiki>することで +{{:python:matplotlib:intro3.png?direct&400|}} 
-これ+ 
 + 
 +===== 複数のグラフ ===== 
 + 
 +複数のグラフを同時にプロットしたい場合を扱います。 
 +例えばsin関数とcos関数を同時にプロットしたい場合は、次のようにします。 
 +どっちのグラフがどっちの関数かわからなくなるの凡例(legend)をつけます。 
 + 
 +<file python> 
 +import numpy as np 
 +import matplotlib.pyplot as plt 
 + 
 +x = np.arange(-5, 5, 0.1) 
 +y1 = np.sin(x) 
 +y2 = np.cos(x) 
 + 
 +plt.title("graph"
 +plt.xlabel("x"
 +plt.ylabel("y"
 + 
 +plt.plot(x, y1, label="sin x"  # labelに凡例に表示する文字を指定 
 +plt.plot(x, y2, label="cos x") 
 +plt.legend()                     # 凡例を表示 
 + 
 +plt.xlim(-np.pi, np.pi) 
 +plt.ylim(-1.2,   1.2) 
 + 
 +plt.show() 
 +</file> 
 + 
 +{{:python:matplotlib:intro4.png?direct&400|}} 
 + 
 +凡例の表示する位置は、matplotlibが適切な位置を自動的に探します。 
 +手動設定する場合は、例えば左上の場合は <file python>plt.legend(loc="upper left")</file>とします。 
 +(右下の場合は lower right とします。他も同様) 
 + 
 + 
  
 ====== データのプロット ====== ====== データのプロット ======
  
 +次に配列に格納されているデータをプロットしてみましょう。
 +以下では$y=x^2$のデータを用意しました。
 +配列のサイズはx成分とy成分で同じにします。
 +
 +<file python>
 +import numpy as np
 +import matplotlib.pyplot as plt
 +
 +x = [1,2,3,4,5,6,7,8,9,10]         # データのx成分
 +y = [1,4,9,16,25,36,49,64,81,100]  # データのy成分
 +
 +plt.title("graph")
 +plt.xlabel("x")
 +plt.ylabel("y")
 +
 +plt.plot(x, y)
 +
 +plt.show()
 +</file>
 +
 +{{:python:matplotlib:intro5.png?direct&400|}}
  
 +各データは直線で結ばれます。
 +もし点だけにしたいなら<file python>plt.plot(x, y, "o")</file>とします(oは丸い点の意味です。その他については別のページで解説します)。
  
  
python/matplotlib/基本的な使い方.txt · Last modified: 2021/06/27 22:04 (external edit)