Matplotlib での twinx と twiny
-
Python の
matplotlib.axes.twinx()
を使用する -
Python Matplotlib の
matplotlib.axis.Axes.twiny()
-
Matplotlib
twinx()
とtwiny()
を併用する
このチュートリアルでは、Python の matplotlib.axes.Axes.twinx()
と matplotlib.axes.twiny()
を使って、共通の X 軸または Y 軸を持つ双軸を Matplotlib で作成する方法を説明します。
Python の matplotlib.axes.twinx()
を使用する
関数 matplotlib.axis.Axes.twinx()
は、初期軸と共通の X 軸
を共有する他の軸を Matplotlib 図の中に作成します。
import matplotlib.pyplot as plt
students = ["Anil", "Sohit", "Hrishav", "Ayush", "Sunil"]
heights_in_cms = [165, 160, 140, 150, 130]
fig, axes = plt.subplots()
fig.set_size_inches(8, 6)
axes.bar(students, heights_in_cms)
y1, y2 = axes.get_ylim()
axes.set_xlabel("Students", fontsize=12)
axes.set_ylabel("Height in cms", fontsize=12)
twin_axes = axes.twinx()
twin_axes.set_ylim(y1 * 0.394, y2 * 0.394)
twin_axes.set_ylabel("Height in Inches", fontsize=12)
fig.suptitle("Plot using matplotlib.axes.Axes.twinx()", fontsize=15)
plt.show()
出力:
これは学生の身長の棒グラフを作成します。左の Y 軸ラベルは学生の身長を cm
で表し、右の Y 軸ラベルは学生の身長を inches
で表します。
ここでは、x 軸を axes
と共有する新しい軸 twin_axes
を作成します。axes
の Y 軸のラベルには Height in cms
が設定されており、twin_axes
の Y 軸には Height in Inches
が設定されています。
Python Matplotlib の matplotlib.axis.Axes.twiny()
関数 matplotlib.axis.Axes.twiny()
は、初期軸と共通の Y 軸を共有する他の軸を Matplotlib 図の中に作成します。
import matplotlib.pyplot as plt
distance_in_kms = [10, 20, 30, 40, 50]
fare_in_dollars = [2, 3.5, 5, 7, 10]
fig, axes = plt.subplots()
fig.set_size_inches(10, 8)
axes.plot(distance_in_kms, fare_in_dollars)
x1, x2 = axes.get_xlim()
axes.set_xlabel("Distance in kms", fontsize=12)
axes.set_ylabel("Fare ($)", fontsize=12)
twin_axes = axes.twiny()
twin_axes.set_xlim(x1 * 0.62, x2 * 0.62)
twin_axes.set_xlabel("Distance in miles", fontsize=12)
fig.suptitle("Plot using matplotlib.axes.Axes.twiny()", fontsize=15)
plt.show()
出力:
新しい軸 twin_axes
を作成し、axes
と同じ Y 軸を持つようにします。axes
の X 軸のラベルは Distance in kms
に設定されており、twin_axes
の X 軸は Distance in miles
に設定されています。
Matplotlib twinx()
と twiny()
を併用する
import matplotlib.pyplot as plt
distance_in_kms = [10, 20, 30, 40, 50]
fare_in_dollars = [2, 3.5, 5, 7, 10]
fig, axes = plt.subplots()
fig.set_size_inches(10, 8)
axes.plot(distance_in_kms, fare_in_dollars)
x1, x2 = axes.get_xlim()
y1, y2 = axes.get_ylim()
axes.set_xlabel("Distance in kms", fontsize=12)
axes.set_ylabel("Fare ($)", fontsize=12)
twin_axes = axes.twinx().twiny()
twin_axes.set_ylim(y1 * 0.85, y2 * 0.85)
twin_axes.set_ylabel("Fare in Euros", fontsize=12)
twin_axes.set_xlim(x1 * 0.62, x2 * 0.62)
twin_axes.set_xlabel("Distance in miles", fontsize=12)
fig.suptitle("Matplotlib use twinx() and twiny() together", fontsize=15)
plt.show()
出力:
この関数は、図の四方に目盛りが付いた Matplotlib の図を作成します。axes
は左の X 軸と下の Y 軸を制御し、twin_axes
は右の X 軸と上の Y 軸を制御します。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn