簡體   English   中英

Pyplot:重疊軸周圍的空間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM