Подтвердить что ты не робот

График Matplotlib не отображается в PyCharm

Я запустил следующий код в PyCharm 3.4.1, и он выделил %matplotlib inline, показывая синтаксическую ошибку, и я удаляю первую строку и запускаю, я ожидаю, что она предложит мне некоторые диаграммы, но она работает нормально с Process finished with exit code 0, И диаграммы не отображаются.

Мой вопрос: 1. Для чего используется %matplotlib inline; 2. Как показать диаграмму matplotlib в pycharm?

%matplotlib inline
from IPython.core.pylabtools import figsize
import numpy as np
from matplotlib import pyplot as plt
figsize(11, 9)

import scipy.stats as stats

dist = stats.beta
n_trials = [0, 1, 2, 3, 4, 5, 8, 15, 50, 500]
data = stats.bernoulli.rvs(0.5, size=n_trials[-1])
x = np.linspace(0, 1, 100)

# For the already prepared, I'm using Binomial conj. prior.
for k, N in enumerate(n_trials):
    sx = plt.subplot(len(n_trials) / 2, 2, k + 1)
    plt.xlabel("$p$, probability of heads") \
        if k in [0, len(n_trials) - 1] else None
    plt.setp(sx.get_yticklabels(), visible=False)
    heads = data[:N].sum()
    y = dist.pdf(x, 1 + heads, 1 + N - heads)
    plt.plot(x, y, label="observe %d tosses,\n %d heads" % (N, heads))
    plt.fill_between(x, 0, y, color="#348ABD", alpha=0.4)
    plt.vlines(0.5, 0, 4, color="k", linestyles="--", lw=1)

    leg = plt.legend()
    leg.get_frame().set_alpha(0.4)
    plt.autoscale(tight=True)


plt.suptitle("Bayesian updating of posterior probabilities",
             y=1.02,
             fontsize=14)

plt.tight_layout()
4b9b3361

Ответ 1

Обозначение % предназначено для магических функций. Конкретная магическая функция и аргумент, который вы указываете, %matplotlib inline, предназначены для сеанса IPython notebook. Вы получите синтаксическую ошибку, используя магические функции в обычном сеансе python.

Магическая функция %matplotlib предназначена для указания бэкэнд для matplotlib, а аргумент inline приведет к ошибке, если вы не находитесь в сеансе записной книжки IPython.

Чтобы показать свой сюжет, вы должны использовать plt.show для интерактивного окна или plt.savefig, чтобы сохранить его в файле. Например,

plt.show()

или

plt.savefig( 'myfig.png' )

Ответ 2

показать график с некоторым значением, помогло в предоставлении окна, где я смог увидеть изображение. По умолчанию интерактивный режим был ложным. Я включил интерактивный режим. plt.interactive(True)

Добавьте команду plt.show после построения графика.

plt.show(10)

Ответ 3

Я получил график для показа, выбрав Редактировать конфигурации... и в разделе Выполнение установите флажок Запускать с консолью Python. Я просто использовал plt.tight_layout(). Я не был в записной книжке.