Pyplot: пространство вокруг осей наложения

Я хотел бы иметь сетку наложения с метками осей. Однако, когда я это делаю, метки сетки наложения перекрываются с заголовком и цветовой полосой.

На данный момент у меня есть следующее:

 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 должен поместить цветовую полосу справа от всех дочерних элементов в осях.

Jody Klymak 15.03.2019 15:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
197
1

Ответы 1

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)

plt.subplots(constrained_layout=True) дает мне TypeError: __init__() got an unexpected keyword argument 'constrained_layout'
usernumber 15.03.2019 15:50

Вам нужен matplotlib >= 2.2.

Jody Klymak 15.03.2019 15:56

Другие вопросы по теме