APLpy を使用してフィット画像の複数のサブプロットを作成しようとしています。N プロットに対して数十のパラメーターを複数回入力する必要がないように、for ループを介してこれらを作成できるようにしたいと考えています。
洗練されていない力ずくの方法を使用すると、N=2 プロットの場合、次のようになります。
import aplpy
import matplotlib.pyplot as plt
fig = plt.figure()
f1 = aplpy.FITSFigure("figure1.fits", figure=fig, subplot=[0,0,0.5,0.5])
f2 = aplpy.FITSFigure("figure2.fits", figure=fig, subplot=[0.5,0.5,0.5,0.5])
# And there are many more images at this point, but let's look at 2 for now.
f1.show_colorscale()
f1.add_colorbar()
f1.frame.set_linewidth(0.75)
# And many more settings would follow
# Repeat this all again for the second plot
f2.show_colorscale()
f2.add_colorbar()
f2.frame.set_linewidth(0.75)
fig.canvas.draw()
fig.savefig('figure.eps')
しかし、他のプロット パラメータの多くがこの方法で制御されているため、2 セットのプロット パラメータを for ループに置き換えて、さらにいくつかのプロットを実行したいと考えています。これらの行を次のようなものに置き換えたいと思います:
for i in range(1,3):
f{i}.show_grayscale()
f{i}.add_colorbar()
f{i}.frame.set_linewidth(0.75)
等
明らかに、この構文は間違っています。基本的に、for ループでコード自体を変更できる必要があります。Python でこれを行う方法を見つけることができませんが、.csh で同様のことを行う場合は、例えば f"$i".show_grayscale()
.
ありがとう。