[matplotlib] 軸の目盛に現在の目盛りを維持したまま任意の目盛りを追加する

2023年4月19日水曜日

Python

本記事では、matplotlibの軸の目盛りに既存の目盛りをそのままに、任意の目盛りを追加する方法をご紹介します。

アイキャッチ

結論

x軸の場合、get_xticklabelsで現時点の目盛りを取得し、
set_xticksで特定の目盛りの値を追加することで実現可能です。

以下サンプルコードです。
こちらからGoogle Colaboratory上でもご確認頂けます。
Open In Colab

まず、デフォルトのグラフを表示します。

import matplotlib.pyplot as plt
import numpy as np
 
#  サンプルデータ
x = np.linspace(1, 500)
y = np.log10(x)

# プロット
fig, ax = plt.subplots() 
ax.plot(x, y)
plt.draw()
plt.show()

特に目盛りの設定を変更していないデフォルトのグラフは以下の通りです。

デフォルトのグラフ

上記の0, 100, 200, 300, 400, 500のx軸の目盛りを維持したまま、任意の目盛り250を追加していきます。

# 0, 100, 200, 300, 400, 500の目盛りを維持したまま、任意の目盛りを追加

fig, ax = plt.subplots() 
ax.plot(x, y)

# 現時点の目盛り取得
current_xt = []
for xt in ax.get_xticklabels():
  current_xt.append( int(xt.get_text().replace('−', '-')) )

print(current_xt)

# 表示されていない両端除去
current_xt.pop(0)
current_xt.pop(-1)

# 指定の目盛りを追加
add_xt = 250
current_xt.append(add_xt)

# 目盛りに追加
ax.set_xticks(current_xt)

# 表示
plt.show()

出力結果は以下の通りです。

目盛り変更

まとめ

本記事では、現在の目盛りを維持したまま、任意の目盛りを追加する方法をご紹介しました。

AIで副業ならココから!

まずは無料会員登録

プロフィール

メーカーで研究開発を行う現役エンジニア
組み込み機器開発や機会学習モデル開発に従事しています

本ブログでは最新AI技術を中心にソースコード付きでご紹介します


Twitter

カテゴリ

このブログを検索

ブログ アーカイブ

TeDokology