今回はグラブの目盛りを変更する方法を紹介します。
目盛りとは
グラフにおける目盛りは、データの数値や範囲を表す役割があります。
データの可視化には欠かせません。
目盛りをさまざまな観点から変更する方法を紹介していきます。
目盛りの位置を変更する方法
Matplotlibで目盛りの位置を変更するには、set_xticks
あるいはset_yticks
を使用します。
リストで目盛りの位置を手動で指定します。
サンプルコードは以下の通りです。
左側がデフォルト目盛り、右側がset_xticks
, set_yticks
を使用し、位置を変更した目盛りです。
import matplotlib.pyplot as plt
# サンプルデータ
x = [1, 2, 3, 4, 5]
y = [10, 20, 30, 40, 50]
fig, axs = plt.subplots(1, 2, figsize=(9.6, 4.5)) # 1行2列のサブプロットを作成
# データをプロット
axs[0].plot(x, y)
axs[0].set_title("Default")
axs[1].plot(x, y)
axs[1].set_title("Customized")
# x軸の目盛りの位置を設定
axs[1].set_xticks([1, 3, 5]) # 目盛りの位置を指定
# y軸の目盛りの位置を設定
axs[1].set_yticks([0, 10, 20, 30, 40, 50]) # 目盛りの位置を指定
plt.show()
実行結果
x軸は1, 3, 5を、y軸は0, 10, 20, 30, 40, 50 を目盛りに指定しています。
目盛りのラベルを変更する方法
目盛りのラベルを変更することもできます。
Matplotlibで目盛りのラベルを変更するには、
set_xticks
, set_yticks
とset_xticklabels
, set_yticklabels
を合わせて使用します。
set_xticks
, set_yticks
で目盛りの位置を指定し、
その位置のラベルをset_xticklabels
, set_yticklabels
で変更します。
サンプルコードは以下の通りです。
左側がデフォルト目盛り、右側がset_xticks
, set_yticks
と
set_xticklabels
, set_yticklabels
を使用し、位置を変更した目盛りです。
import matplotlib.pyplot as plt
# サンプルデータ
x = [1, 2, 3, 4, 5]
y = [10, 20, 30, 40, 50]
fig, axs = plt.subplots(1, 2, figsize=(9.6, 4.5)) # 1行2列のサブプロットを作成
# データをプロット
axs[0].plot(x, y)
axs[0].set_title("Default")
axs[1].plot(x, y)
axs[1].set_title("Customized")
# x軸の目盛りのラベルを設定
axs[1].set_xticks([1, 2, 3, 4, 5]) # 目盛りの位置を指定
axs[1].set_xticklabels(['apple', 'banana', 'cherry', 'lemon', 'kiwi']) # 目盛りのラベルを指定
plt.show()
実行結果
今回の例ではフルーツの名前にラベルを変更してみました!
目盛り間隔を自動で変更する方法
これまでは目盛りを手動で変更する方法を紹介してきましたが、
目盛りの間隔を自動で変更することもできます。
Matplotlibで目盛りの間隔を自動で変更するには、
ticker
モジュールのMultipleLocator
クラスとset_major_locator
メソッドを使用します。
set_major_locator
メソッドは、主目盛りの位置を指定するオブジェクトを入れて使用します。
そのオブジェクトを指定した値を倍数で返すMultipleLocator
クラスで取得しています。
詳細はmatplotlibの公式サイトをご確認ください
サンプルコードは以下の通りです。
左側がデフォルト目盛り、
右側がMultipleLocator
クラスとset_major_locator
メソッドを使用し、
位置を変更した目盛りです。
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
# サンプルデータ
x = [1, 2, 3, 4, 5]
y = [10, 20, 30, 40, 50]
fig, axs = plt.subplots(1, 2, figsize=(9.6, 4.5)) # 1行2列のサブプロットを作成
# データをプロット
axs[0].plot(x, y)
axs[0].set_title("Default")
axs[1].plot(x, y)
axs[1].set_title("Customized")
# x軸の目盛りの間隔を設定
axs[1].xaxis.set_major_locator(MultipleLocator(2)) # 2の間隔で目盛りを設定
# y軸の目盛りの間隔を設定
axs[1].yaxis.set_major_locator(MultipleLocator(3)) # 3の間隔で目盛りを設定
plt.show()
実行結果
x軸を2の間隔、y軸を3の間隔で目盛りを表示しています。
目盛りのスタイルを変更する方法
目盛りのスタイルを変更する方法を紹介します。
目盛りのスタイルを変更するには、tick_params
メソッドを使用します。
tick_params
メソッドで目盛りのラベルや線のスタイルを変更します。
サンプルコードは以下の通りです。
左側がデフォルト目盛り、
右側がtick_params
メソッド使用し、スタイルを変更した目盛りです。
tick_params
メソッドで指定しているパラメータの説明は以下です。
axis
: 変更したい目盛りの軸
which
: 主目盛り(major)、副目盛り(minor)または両方(both)を選択。
labelsize
: フォントサイズ
width
: 目盛りのポイント幅
labelcolor
: ラベルの色
import matplotlib.pyplot as plt
# サンプルデータ
x = [1, 2, 3, 4, 5]
y = [10, 20, 30, 40, 50]
fig, axs = plt.subplots(1, 2, figsize=(9.6, 4.5)) # 1行2列のサブプロットを作成
# データをプロット
axs[0].plot(x, y)
axs[0].set_title("Default")
axs[1].plot(x, y)
axs[1].set_title("Customized")
# x軸の目盛りのフォントのスタイルを変更
axs[1].tick_params(axis='x', which='major', labelsize=15, width=3, labelcolor='blue')
plt.show()
実行結果
x軸の目盛りに対し、labelsize
が15
で、labelcolor
をblue
にしています。
目盛りを非表示にする方法
目盛りを非表示にすることもできます。
目盛りを非表示にするには、目盛りのスタイルを変更する方法と同様に
tick_params
メソッドを使用します。
サンプルコードは以下の通りです。
左側がデフォルト目盛り、
右側がtick_params
メソッド使用し、目盛りを非表示にしています。
top
, bottom
, left
, right
: 目盛りを表示するか非表示にするか
labelleft
: ラベルを表示するか非表示にするか
import matplotlib.pyplot as plt
# サンプルデータ
x = [1, 2, 3, 4, 5]
y = [10, 20, 30, 40, 50]
fig, axs = plt.subplots(1, 2, figsize=(9.6, 4.5)) # 1行2列のサブプロットを作成
# データをプロット
axs[0].plot(x, y)
axs[0].set_title("Default")
axs[1].plot(x, y)
axs[1].set_title("Customized")
# x軸の目盛りを非表示
axs[1].tick_params(axis='x', which='both', bottom=False, top=False, labelbottom=False)
# y軸の目盛りを非表示
axs[1].tick_params(axis='y', which='both', left=False, right=False, labelleft=False)
plt.show()
実行結果
目盛りを非表示にすることで、シンプルな外観を実現できます。
まとめ
今回は目盛りを変更する方法から非表示にする方法までを紹介しました。
目盛りを変更することで、相手に伝えたいメッセージをより明確にすることができます。
そして、相手にも伝わりやすくなります。
ぜひ、目盛りを自由に変更できるようになり、よりよいグラフを作成してください!
ここまで読んでくださりありがとうございます。
参考
おすすめ教材
米国データサイエンティストがやさしく教えるデータサイエンスのためのPython講座 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜他のUdemyの講座が気になる方はこちら