対数間隔の軸で 2D 配列を生成しています (たとえば、x ピクセル座標はlogspace(log10(0.95), log10(2.08), n)
.
ネイティブの解像度とスケーリングで、普通の古い imshow を使用して画像を表示したい (ストレッチする必要はありません。データ自体は既に対数スケーリングされています) が、目盛り、ラベル、ラインを追加したい対数軸上の正しい位置。どうすればいいですか?
理想的には、コマンド ラインを使用するだけaxvline(1.5)
で、ラインが正しい場所 (左から 58%) に配置されますが、対数スケール座標と画像座標を手動で変換するしか方法がない場合は、それも問題ありません。
線形軸の場合、extents=
imshow の呼び出しで使用すると、必要なことが行われますが、対数軸で同じことを行う方法がわかりません。
例:
from matplotlib.colors import LogNorm
x = logspace(log10(10), log10(1000), 5)
imshow(vstack((x,x)), extent=[10, 1000, 0, 100], cmap='gray', norm=LogNorm(), interpolation='nearest')
axvline(100, color='red')
この例は機能しません。extent= は線形スケールにのみ適用されるため、100 で axvline を実行すると中央に表示されません。x 軸に 10、100、1000 を表示axvline(100)
し、100 ポイントの中央に線を配置し、ピクセルは等間隔のままにしたいと思います。