Ответ 1
Чтобы расширить мой предыдущий комментарий, я уточню полный ответ. При использовании matplotlib
графики отображаются с использованием Qt, поэтому вы получаете всплывающие окна.
Если мы используем fig.savefig
вместо pyplot.show
а затем pyplot.close
мы можем избежать всплывающих окон. Вот минимальный пример:
---
output: html_document
---
## Python *pyplot*
'''{python pyplot, echo=FALSE}
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, s)
ax.set(xlabel='time (s)', ylabel='voltage (mV)',
title='About as simple as it gets, folks')
ax.grid()
fig.savefig("pyplot.png")
plt.close(fig)
'''
'''{r, echo=FALSE}
knitr::include_graphics("pyplot.png")
'''
Который производит следующее без какого-либо прерывания процесса:
Источник: matplotlib.org
Примечание: согласно примечаниям к выпуску RStudio v1.2.679-1 Preview, эта версия будет отображать графики matplotlib, генерируемые кусками Python.
Обновить
Используя последний предварительный выпуск, упомянутый выше, обновление чанка для использования pyplot.show
теперь будет отображаться встроенным по желанию.
'''{python pyplot, echo=FALSE}
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, s)
ax.set(xlabel='time (s)', ylabel='voltage (mV)',
title='About as simple as it gets, folks')
ax.grid()
plt.show()
'''
Для пользователей Anaconda
Если вы используете Anaconda в качестве своего дистрибутива Python, у вас может возникнуть проблема, когда Qt не найден в RStudio из-за проблемы с отсутствующей переменной пути/среды.
Ошибка будет выглядеть следующим образом:
Не удалось запустить это приложение, так как не удалось найти или загрузить плагин платформы Qt "windows" в "". Повторная установка приложения может решить эту проблему.
Быстрое исправление состоит в добавлении следующего к блоку python для настройки переменной окружения.
import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = '/path/to/Anaconda3/Library/plugins/platforms'
Замените /path/to
на соответствующее местоположение в вашем дистрибутиве Anaconda.