[英]Pyplot : space around overlay axes
我想要一個帶有軸標簽的覆蓋網格。 但是,當我這樣做時,覆蓋網格的標簽與標題和顏色欄重疊。
目前,我有以下幾點:
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.title("Horsehead nebula")
plt.show()
但是在這里,顏色欄與右側標簽重疊,標題最終位於上方標簽下方。 如何使圖中的元素適當間隔?
是否有一個功能與plt.tight_layout()
相反?
我寧願不必手動設置間距的值。 我希望根據不同元素的大小來確定間距。
例如,我知道我可以執行fig.colorbar(im, pad=padvalue)
,但是我想自動找到padvalue
的值。
constrained_layout
應該將顏色欄放在ax1
的所有子級藝術家的右邊。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, num=100)
y = x ** 2 + 10 * np.random.randn(100)
f, ax1 = plt.subplots(1,1,figsize=(6,4),
constrained_layout=True)
im1 = ax1.scatter(x, y*1000, c=y, cmap='magma')
ax1.yaxis.tick_right()
f.colorbar(im1, ax=ax1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.