Pythonで対数スケールのY軸を持つグラフを描く方法
PythonのMatplotlibを使えば、Y軸を対数スケールに設定したグラフを簡単に描画できます。ここでは、y = log(x) のような対数的なデータを見やすく可視化する手順を紹介します。
基本的な手順
- numpy を使って x と y のデータ点を作成します。
yscale()メソッドで Y 軸のスケールを'log'に設定します。plot()メソッドで x と y をプロットします。線種はlinestyle="dashdot"、ラベルはlabel="y=log(x)"と指定すると分かりやすくなります。legend()メソッドで凡例を表示します。show()メソッドで図を画面に出力します。
サンプルコード
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(1, 100, 1000)
y = np.log(x)
plt.yscale('log')
plt.plot(x, y, c="red", lw=3, linestyle="dashdot", label="y=log(x)")
plt.legend()
plt.show()
コードの解説
np.linspace(1, 100, 1000) は、1から100までの範囲を1000等分した配列を生成します。これにより滑らかな曲線が得られます。次に np.log(x) で自然対数を計算し、y の値を作成しています。
ポイントは plt.yscale('log') の部分です。この1行を追加するだけで、Y軸が対数スケール(10¹、10² といった目盛り)に変わり、桁数の大きく異なるデータも見やすい形で表示できます。
なお、対数軸では0や負の値を扱えないため、x の範囲は1以上から始めている点にも注意してください。
実行結果
上記のコードを実行すると、赤色の一点鎖線で y=log(x) の曲線が描かれ、Y軸が対数目盛りで表示されたグラフが出力されます。
-
Python Matplotlib:サブプロットでX軸目盛り(xticks)を設定する方法
Matplotlibのsubplot機能を使うと、1つの図(figure)をnrows×ncolsのグリッド状に分割して複数のグラフを並べて表示できます。さらにplt.xticksを組み合わせることで、各サブプロットのX軸目盛りの位置を自由に制御することが可能です。 実装手順 1本目と2本目の折れ線用に、それぞれデータのリストを作成します。 現在の図にサブプロットを追加します(nrow=1、ncols=2、index=1)。 破線(dashed)スタイルで1本目の折れ線を描画します。 自動スケーリングのマージンを設定します(0.2)。 X軸目盛りを偶数の位置(2, 4, 6, 8, 10)に
-
【Python入門】Matplotlibで複数のグラフを1つの図に組み合わせる方法(subplot・twinx活用)
はじめに Matplotlibは、同じグラフ上に複数のプロットを重ねて描画できる強力なPythonの可視化ライブラリです。本チュートリアルでは、2つの異なるY軸を使いながら、1つの図の中に複数のデータを組み合わせて表示する方法を、実際に動くコード例とともにわかりやすく解説します。 事前準備:Matplotlibのインストール まず、Pythonのコマンドプロンプト(ターミナル)を開き、以下のコマンドでmatplotlibをインストールしてください。 pip install matplotlib 手順1:表示するデータを準備する ここでは、iPhone・Galaxy・Pixelの3機種につい