[Matplotlib] 軸と軸ラベルの設定

[Matplotlib] 軸と軸ラベルの設定

軸の範囲設定

 x 軸, y 軸の範囲は、それぞれ Axes.set_xlim()メソッドAxes.set_ylim()メソッドによって設定できます。

# y = xlogx のグラフ

# 必要なモジュールをインポート
import numpy as np
import matplotlib.pyplot as plt

# Figureを設定
fig = plt.figure()

# グラフ描画領域を追加
ax = fig.add_subplot(111)

# Axesのタイトルを設定
ax.set_title("y = xlogx", fontsize = 16)

# 0.1~4.0まで0.01刻みのデータを作成
x = np.arange(0.1, 4.0, 0.01)

# y = xlogx
y = x * np.log(x)

# 軸範囲の設定
ax.set_xlim(0, 2)
ax.set_ylim(-1, 2)

# データをプロット
ax.plot(x, y, color = "r")

 Axes.set_xlim()メソッドによる軸の範囲設定

 このコードでは x のデータは 0.1 ~ 4.0 まで 0.01 刻みで作成しますが、ax.set_xlim()メソッドで x 軸の範囲を 0 ~ 2 に設定してあるので、その範囲でグラフが表示されています。
 

対数軸の設定

 x 軸、y 軸を対数軸に設定する場合は、それぞれ Axes.set_xscale()メソッド, Axes.set_yscale()メソッドの引数に "log" を渡します。片方の軸を対数軸に設定すると片対数、両軸を対数軸に設定すると両対数グラフとなります。

# xのx乗のグラフ

# 必要なモジュールをインポート
import numpy as np
import matplotlib.pyplot as plt

# Figureを設定
fig = plt.figure()

# Axesを追加
ax = fig.add_subplot(111)

# Axesのタイトルを設定
ax.set_title("y = x**x", fontsize = 16)

# 0~4.0まで0.01刻みのデータを作成
x = np.arange(0, 4.0, 0.1)

# y = x ** x
y = x ** x

# x軸を対数軸に設定
ax.set_yscale("log")

# データをプロット
ax.plot(x, y, color = "r")

 Axes.set_xscale()メソッドによる対数軸の設定
 

ビジネスPython超入門

新品価格
¥2,592から
(2019/8/21 23:35時点)

軸ラベルの設定

 Axes.set_xlabel()メソッドAxes.set_ylabel()メソッドで x 軸、y 軸にラベルを添えることができます。第 2 引数以降でフォントのスタイルやサイズ、太さなどを設定できます。

# 逆三角関数のグラフ

# 必要なモジュールをインポート
import numpy as np
import matplotlib.pyplot as plt

# Figureを設定
fig = plt.figure()

# Axesを追加
ax = fig.add_subplot(111)

# Axesのタイトルの設定
ax.set_title("y = arcsin(x)", fontsize = 16)

# 軸ラベルの設定
ax.set_xlabel("x", size = 14, weight = "light")
ax.set_ylabel("y", size = 14, weight = "light")

# xのデータを作成 [-1~1], Δx = 0.1
x = np.arange(-1, 1, 0.01)

# y = arcsin(x)
y = np.arcsin(x)

# データをプロット
ax.plot(x, y, color = "g")

 Axes.set_xlabel()メソッドによる軸ラベルの設定
 

軸範囲の自動設定

 subplots()関数の sharex, sharey オプションに True を渡すと、すべての Axes の x 軸、y 軸のの軸範囲が揃えられます。

# 必要なモジュールをインポート
import numpy as np
import matplotlib.pyplot as plt

# (x,y)データの作成
x1 = np.arange(0, 10, 0.1)
y1 = np.cos(x1)
x2 = np.arange(0, 20, 0.1)
y2 = 2 * np.sin(x2)

# Figureオブジェクトと2行1列のAxes配列を作成
fig, axes = plt.subplots(2, 1, sharex = True, sharey = True)

axes[0].plot(x1, y1)
axes[1].plot(x2, y2)

 subplots()関数にsharexオプションを与えて軸範囲を揃える
 [参考文献] PythonユーザのためのJupyter[実践]入門