2017-02-02 10 views
2

私は、現時点では次のコードを実行しようとしていた:コンソールでmatplotlib.imshow()は実際にどのオブジェクトを返しますか?このオブジェクトの使い方は?

imgplot = plt.imshow(dose_data, extent = [0,4,0,6], aspect = 'auto') 

は、私は次の入力型付け:

In[38]:imgplot 
Out[38]: <matplotlib.image.AxesImage at 0x123ebd198> 

を、出力は私がオブジェクトが何であるか疑問に思うしました。ドキュメントを調べた後、AxesImageオブジェクト(AxesImage Documentation)のように見えます。しかし、私はimgplotに格納されているオブジェクトを使用する方法が不思議だった。現時点では、私はそれが何であるかを見ることも、イメージに保存することもできません。

P.S.私は画像を表示する方法と画像を保存する方法を知っています。私はちょうどこのオブジェクトがどのように役立つのか、それが実際に何であるのか疑問に思っていました(イメージオブジェクト、配列、または他の奇妙なオブジェクトのようなものでしょうか?)

答えて

0

オブジェクトの性質最初にFigureとAxesオブジェクトを開始することによって処理を進めます。

figure, axes = plt.subplots() 
# or: 
figure = plt.figure() 
axes = figure.add_subplot(111) 

次に、axesオブジェクトを使用してプロットすることができます。 Axesオブジェクトを使用すると、プロットに表示されるほとんどのものを操作できます。

axes.imshow(...) 

または保存の数字がすでに判明しているとして

figure.savefig('file.png') 
2

は、plt.imshow()の戻り値の型はmatplotlib.image.AxesImageです。オブジェクトimgを呼び出すと、img = plt.imshow()がそのクラスのインスタンスです。

一般的に、このオブジェクトは軸に結びついているので、Figureを表示したり保存したり、AxesImage自体を制御する必要はありません。

他のオブジェクトと同様に、後で使用するためにそのプロパティの一部にアクセスするのに便利です。例えばimg.cmapは、イメージのエクステントを提供する、img.get_extent()のカラーマップを返します。

AxesImageが頻繁に使用されている私の心に来る2つのアプリケーションがあります:画像データを更新

  1. :あなたは新しいプロットを生成することなく、画像データを変更したい場合は、
    を使用することができますimg.set_data(data)
    user interactionsまたはアニメーションで作業する場合に便利です。
  2. カラーバーの作成:複数の画像とプロットのカラーバーを作成する場合は、このカラーバーを作成すべき画像のために、それは明らかではないかもしれません、これ 軸caxに画像imgのカラーバーを設定しますplt.colorbar(img, cax=cax)

詳細については、おそらくなど、いくつかの性質、用途、使用の可能性について、より具体的に

を求め、あなたの質問を絞り込む必要があるだろう
関連する問題