Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python】Matplotlibで第3レベルの目盛り(ティック)を追加する方法

PythonのMatplotlibでは、標準機能として「major(主目盛り)」「minor(副目盛り)」の2段階の目盛り(ティック)しかサポートされていません。しかし、twiny()を使ってY軸を共有するツインAxesを作成し、そのX軸を目盛り表示専用として活用することで、実質的に第3レベルの目盛りを実現できます。

以下の手順で実装していきましょう。

  • figure.figsizeで図のサイズを設定し、figure.autolayoutでサブプロット間および周囲の余白を自動調整します。
  • numpyを使ってデータ点 ts を作成します。
  • 図とサブプロットのセットを作成します。
  • plot()メソッドで ts をプロットします。
  • twiny()でY軸を共有するツインAxesを作成します。
  • ツインAxes(ax1)上でも plot() メソッドで同じデータを描画します。
  • X軸の目盛り位置を下部(bottom)に設定します。
  • numpyのlinspaceで、主目盛り値 majors、副目盛り値 minors、そして第3レベルの目盛り値 thirds をそれぞれ生成します。
  • FixedLocatorを使って、各Axesのmajor・minorロケーターに対応する目盛り値を設定します。
  • tick_params()で目盛りの長さを調整し、レベルごとに視覚的な区別をつけます。
  • axhline()でグレー色の水平線を描画し、基準線を追加します。
  • show()メソッドで図を表示します。

コード例

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

t = np.arange(0.0, 100.0, 0.1)
s = np.sin(0.1 * np.pi * t) * np.exp(-t * 0.01)
fig, ax = plt.subplots()
plt.plot(t, s)

ax1 = ax.twiny()
ax1.plot(t, s)
ax1.xaxis.set_ticks_position('bottom')

majors = np.linspace(0, 100, 6)
minors = np.linspace(0, 100, 11)
thirds = np.linspace(0, 100, 101)

ax.xaxis.set_major_locator(matplotlib.ticker.FixedLocator(majors))
ax.xaxis.set_minor_locator(matplotlib.ticker.FixedLocator(minors))
ax1.xaxis.set_major_locator(matplotlib.ticker.FixedLocator([]))
ax1.xaxis.set_minor_locator(matplotlib.ticker.FixedLocator(thirds))

ax1.tick_params(which='minor', length=2)
ax.tick_params(which='minor', length=4)
ax.tick_params(which='major', length=6)
ax.grid(which='both', axis='x', linestyle='--')

plt.axhline(color='gray')

plt.show()

出力結果

【Python】Matplotlibで第3レベルの目盛り(ティック)を追加する方法

このコードを実行すると、主目盛り(長さ6)、副目盛り(長さ4)、第3レベルの目盛り(長さ2)がそれぞれ異なる長さでX軸に表示され、破線のグリッドと合わせて3段階の目盛り構造が視覚的にわかりやすく表現されます。グラフの細かいスケールを読み取りたい場合や、高精度なデータ分析の可視化に役立つテクニックです。

  1. Python(Matplotlib)でグラフに凡例を追加する方法を徹底解説

    はじめにグラフの最大の目的は、データをわかりやすく伝えることです。「百聞は一見に如かず」という言葉のとおり、言葉では表現しにくい複雑な情報も、一枚の図やグラフがあれば直感的に伝えることができます。しかし、多くの情報を含むグラフを描く場合は、どのデータがどの要素に対応しているのかを読み手が理解できるよう、凡例(legend)を添えると効果的です。準備:matplotlibのインストールとデータ作成matplotlibでは、凡例をさまざまな方法で表示できます。また、特定のポイントに注目させたい場合には注釈(annotation)も有効で、グラフ上の情報を読み手が理解する助けになります。まず、Pyt

  2. Pythonにパスを追加する方法|Windowsの環境変数設定でエラーを解消する手順

    Pythonとは? Pythonは1991年に初めてリリースされたプログラミング言語です。WindowsやmacOS、Linuxなど複数のOSで動作し、開発者はさまざまな用途のコードを記述・開発できます。Web開発、データ分析、AI・機械学習など幅広い分野で活用されており、その柔軟性と充実したサポート体制から、世界で最も広く使われているプログラミング言語のひとつとなっています。 コマンドプロンプトでpythonが認識されない原因 コマンドプロンプトで「python」と入力してもエラーが返され、正しく動作させるには毎回フルパスを指定しなければならないことがあります。これは、コマンドプロンプトが