2

これはおそらくばかげた質問ですが、.plot() 関数を使用すると、サマリーが 2 回プロットされます。なぜそれが起こるのか、どうすればそれを止めることができるのか、誰でも知っていますか? pystan.plot()

ご覧のとおり、重要な場合はjupyterノートブックを使用しています。

これは、すべての標準モデルで発生します (および 2 つの個別のインストールで発生します)。

このコードは私にとって問題を引き起こします

import pystan 
import numpy as np
model_string = """
data { 
    int<lower=0> N;
    int y[N]; 
}
parameters {
    real<lower=0, upper=1> theta;
}
model {
    theta ~ beta(1,1);
    y ~ bernoulli(theta);
}
"""
N = 50
z = 10
y = np.append(np.repeat(1, z), np.repeat(0, N - z))
dat = {'y':y,
      'N':N}

fit = pystan.stan(model_code=model_string, data=dat, iter=1000, warmup=200, thin=1, chains = 3)
fit.plot()
4

2 に答える 2

3

これは、%matplotlib inlineステートメントが必要以上に描画されることが原因です。StanFit4Model.plotメソッドは を呼び出しmatplotlib.pyplot.subplot、その呼び出し自体は、ノートブックに がある場合にプロットを描画します%matplotlib inline。次に、メソッドはFigureオブジェクトを返します。キャプチャしない場合、ノートブックは活字を印刷する代わりに画像として表示することを決定し、二重プロットが表示されます。

出力をキャプチャすることで、単一のプロットを出力できますFigure。コードを次から変更します

fit.plot()

代わりに

fig = fit.plot()
于 2016-07-18T22:54:01.913 に答える