Во-первых, извинения, если это было задано в другом месте.
Фон
В блокноте Jupyter я хочу сделать много графиков с несколькими осями Y, используя host_subplot
.Это прекрасно работает для одного подзаговора на одной фигуре, но мне бы хотелось иметь два сюжета одинаковой разметки с разным содержанием рядом.
Я понимаю, что могу добиться этого с помощью
fig = plt.figure()
ho1 = host_subplot(121, figure=fig, axes_class=AA.Axes)
ho2 = host_subplot(122, figure=fig, axes_class=AA.Axes)
подхода
Поскольку создание этих графиков занимает немного времени, и я хочу сохранить блокнот в чистоте, я помещаю их в функцию, которой я передаю соответствующие вещи, которые хочу построить,Здесь я публикую только тестовую функцию.
import matplotli.pyplot as plt
def test(position, fig):
from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
ho = host_subplot(position, figure=fig, axes_class=AA.Axes)
ho.scatter(range(4), range(4))
plt.show()
Проблема
Интерактивный бэкэнд:
%matplotlib nbagg
fig = plt.figure()
test(121, fig)
test(122, fig)

Я использую встроенный бэкэнд, потому что я генерирую сотни таких графиков, и что многие интерактивные графики, вероятно, будут жарить мои ресурсы.Теперь
встроенный бэкэнд:
%matplotlib inline
fig = plt.figure()
test(121, fig)
test(122, fig)

Итак, похоже, что фигура инициализируется там, где она не должна.Комментирование ho.scatter(..)
в тестовой функции дает рисунок правильного размера с inline
бэкэндом, но я бы предпочел один с данными в нем.
Вопрос (ы)
Можно ли решить эту проблему с помощью функционального подхода?Я бы предпочел не сохранять графики на диск, а затем пересматривать их.Я пропускаю лучшую альтернативу?
Помощь действительно приветствуется.
matplotlib.__version__
- это 2.2.4
Редактировать:
теперь, когда я смотрю наэто на расстоянии, ticklabels не то, что они должны быть, в любом сюжете.Итак, как отображаются данные?