2017-09-19 23 views
-1

私は初めてPythonを試しています。私の最後のゲームは、メートルの距離のx軸と500x500mのグリッドを示すyスケールの深さ(m)の画像を持っています。 グリッドをイメージに2つの異なる方法でプロットすることができました。どちらの方法でもグリッド間隔のピクセルサイズが利用されます。正確なグリッド間隔を得るには、単純なピクセル間距離の比を使用します。Pythonでイメージに軸を追加または変更するにはどうすればよいですか?

最初の試み(matplotlibを使用)では、不正な軸で正確なグリッド間隔を作成できました(軸にはピクセルが反映されていますが、グリッド間隔を変更せずに軸値を変更する手掛かりはありません)。

(PILを使用して)は、第2のコードは唯一の確実私の問題への答えは、PILやmatplotlibのドキュメント内部に埋め込まれ、私はに新しいですさ

イムをグリッド、グリッドとまったくの軸のみで画像を生成しPythonで、まだ慣習を学んでいて、ライブラリの仕組みも学んでいます

画像の周りに軸を描く方法はありますか?それとも、matplotlibを使ってピクセルに関係しないカスタムスケールを作るほうが簡単でしょうか?

これは非常に曖昧な質問ですが、誰かが正しい方向に私を指すことができますか?

ありがとうございます!

+0

いずれかの方法で動作するはずです、それはすべてあなたのユースケースと最終的な目標に依存します。正確な軸を設定するにはmatplotlibのドキュメントをチェックし、必要に応じてPILを使用して手動で軸のあるグリッドを描画します。 –

答えて

0

軸を使用する場合は、matplotlib imshowを使用します。ピクセルと距離の比がある場合(例: "1ピクセル= 100メートル"の場合、イメージの場合はextentに設定することができます。

import matplotlib.pyplot as plt 
import numpy as np 

image = np.random.rand(5,5) 

#1 pixel = 100 meters 
r = 1./100. 

fig, ax = plt.subplots() 
ax.imshow(image, extent=(0,image.shape[1]/r,0,image.shape[0]/r)) 
ax.set_xlabel("distance [m]") 
ax.set_ylabel("distance [m]") 

plt.show() 

enter image description here

+0

よく書かれていない質問への回答ありがとうございます。私はコミュニティに新しく、一般的にコーディングしています(悪い習慣のために再び申し訳ありません)、この答えは本当に正しい軌道に乗るのを助けました!ご協力ありがとうございました! – whonjas

関連する問題