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領域)を変更する方法があれば、フィットファイルの画像上の領域をプロットすることである
4つのプロットを実行しようとしていますか? mplドキュメントの既存のサブプロットの例を勉強してください。非常に参考になります。 PS。 'plt.show'はループ内ではなく、' plt.draw'の更新を使うべきであるために、一度だけ使うことを意図しています。 – ahed87
私たちは、プロットを紙の図面、またはプロットウィンドウと考えると、 1つの用紙に1つのプロットが必要な場合、 'plt.figure'は新しい用紙を描画します。したがって、プロットを行うには4つのplt.figureと関連する軸が必要です。 btw、あなたのコードでは、あなたは異なるプロットに入れたい異なるデータを見ていません、私には1つのプロットを行うデータがあるように見えます。 – ahed87
ahed87、私は右のイメージを追加しました。しかし、残りの3つのイメージは、2つのボックスなしでのみ表示されます。私は、これらの四角形のボックスをあてにする ".reg"をコードに与えます。あなたは4つの画像を得る4つの空間で "試して..."を移動すると、白として背景と白(中央)(最も明るい)。おかげで –