Matplotlibで軸目盛りの小数点以下を非表示にする方法
Matplotlibで作成したグラフの軸目盛り(ティック)には、デフォルトでは小数点以下の数字が表示されることがあります。これを整数のみの表示に変更したい場合は、いくつかの簡単な手順で実現できます。本記事では、astype(int)メソッドを使ってX軸の目盛りラベルから小数点以下を取り除く方法を、サンプルコードとともに解説します。
実装の手順
図のサイズ(figure size)を設定し、サブプロット間および周囲の余白(パディング)を調整します。
NumPyを使用して x と y のデータポイントを作成します。
plt.subplots()を使って、図とサブプロットのセットを生成します。X軸の目盛りラベルを整数のみで表示するために、x.astype(int) メソッドを使用して
set_xticklabels()に渡します。このメソッドは浮動小数点数を整数に変換するため、小数点以下が切り捨てられます。show()メソッドを呼び出して、図を画面に表示します。
サンプルコード
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.array([1.110, 2.110, 4.110, 5.901, 6.00, 7.90, 8.90]) y = np.array([2.110, 1.110, 3.110, 9.00, 4.001, 2.095, 5.890]) fig, ax = plt.subplots() ax.plot(x, y) ax.set_xticklabels(x.astype(int)) plt.show()
出力結果

上記のコードを実行すると、X軸の目盛りラベルが「1.110」などの小数付きの値ではなく、「1」「2」「4」といった整数値として表示されます。x.astype(int) はNumPy配列の各要素を整数型へ変換するため、元のデータ自体は変更されず、目盛りラベルの表示だけが変わる点に注意してください。
なお、より柔軟に目盛りの書式を制御したい場合は、matplotlib.ticker モジュールの FormatStrFormatter('%d') や MultipleLocator を使う方法もあります。状況に応じて使い分けるとよいでしょう。
-
【Matplotlib】サブプロット間の余白を削除する方法
Matplotlibでサブプロット間のスペース(余白)を削除したい場合は、GridSpec(3, 3)クラスを使用し、グリッド状のレイアウトに沿ってAxes(軸)をサブプロットとして配置するのが効果的です。実装の手順図(figure)のサイズを設定し、サブプロット間および周囲のパディングを調整します。図の中にサブプロットを配置するためのグリッドレイアウトを追加します。グリッドのサブプロットパラメータを更新します(wspace・hspaceの調整)。グリッド仕様の次元の範囲でループ処理を行います。現在の図にサブプロットを追加します。各サブプロットのアスペクト比を設定します。図を表示するには、sh
-
MatplotlibでRスタイルの外向き軸目盛り(ティック)を描画する方法
Matplotlibでは、デフォルトの目盛りスタイルではなく、R言語のような「軸の外側を指す」目盛り(ティック)を描画できます。X軸の場合は rcParams[xticks.direction]=out を、Y軸の場合は rcParams[ytick.direction]=out を設定するだけで実現できます。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。plt.rcParams を使って、目盛りを外側に向くよう設定します。データ点の数を表す変数を初期化します。NumPyを使って x および y のデータ点を作成します。plot() メソッドで x と y