画像を引き伸ばさずにMatplotlibのimshowでスケールを変更する方法
Matplotlibのimshowで画像を引き伸ばすことなくスケール(縦横比)を変更したい場合、extentパラメータとaspectパラメータを組み合わせて使うことで実現できます。本記事では、その具体的な手順をサンプルコード付きで解説します。
手順
図(figure)のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
4×4次元のランダムなデータポイントを作成します。
imshow()を使って、データを2次元のラスター画像として表示します。extentパラメータを使用して、画像バッファのピクセル座標をデータ空間の座標系へマッピングします。これにより、軸の範囲を自由に指定できます。
aspectパラメータに数値(例:
aspect=4)を指定してアスペクト比を手動で設定するか、aspect='auto'を指定して自動スケーリングさせます。これにより、画像が引き伸ばされるのを防げます。なお、デフォルトではimshowはプロットのアスペクト比を1に設定するため、データの形状によっては画像が歪んで見えることがあります。最後にshow()メソッドを呼び出して、図を表示します。
サンプルコード
import numpy as np from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True data = np.random.rand(4, 4) plt.imshow(data, origin='lower', extent=[-4, 4, -1, 1], aspect=4) plt.show()
実行結果
このコードを実行すると、以下のような出力が得られます。X軸の範囲が-4から4、Y軸の範囲が-1から1に設定され、アスペクト比が4に保たれているため、画像は引き伸ばされずに正しく表示されます。

ポイントまとめ
extent=[xmin, xmax, ymin, ymax]:画像の各辺が対応するデータ座標を指定します。
origin='lower':原点を左下に設定します(デフォルトは左上の'upper')。
aspect:数値を指定すると縦横比が固定され、
'auto'を指定すると軸の範囲に合わせて自動調整されます。
-
データを失わずにAPFS暗号化パスワードを変更する方法【完全ガイド】
ディスクユーティリティでパスワード変更がグレーアウトして選択できない、ターミナルからAPFSの暗号化パスワードを変更できない――そんなお困りの方に向けて、本記事ではAPFS暗号化パスワードの変更方法と、「iBoysoft Mac Data Recovery」を使った暗号化ボリュームからのデータ復旧手順を詳しく解説します。APFS(Apple File System)はネイティブ暗号化を備えたファイルシステムで、従来のHFS+よりも高いレベルのセキュリティを実現しています。HFS+と異なり、APFSはシステムレベル・ファイルレベル・特定のデータやメタデータに対して、シングルキー方式とマルチキー方
-
Image Resizerで画像形式を変換する方法|初心者向けに手順をわかりやすく解説
デジタル画像は、手元のスナップ写真とは違い、さまざまな用途に柔軟に活用できます。リサイズやトリミング、回転といった編集はもちろん、フォーマット(形式)の変更も自由自在です。ただし、これらの作業を行うには画像編集ツールが必要になります。Adobe Photoshopのような高機能ソフトもありますが、操作が難しく、初心者にはハードルが高いのが実情です。そこで本記事では、シンプルで直感的に使えるフリーツール「Image Resizer」を使って、デジタル写真の形式を変更する方法をご紹介します。このツールを使えば、誰でも簡単に画像を別の形式へ変換できます。Image Resizerの主な機能すでにお気