График 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()
Ответы
Ответ 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(). Я не был в записной книжке.