Возможный дубликат: Как назначить график для переменной и использовать переменную в качестве возвращаемого значения в функции Python , но ответ у меня не сработал.
Рассмотрим фигурусгенерировано, как в следующих примерах: https://networkx.github.io/documentation/networkx-1.9/examples/drawing/four_grids.html
У меня есть список рисунков figs
, представляющих графики, которые я хочу составить в макете.
РЕДАКТИРОВАНО вадрес комментария
Обратите внимание, что nx.draw()
создает объект matplotlib.figure.Figure
.
nx.draw()
не возвращает объект matplotlib.figure.Figure
, однако яможно сохранить сгенерированную фигуру в переменной, например:
def graph_to_figure(g):
fig = plt.figure()
nx.draw(g,pos,font_size=8)
plt.close()
return fig
type(graph_to_figure(g))
>> matplotlib.figure.Figure
, поэтому я могу сгенерировать список фигур в виде:
figs = [ graph_to_figure(g), graph_to_figure(g)]
Теперь я хочу разбить результаты на страницы для создания PDF.
Я пробовал что-то вроде:
plot_num = 221 #2 rows, 2 columns, start from index 1
pagefig = plt.figure(figsize=(10, 10))
for fig in figs:
pagefig.add_subplot( plot_num)
plt.imshow(fig) # return error! any api like plt.add_figure( ) to add the figure to the plot?
plot_num += 1
Но это даст ошибку, поскольку изображение рис. Не может быть преобразовано в float: оно ожидает реального изображения.
Поэтому я попытался и посмотрел на документацию, но не мог понять, как просто разместить matplotlib.figure.Figure объект в сетке.
Вторая попытка
Просмотр: Добавление фигур к подсюжетам в Matplotlib
Это показывает примериспользуя подзаговор:
fig, ax = plt.subplots(2, 1, sharex=True)
plot_fig_1(..., ax[0])
plot_fig_2(..., ax[1])
, но вместо этого я объект matplotlib.figure, а не объект matplotlib.pyplot ..
Я могу сделать что-то вроде этого:
pagefig.add_subplot( plot_num)
nx.draw(G,pos,font_size=8)
plot_num += 1
но я хочу добавить рисунок в качестве переменной.
pagefig.add_subplot( plot_num)
figs[0] # doesn't work
plot_num += 1
Как составить макеты, используя переменные, ссылающиеся на matplotlib.figure.Figure
объекты?
Как добавить переменные всетка?
Обратите внимание, я использую не графики и не изображения, а цифры.