Matplotlibの両対数プロットから指数表記(科学的記数法)を削除する方法
Matplotlibで両対数プロットを描いた際、軸の目盛りに「10³」のような指数表記(科学的記数法)が表示されることがあります。これを通常の数値表示に変更するには、ax.xaxis.set_minor_formatter(mticker.ScalarFormatter()) を使用します。
手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- NumPyを使ってxとyのデータポイントを作成します。
- scatter() メソッドを使ってxとyのデータポイントをプロットします。
- set_xscale() および set_yscale() メソッドを使って、x軸とy軸を対数スケールに設定します。
- 指数表記を削除するために、目盛りの値を通常の数値としてフォーマットします。
- show() メソッドを使って図を表示します。
コード例
import numpy as np
from matplotlib import pyplot as plt, ticker as mticker
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.array([1, 7, 6, 4, 0])
y = np.array([6, 2, 3, 5, 1])
plt.scatter(y, x, c=x, cmap="copper")
ax = plt.gca()
ax.set_xscale('log')
ax.set_yscale('log')
ax.xaxis.set_minor_formatter(mticker.ScalarFormatter())
plt.show()実行結果

このように ScalarFormatter() をマイナーフォーマッターとして設定することで、両対数プロットの補助目盛りが指数表記ではなく、読みやすい通常の数値で表示されます。y軸にも同様の設定を行いたい場合は、ax.yaxis.set_minor_formatter(mticker.ScalarFormatter()) を追加してください。
-
Matplotlibで複数のX軸・Y軸をプロットする方法(twinx / twinyの使い方)
データ分析や可視化では、スケールの異なる2つのデータ系列を同じグラフ上に重ねて表示したいケースがよくあります。Matplotlibでは、twinx() メソッドや twiny() メソッドを使うことで、X軸またはY軸を共有しながら独立したもう一方の軸を持つグラフを簡単に作成できます。 この記事では、左右に異なるY軸を持つグラフを作成する手順を、具体的なコード例とともに解説します。 複数のY軸を持つグラフの作成手順 以下の手順で、左と右に別々のY軸スケールを持つプロットを作成できます。 subplots() メソッドを使用して、図(figure)とサブプロット(axes)を作成します。 最初の
-
Matplotlibでヒストグラムデータから折れ線グラフを描画する方法
Matplotlibでヒストグラムのデータをもとに折れ線グラフを描画するには、NumPyのhistogram()メソッドを使ってデータセットのヒストグラムを事前に計算しておくのが便利です。この記事では、同じデータをヒストグラムと折れ線グラフの両方で可視化する手順を解説します。実装の手順現在の図にサブプロットを追加します。nrows=2、ncols=1とし、index=1を指定します。NumPyのhistogram()メソッドを使用して、データセットのヒストグラム(度数とビンの境界値)を取得します。edgecolor=blackを指定してhist()メソッドでヒストグラムを描画します。インデック