wil*_*007 26 python matplotlib pycharm
我在PyCharm 3.4.1中运行以下代码,它突出%matplotlib inline显示语法错误,我删除第一行,并运行,我希望它会提示我一些图表,但它正常运行Process finished with exit code 0,并没有显示图表.
我的问题是:1.%matplotlib inline 用途是什么; 2.如何让pycharm显示matplotlib图表?
%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's 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()
Run Code Online (Sandbox Code Playgroud)
Gab*_*iel 43
该%符号是神奇的功能.您引用的特定魔术函数和参数%matplotlib inline适用于IPython笔记本会话.在普通的python会话中,您将使用魔术函数获得语法错误.
在%matplotlib神奇的功能是为了指定matplotlib后端和参数inline,如果你不是在IPython的笔记本会议将产生一个错误.
要显示您的绘图,您应该使用plt.show交互式窗口或plt.savefig将其保存到文件.例如,
plt.show()
Run Code Online (Sandbox Code Playgroud)
要么
plt.savefig( 'myfig.png' )
Run Code Online (Sandbox Code Playgroud)
绘图显示具有一些价值,有助于提供我能够看到图像的窗口。默认情况下,交互模式为 false。我需要打开交互模式。
plt.interactive(True)
绘制图形后添加 plt.show 命令。
plt.show(10)
Run Code Online (Sandbox Code Playgroud)