Краткая версия
Попытка показать график через plt.show()
внутри pipenv
открывает полностью белое окно, ошибок нет. Изменение размера окна делает его полностью черным. Ожидается увидеть график, изображающий функцию f(x) = x^2
(см. код ниже).
Подробнее
Сохранение графика с помощью plt.savefig('tmp.png')
работает нормально.
Установка matplotlib
на общесистемный python3 через $ pip3 install matplotlib
не вызывает проблем. Проблема возникает только тогда, когда matplotlib
устанавливается внутри pipenv
, выполняющего тот же код (см. ниже).
Версии:
- Mac OS Мохаве 10.14.2
- версия pipenv 2018.11.26
- матплотлиб == 3.0.2
- pipenv и системный Python версии 3.7.2
Несколько удивительно, но я могу заставить его работать на более старом Mac под управлением Sierra 10.12.6 с теми же версиями pipenv, python и matplotlib. Но я не думаю, что когда-либо сталкивался с той же проблемой в этом вопросе.
Что я пробовал
- установлено
tcl-tk
:$ brew install tcl-tk
- установить серверную часть:
$ echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc
- установленный сервер X11
Что я упустил?
На данный момент у меня нет идей. Любые подсказки о том, как правильно отображать сюжет в pipenv
, приветствуются.
Имеет ли это какое-либо отношение к установке фреймворка Python, как указано в документации matplotlib?
Код
import numpy as np
import matplotlib
from matplotlib import pyplot as plt
if __name__ == "__main__":
plt.figure()
x = np.arange(0, 10, 1)
y = x*x
plt.plot(x, y)
# plt.savefig("tmp.png") # works fine
plt.show()