2016-06-05 6 views
2

이것은 아마도 어리석은 질문이지만 .plot() 함수를 사용할 때마다 요약을 두 번 플롯합니다. 누구나 알고 있고, 왜 그 일을하는지, 어떻게 멈출 수 있습니까? pystan.plot()pystan .plot() 플롯 추적 요약 두 번

당신이 볼 수 있듯이 나는 jupyter 노트북을 사용하고 있습니다. 그것은 어떤 스탠 모델

(두 개의 별도의 설치에)와 함께 발생

이 코드는 당신이 그것을 원하는 것보다 나

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() 
+0

당신이 최소한의 작업 코드를 제공 할 수 할 변경? (그리고 줄거리뿐만 아니라 라인)? 고맙습니다. –

+0

지금 문제를 일으키는 코드를 추가했습니다. –

+0

이것은 Linux에서 나에게 일어나지 않습니다. ''% matplotlib inline''을 어딘가에 가지고 있습니까? (또한 PyStan 이슈 트래커 인 https://github.com/stan-dev/pystan/issues에 게시하는 것이 좋습니다. – ariddell

답변

3

이 더 그리기 %matplotlib inline 문에 의해 발생에 대한 문제를 생산할 것 . StanFit4Model.plot 메서드는 matplotlib.pyplot.subplot을 호출하고 노트북에 %matplotlib inline이 있으면 해당 호출 자체에 그림이 그려집니다. 그런 다음이 메서드는 Figure 개체를 반환합니다. 당신이 그것을 포착하지 않으면, 귀하의 수첩 유형을 인쇄하는 대신 이미지로 당신에게 보여 주기로 결정하고, 당신은 이중 음모를 얻을.

출력 Figure을 캡처하여 단일 플롯을 출력 할 수 있습니다.

fit.plot() 

에서 코드 대신

fig = fit.plot()