グラフの軸の設定【Python】

軸の表示・非表示を切り替える

Axesクラスのset_axis_onメソッド、set_axis_offメソッドを用いて軸の表示・非表示を切り替えます。デフォルトでは軸は表示されますが、以下のようにして非表示にできます。

import numpy as np
import matplotlib.pyplot as plt
  
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
  
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_axis_off()
plt.show()

軸のラベルを設定する

軸のラベルはAxesクラスのset_xlabelメソッド、set_ylabelメソッドを用いて設定できます。(pyplotスタイルの場合は、pyplotのxlabel関数、ylabel関数を用います)

import numpy as np
import matplotlib.pyplot as plt
 
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
 
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
plt.show()

set_xlabelメソッド、set_ylabelメソッドの**kwargs引数にTextクラスのプロパティを指定することで、文字のフォントを指定できます。代表的なプロパティの効果はこちらをご覧ください。

import numpy as np
import matplotlib.pyplot as plt
 
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
 
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlabel('X-axis', backgroundcolor='yellow', color='red')
ax.set_ylabel('Y-axis', backgroundcolor='green', color='blue')
plt.show()

軸の目盛りを設定する

任意の目盛りを表示させる

軸の目盛はAxesクラスのset_xticksメソッド、set_yticksメソッドを用いて設定できます。(pyplotスタイルの場合はpyplotのxticks関数、yticks関数を用います)

import numpy as np
import matplotlib.pyplot as plt
  
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
  
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xticks(np.arange(-3, 3.5, 3))
ax.set_xticks(np.arange(-3, 3.5, 0.5), True)
plt.show()

set_xticksメソッド、set_yticksメソッドではminor引数で主目盛り・補助目盛りのどちらを設定するかを決められます。

主目盛りの方が補助目盛りよりも若干長い目盛りとして表示され、主目盛りにはデフォルトで目盛りラベルも表示されます。

目盛りを表示させない場合

目盛りを表示させない場合は、以下のように空白のリストを引数に設定します。

import numpy as np
import matplotlib.pyplot as plt
  
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
  
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xticks([])
ax.set_yticks([])
plt.show()

軸の目盛りラベルを設定する

主目盛りのラベルはデフォルトでその数値が設定されますが、set_xticklabelsメソッド、set_yticklabelsメソッドを用いて、任意の文字列に目盛りラベルを書き換えることができます。**kwargs引数にTextクラスのプロパティを指定することで、文字のフォントを指定できます。代表的なプロパティの効果はこちらをご覧ください。

import numpy as np
import matplotlib.pyplot as plt
  
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
  
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xticks(np.arange(-3, 3.5, 1))
ax.set_xticks(np.arange(-3, 3.5, 0.5), True)

major_labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
ax.set_xticklabels(major_labels, color='red', fontfamily='fantasy', fontsize='xx-large')
minor_labels = ['a', 'b', 'c', 'd', 'e', 'f']
ax.set_xticklabels(minor_labels, minor=True, color='blue', fontfamily='fantasy', fontsize='medium')
plt.show()

なお、set_xticklabelsメソッド、set_yticklabelsメソッドは、目盛りラベルが小さい方から順番に設定されるので、目盛りラベルに設定した文字列のリストが目盛りよりも少ない場合は以下のようになります。

import numpy as np
import matplotlib.pyplot as plt
  
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
  
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xticks(np.arange(-3, 3.5, 1))
ax.set_yticks(np.arange(-1, 1.25, 0.25))

x_labels = ['A', 'B']
ax.set_xticklabels(x_labels, color='red', fontsize='xx-large')
y_labels = ['a', 'b']
ax.set_yticklabels(y_labels, color='blue', fontsize='xx-large')
plt.show()

関連記事・スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です