matplotlibでY軸を対数(指数)スケールに設定する方法
matplotlibでY軸を指数的(対数的)にスケーリングしたい場合、plt.yscale('symlog')を使用することで簡単に実現できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。
実装の手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- ステップ幅として変数
dtを初期化します。 - numpyを使ってxとyのデータポイントを作成します。
- 生成したデータポイントをプロットします。
- plt.yscale('symlog') を呼び出して、Y軸に対数スケールを適用します。
- show() メソッドで図を表示します。
コード例
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
dt = 0.01
x = np.arange(-50.0, 50.0, dt)
y = np.arange(0, 100.0, dt)
plt.plot(x, y)
plt.yscale('symlog')
plt.show()
出力結果
上記のコードを実行すると、Y軸が対数スケールで表示されたグラフが出力されます。


symlogスケールのポイント
'symlog'は「対称ログ(symmetric log)」スケールと呼ばれるもので、正負両方の値に対応できるのが特徴です。通常の'log'スケールでは扱えないゼロや負の値を含むデータでも、問題なく表示できます。原点付近の一定範囲(linthreshパラメータで指定可能)までは線形に、それ以外の範囲では対数的にスケーリングされるため、桁違いのデータを含むグラフを見やすく可視化するのに便利です。
-
Matplotlibでハッチの線幅を変更する方法
Matplotlibでハッチ(網掛け)の線幅を変更したい場合は、rcParamsの「hatch.linewidth」パラメータを設定することで実現できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。実装の手順図のサイズを設定し、サブプロット間および周囲のパディングを調整します。NumPyを使用して、x および y = sin(x) のデータポイントを作成します。plt.rcParams[hatch.linewidth] を使って、ハッチの線幅を設定します。scatter() メソッドを使用し、「/」ハッチが付いた正方形マーカーで、設定した線幅を適用しながらxとyのデー
-
Matplotlibで漸近線・不連続点を含むグラフを正しく描画する方法
はじめにMatplotlibで y = 1/x のような関数をそのままプロットすると、x = 0 付近で値が発散し、グラフ上に不自然な縦線が表示されてしまうことがあります。これは数値計算では厳密な「無限大」を扱えず、0に極めて近い大きな値として計算されるためです。本記事では、numpyとMatplotlibを組み合わせて、漸近線(不連続点)を持つ関数を見やすく描画する手順を解説します。処理の手順numpyを使ってx・yのデータポイントを作成します。plt.axis(off) で軸の表示をオフにします。plot() メソッドでx・yのデータをもとに曲線を描画します。axhline() で水平方向