Результатом matplotlib и backend 'agg' в сюжете не является - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь использовать matplotlib с сообществом Pycharm Ed. 2019.3, Python 3.7.3, Ubuntu 19.04.

import matplotlib
import matplotlib.pyplot as plt

plt.figure()
plt.plot(3,2,'.')
plt.show()

Но получите следующий код ошибки: UserWarning: Matplotlib в настоящее время использует agg, который не является GUI бэкэндом, поэтому не может отображать число. "

Я попытался изменить бэкэнд на 'NbAgg':

import matplotlib
matplotlib.use('NbAgg')
import matplotlib.pyplot as plt

plt.figure()
plt.plot(3,2,'.')
plt.show()

Но получить следующий код ошибки:

 Traceback (most recent call last):
  File "/home/leo/.PyCharmCE2019.3/config/scratches/scratch_1.py", line 7, in <module>
    plt.show()
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/pyplot.py", line 269, in show
    return _show(*args, **kw)
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 261, in show
    manager.show()
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 90, in show
    self._create_comm()
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 122, in _create_comm
    self.add_web_socket(comm)
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_webagg_core.py", line 432, in add_web_socket
    self.resize(w, h)
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_webagg_core.py", line 418, in resize
    size=(w / self.canvas._dpi_ratio, h / self.canvas._dpi_ratio))
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_webagg_core.py", line 489, in _send_event
    s.send_json(payload)
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 199, in send_json
    self.comm.send({'data': json.dumps(content)})
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/ipykernel/comm/comm.py", line 123, in send
    data=data, metadata=metadata, buffers=buffers,
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/ipykernel/comm/comm.py", line 66, in _publish_msg
    self.kernel.session.send(self.kernel.iopub_socket, msg_type,
AttributeError: 'NoneType' object has no attribute 'session'
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/_pylab_helpers.py", line 73, in destroy_all
    manager.destroy()
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 126, in destroy
    self._send_event('close')
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_webagg_core.py", line 489, in _send_event
    s.send_json(payload)
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/matplotlib/backends/backend_nbagg.py", line 199, in send_json
    self.comm.send({'data': json.dumps(content)})
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/ipykernel/comm/comm.py", line 123, in send
    data=data, metadata=metadata, buffers=buffers,
  File "/home/leo/PycharmProjects/Coursera/venv/lib/python3.7/site-packages/ipykernel/comm/comm.py", line 66, in _publish_msg
    self.kernel.session.send(self.kernel.iopub_socket, msg_type,
AttributeError: 'NoneType' object has no attribute 'session'

Я понимаю, что бэкэнд и показ графиков несовместим, но я не понимаю, что мне нужно сделать, чтобы соответствовать бэкэнду, и показ графиков.

1 Ответ

0 голосов
/ 14 января 2020

Мне удалось изменить бэкэнд на 'TkAgg', но мне пришлось установить tk через командную строку, используя:

sudo apt-get install python3-tk

Однако все еще нужно использовать plt.show () для графика выскочить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...