Я пытаюсь создать консоль I Python в качестве учебного проекта и работаю с InteractiveShell из I Python для выполнения ячеек. Тем не менее, я не могу получить выходные данные из графиков Matplotlib для работы. Все, что я получаю от io.capture_output
, это {'text/plain': '<Figure size 640x480 with 1 Axes>'}
вместо image / png или другого подходящего MIME-типа.
from IPython.core.interactiveshell import InteractiveShell
from IPython.utils import io
import matplotlib
from IPython import get_ipython
matplotlib.use('module://ipykernel.pylab.backend_inline')
def test():
ip = get_ipython()
with io.capture_output() as captured:
result = ip.run_cell(
'''import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0.0, np.pi, 0.01)
s = np.sin(np.pi*t)
plt.plot(t, s)
plt.show()''')
for out in captured.outputs:
print(out.data)
if __name__ == '__main__':
InteractiveShell().instance()
test()
Я использую модуль backend_inline
для Matplotlib, и если он опущен, он вообще ничего не выводит.
Это аналогичный поток здесь , который утверждает, что решил проблема, но я пока не могу написать комментарии, но они не используют backend_inline
в своем решении.
Есть ли какой-нибудь способ получить данные из графика, чтобы затем отобразить их?