Согласованное размещение текста в matplotlib независимо от машины - PullRequest
1 голос
/ 14 апреля 2020

У меня есть сценарий Python, который хорошо работает на моем рабочем компьютере (верхний пример). Однако при запуске сценария на моем персональном ноутбуке большая часть текста неуместна, а форматирование некоторых вспомогательных сюжетов неверно (нижний пример).

Working image enter image description here

Существует ли простой способ базирования текстовых координат на основе размера / разрешения фигуры и / или экрана, а не абсолютной позиции? Обратите внимание, что эти два изображения имеют одинаковые размеры и разрешение, поэтому, возможно, я лаю не на том дереве.

Кроме того, я вижу, что аспект и общий доступ, кажется, обрабатываются по-разному между двумя версиями (на основе верхней и нижней осей imshow здесь). Есть причина для этого?

Моя цель - сделать этот скрипт (и другие) пригодными для использования независимо от платформы, и я не впервые сталкиваюсь с такими проблемами. Спасибо за вашу помощь!

[Редактировать] Пример кода (весь скрипт содержит более 1500 строк) ...

# Setting figsize early
from pylab import rcParams
rcParams['figure.figsize'] = (3200./500.,2400./500.)

# Calling figure/subplots
fig, axs = plt.subplots(9, 1, sharex=True, sharey=False, gridspec_kw={'height_ratios': [1, 3, 3, 3, 3, 3, 3, 3, 1]})

# A couple imshow calls
elif v == 'gust':
    im = axs[7].imshow(vals,cmap=var[v]['cmap'],vmin=var[v]['vmin'],vmax=var[v]['vmax'],interpolation='nearest',aspect=asp)
elif v == 'wdir':
    im = axs[8].imshow(vals,cmap=var[v]['cmap'],vmin=var[v]['vmin'],vmax=var[v]['vmax'],interpolation='nearest',aspect=asp,alpha=0.5)

# Saving the figure
plt.savefig('%s_%s.png' %(s,str(int(flen))),dpi=500,pad_inches=0.05)
...