我正在尝试使用 APLpy 创建多个拟合图像的子图,并且我希望能够通过 for 循环创建这些子图,以防止我不得不为 N 个图多次输入数十个参数。
使用不优雅的蛮力方法,对于 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')
但我想用 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 中执行类似操作,我可能会将其写为 eg f"$i".show_grayscale()
。
谢谢。