如何在图像和颜色栏之间增加间距,以使轴标签不被覆盖?
目前,我有以下内容:
from astropy.wcs import WCS
from astropy.io import fits
from astropy.utils.data import get_pkg_data_filename
import matplotlib.pyplot as plt
image_file = get_pkg_data_filename('tutorials/FITS-images/HorseHead.fits')
hdu = fits.open(image_file)[0]
wcs = WCS(hdu.header)
ax = plt.subplot(projection=wcs)
im = ax.imshow(hdu.data, origin='lower')
overlay = ax.get_coords_overlay('galactic')
overlay.grid(color='black', ls='dotted')
overlay[0].set_axislabel('Galactic Longitude')
overlay[1].set_axislabel('Galactic Latitude')
plt.colorbar(im)
plt.show()
但是在这里,颜色条与右侧轴重叠。如何使图中的元素适当间隔?
我对subplots_adjust()
有所了解,但我宁愿尝试找到每个元素的宽度也不费吹灰之力。是否存在与plt.tight_layout()
相反的功能?
答案 0 :(得分:1)
有很多方法可以实现这一目标。我认为最简单的方法就是将pad
值传递给您对plt.colorbar
的调用。
这是MWE,图像和颜色条之间没有填充:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(1, 1)
im = ax.imshow(np.random.rand(10,10))
fig.colorbar(im)
如果我们传递一个pad
参数:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(1, 1)
im = ax.imshow(np.random.rand(10,10))
fig.colorbar(im, pad=0.25)