Ваша проблема в том, что вы используете неинтерактивный бэкэнд (Agg
вместо TkAgg
, GtkAgg
, QtAgg
и т. Д.).По определению, он не поддерживает отображение на экране.
Однако работа с многопоточным кодом с любой библиотекой графического интерфейса потребует запуска главного цикла графического интерфейса в своем собственном потоке.
В другихДругими словами, переключение на бэкэнд, который может отображаться на экране, потребует более сложной сложности в многопоточном коде.
Существует несколько различных способов сделать это, но любой универсальный метод будет очень неэффективным.(Простое решение состоит в том, чтобы использовать pyplot.ion
и затем рисовать холст каждые x миллисекунд в одном потоке, а другие - в другом. Это ужасно неэффективно.)
Можете ли вы датьнемного подробнее о том, что вы делаете?Почему вы используете многопоточность вместо многопоточности?(т.е. вы просто делаете много ввода-вывода?) Какую библиотеку графического интерфейса вы используете?(Если вы не знаете, то это, вероятно, Tk
, так как это бэкэнд по умолчанию для matplotlib.)