Сюжет Getdist не отображается в консоли - PullRequest
2 голосов
/ 07 марта 2019

Я использую getdist, чтобы построить некоторые результаты моделирования.При jupyter написании только этой строки

g = plots.getSubplotPlotter()
g.triangle_plot([samples, samples2], filled=True)

Python покажет графики, как мы можем видеть здесь .

Теперь, если мы хотим написать это в оболочке Python изапустите его с IDLE, это не даст никакого сюжета.plt.show() здесь не работает.

Как указать python или matplotlib показывать графики и сохранять их?

1 Ответ

1 голос
/ 07 марта 2019

Проблема в том, что getdist устанавливает для бэкэнда значение Agg этой строке ), которое является неинтерактивным бэкэндом и, следовательно, не может создать интерактивную фигуру с помощью plt.show(). * 1006. * Это довольно плохой стиль, потому что пользователь должен выбрать серверную часть, а не пакет. Вы можете сообщить разработчикам об этом недостатке дизайна.

В любом случае можно было бы переключить бэкэнд после импорта getdist через plt.switch_backend(..). В качестве бэкэнда вам нужно будет использовать любой доступный интерактивный бэкэнд, например, "Qt5Agg" или "TkAgg".

import numpy as np
from getdist import plots, MCSamples
import matplotlib.pyplot as plt

plt.switch_backend("Qt5Agg")

# .. some code ..

g = plots.getSubplotPlotter()
g.triangle_plot([samples, samples2], filled=True)

plt.show()
...