2017-11-30 8 views
0

enter image description here forループを使用して4つのプロットを実行しようとしていますが、私はそれを行う方法がわかりません。プロットを順番に1つずつ表示できますか? は、ここに私のコードです:Pythonのforループを使って2つ以上のプロットをプロットする方法は?

import matplotlib.pyplot as plt 
import matplotlib.cm as cm 
from astropy.io import fits 
import pyregion 
import glob 
# read in the image 
xray_name = glob.glob("*.fits") 
for filename in xray_name: 
    f_xray = fits.open(filename) 
    #name = file_name[:-len('.fits')] 
try: 
    from astropy.wcs import WCS 
    from astropy.visualization.wcsaxes import WCSAxes 
    wcs = WCS(f_xray[0].header) 
    fig = plt.figure() 
    ax = plt.subplot(projection=wcs) 
    fig.add_axes(ax) 
except ImportError: 
    ax = plt.subplot(111) 
ax.imshow(f_xray[0].data, cmap="summer", vmin=0., vmax=0.00038, origin="lower") 
reg_name=glob.glob("*.reg") 
for i in reg_name: 
    r =pyregion.open(i).as_imagecoord(header=f_xray[0].header) 
    from pyregion.mpl_helper import properties_func_default 
    # Use custom function for patch attribute 
def fixed_color(shape, saved_attrs): 
    attr_list, attr_dict = saved_attrs 
    attr_dict["color"] = "red" 
    kwargs = properties_func_default(shape, (attr_list, attr_dict)) 
    return kwargs 
# select region shape with tag=="Group 1" 
r1 = pyregion.ShapeList([rr for rr in r if rr.attr[1].get("tag") == "Group 1"]) 
patch_list1, artist_list1 = r1.get_mpl_patches_texts(fixed_color) 
r2 = pyregion.ShapeList([rr for rr in r if rr.attr[1].get("tag") != "Group 1"]) 
patch_list2, artist_list2 = r2.get_mpl_patches_texts() 
for p in patch_list1 + patch_list2: 
    ax.add_patch(p) 
    #for t in artist_list1 + artist_list2: 
    # ax.add_artist(t) 
    plt.show() 
コードの目的は、白の背景画像の色と明るい(centeral領域)を変更する方法があれば、フィットファイルの画像上の領域をプロットすることである

+0

4つのプロットを実行しようとしていますか? mplドキュメントの既存のサブプロットの例を勉強してください。非常に参考になります。 PS。 'plt.show'はループ内ではなく、' plt.draw'の更新を使うべきであるために、一度だけ使うことを意図しています。 – ahed87

+0

私たちは、プロットを紙の図面、またはプロットウィンドウと考えると、 1つの用紙に1つのプロットが必要な場合、 'plt.figure'は新しい用紙を描画します。したがって、プロットを行うには4つのplt.figureと関連する軸が必要です。 btw、あなたのコードでは、あなたは異なるプロットに入れたい異なるデータを見ていません、私には1つのプロットを行うデータがあるように見えます。 – ahed87

+0

ahed87、私は右のイメージを追加しました。しかし、残りの3つのイメージは、2つのボックスなしでのみ表示されます。私は、これらの四角形のボックスをあてにする ".reg"をコードに与えます。あなたは4つの画像を得る4つの空間で "試して..."を移動すると、白として背景と白(中央)(最も明るい)。おかげで –

答えて

0

指定された制限でカラーマップ "夏"を使用しています。あなたが投稿した画像がピクセル的に多かれ少なかれデジタル的に白黒に見えるので、あなたが達成したいことは私には明らかではありません。

matplotlibにはカラーマップが組み込まれており、それらのすべてに逆の双子があります。

'summer'これはthisようcolormap example、またはSOの答えのような複数のスポット、でMPLのドキュメントでピックアップすることができます'summer_r'

と逆の双子を持っています。

あなたが探しているものがほしいと思っています。将来的には、このようなコードを投稿するときは、関連していない部分をすべて削除してください。データ形式/タイプの説明も最低限必要です。データとその構造の小さなサンプルも含めることをお勧めします。一片のコードは一組のデータと一緒にしか働かないので、問題の定式化の半分だけを共有するだけです。

+0

私は同様にデータを共有することに同意するが、そのbig.regardに私は "Greys_r"に変更しました。私はすでに問題を考えています、ありがとう –

関連する問題