22

私はjpg画像を表示しています(関連する場合はこれを90度回転させます)。もちろん、軸はピクセル座標を表示します。ピクセル番号を表示する代わりに、選択した単位 (ラジアン、度、または私の場合は天文座標) を表示するように軸を変換したいと思います。ピクセルから(たとえば)度への変換を知っています。私のコードが現在どのように見えるかのスニペットは次のとおりです。

import matplotlib.pyplot as plt 
import Image
import matplotlib
thumb = Image.open(self.image)
thumb = thumb.rotate(90)
dpi = plt.rcParams['figure.dpi']
figsize = thumb.size[0]/dpi, thumb.size[1]/dpi
fig = plt.figure(figsize=figsize)
plt.imshow(thumb, origin='lower',aspect='equal')
plt.show()

...これに続いて、matplotlib が軸に出力する各値を取得し、代わりに出力する文字列に変更/置換できますか? 特定の座標形式に対してこれを行いたいと思います-たとえば、10.44 (度) の角度ではなく、10 26' 24'' (つまり、度、arcmins、arcsecs) を読みたいと思います。

最後に、このテーマでは、プロットでティック周波数を制御したいと思います。Matplotlib は 50 ピクセルごとに軸の値を出力するかもしれませんが、(たとえば) 度ごとに表示したいと思います。

範囲 xmin/xmax 範囲でサンプリング周波数を制御して、表示したいピクセル値とその変換値 (度など) を含むある種の配列を定義したいようです。

Stack Overflow に matplotlib の専門家はいますか? もしそうなら、あなたの助けを前もって本当にありがとう!これをより多くの学習体験にするために、この種のmatplotlibの問題に関するチュートリアルなどの方向性を教えていただければ幸いです。軸、軸、図形、アーティストなどと非常に混同していることに気づきました!

乾杯、

デイブ

4

1 に答える 1

37

インターフェースを扱っているように見えます。matplotlib.pyplotつまり、アーティストや軸などを扱うほとんどの作業をバイパスできるということです。matplotlib.pyplot.xticks次のコマンドを使用して、目盛りの値とラベルを制御できます。

tick_locs = [list of locations where you want your tick marks placed]
tick_lbls = [list of corresponding labels for each of the tick marks]
plt.xticks(tick_locs, tick_lbls)

特定の例では、元のプロットの単位(つまり、ピクセル)に対する目盛りの相対値を計算する必要があります( を使用しているためimshow)-ただし、これを行う方法を知っていると言いました。

私は画像をあまり扱っていませんが、情報pcolorを提供できる別のプロット方法 (例: ) を使用できる場合があります。これにより、画像の単位を指定するためのオプションがさらにいくつか提供される場合があります。xy

チュートリアルについては、matplotlib ギャラリーをよく見て、好きなものを見つけて、それを生成したコードを読んでください。私たちのオフィスの担当者の 1 人が最近、Python ビジュアライゼーションに関する本を購入しました。これは一見の価値があるかもしれません。

さまざまな部分すべてについて、私が一般的に考える方法は次のとおりです。

  • AFigureはすべてのコンテナです。Axes
  • AnAxesは、あなたが描いたもの (つまり、プロット) が実際に表示されるスペースです
  • AnAxisは実際のxyです
  • アーティスト?それは私にとってはインターフェースが深すぎる: 私はこのpyplotモジュールを本番プロットでめったに使用しませんが、まだそれらについて心配する必要はありませんでした.
于 2009-07-17T15:49:08.467 に答える