pianofisica

Mathematics & Physics, Maxima, a bit Python & Wolfram, and Arts

Matplotlibでグラフを描くときの詳細設定

数学の具体的な計算にPythonを使って、数学もPythonも同時に学んでしまいましょう。今回はPythonを使って関数のグラフを作成してみたいと思います。本記事は、次の過去記事の続編となります:

pianofisica.hatenablog.com



 
 

関数を描画する

例として5次の多項式関数

 \quad\displaystyle{f(x)=x^5+x^4-10x^3+2x-8}

をグラフに描いてみます:

import matplotlib.pyplot as plt
import numpy as np

N = 100
x_min = -4
x_max = 3.2

def f(x):
    return x**5+x**4-10*x**3+2*x-8

x = np.linspace(x_min, x_max, N)
y = f(x)

plt.plot(x, y)

plt.show()

から

というグラフが作成されます。

この描画の方法では、プロット範囲の分割点での関数値を直線でつないでいるので、分割数を小さくとってしまうと作成されるグラフはガタガタになってしまうことに注意が必要です。
 


タイトル・軸の名前を追加する

import matplotlib.pyplot as plt
import numpy as np

N = 100
x_min = -4
x_max = 3.2

def f(x):
    return x**5+x**4-10*x**3+2*x-8

x = np.linspace(x_min, x_max, N)
y = f(x)

plt.plot(x, y)

# 日本語を文字化けさせずに使用するためには、y-軸の例のように
# 第2引数で利用可能な日本語フォントを指定する必要があります
# matplotlibで利用可能なフォントを確認する方法は下のコードを参照してください

# グラフタイトルの作成
plt.title('title: y=f(x)')

# x-軸のタイトルの作成
plt.xlabel('x-axis')

# y-軸のタイトルの作成
plt.ylabel('y-軸', fontname='Hiragino Sans')

plt.show()


 

利用可能なフォントを確認する

import matplotlib
fonts = set([f.name for f in matplotlib.font_manager.fontManager.ttflist])
print(fonts)

 

補助目盛を追加する

import matplotlib.pyplot as plt
import numpy as np

N = 100
x_min = -4
x_max = 3.2

def f(x):
    return x**5+x**4-10*x**3+2*x-8

x = np.linspace(x_min, x_max, N)
y = f(x)

plt.plot(x, y)

# 補助目盛はminorticks_on関数で追加できます
plt.minorticks_on()

plt.show()


 

補助線を追加する

import matplotlib.pyplot as plt
import numpy as np

N = 100
x_min = -4
x_max = 3.2

def f(x):
    return x**5+x**4-10*x**3+2*x-8

x = np.linspace(x_min, x_max, N)
y = f(x)

plt.plot(x, y)

# 補助線はgrid関数で追加できます
plt.grid()

plt.show()


 

グラフ線の色を指定する

import matplotlib.pyplot as plt
import numpy as np

N = 100
x_min = -4
x_max = 3.2

def f(x):
    return x**5+x**4-10*x**3+2*x-8

x = np.linspace(x_min, x_max, N)
y = f(x)

# グラフ線はplot関数の第3引数で色を指定できます
# 主な利用可能な色は下の表にまとめられています
plt.plot(x, y, color='red')

plt.show()


 
主な利用可能な色には次があります。



 



 

グラフ線のスタイルを指定する

import matplotlib.pyplot as plt
import numpy as np

N = 100
x_min = -4
x_max = 3.2

def f(x):
    return x**5+x**4-10*x**3+2*x-8

x = np.linspace(x_min, x_max, N)
y = f(x)

# グラフ線はplot関数の第3引数で線のスタイルを指定できます
# 主な利用可能な線のスタイルは下の表にまとめられています
plt.plot(x, y, linestyle='dotted')

plt.show()


 
主な利用可能なグラフ線のスタイルには次があります。

グラフ線の太さを指定する

import matplotlib.pyplot as plt
import numpy as np

N = 100
x_min = -4
x_max = 3.2

def f(x):
    return x**5+x**4-10*x**3+2*x-8

x = np.linspace(x_min, x_max, N)
y = f(x)

# グラフ線はplot関数の第3引数で線の太さを指定できます
plt.plot(x, y, linewidth=4)

plt.show()


 
色・スタイル・太さをまとめて指定するには以下のようにします:

import matplotlib.pyplot as plt
import numpy as np

N = 100
x_min = -4
x_max = 3.2

def f(x):
    return x**5+x**4-10*x**3+2*x-8

x = np.linspace(x_min, x_max, N)
y = f(x)

# 第3引数以降はオプション指定で、どの順番で書いても同じです
plt.plot(x, y, linewidth=4, color='g', linestyle='dashed')

plt.show()


 

片対数グラフに描画する

import matplotlib.pyplot as plt
import numpy as np

N = 50
x_min = -2
x_max = 2

def g(x):
    return np.exp( 2 * x )

x = np.linspace(x_min, x_max, N)
y = g(x)

# y軸を対数グラフにするには以下のコマンドを追加します
plt.yscale("log")

# 補助目盛と補助線を追加しておきます
plt.minorticks_on()
plt.grid(which='both')

plt.plot(x, y)

plt.show()


 

以上、今回はPythonで関数のグラフを作成する方法をみました。






キーワードPython、関数、グラフ作成、プロット

プライバシーポリシー