2017-04-09 3 views
1

Observation 데이터 포인트를 보여주는 차트를 해당 예측과 함께 플롯하려고합니다.일부 데이터 포인트가 Python의 PyPlot에 나타나지 않습니다.

그러나 플로팅 할 때 빨간색 Observation 점이 내 플롯에 나타나지 않습니다. 왜 그런지 확신 할 수 없습니다.

나는 다른 라인에서 다음을 실행할 때 나타나는 않습니다

fig = plt.figure(figsize = (20,6)) 
plt.plot(testY, 'r.', markersize=10, label=u'Observations') 
plt.plot(predictedY, 'b-', label=u'Prediction') 

하지만 음모에 사용하고있는 코드는 그들을 표시 할 수 없습니다 :

def plotGP(testY, predictedY, sigma): 
    fig = plt.figure(figsize = (20,6)) 
    plt.plot(testY, 'r.', markersize=10, label=u'Observations') 
    plt.plot(predictedY, 'b-', label=u'Prediction') 
    x = range(len(testY)) 
    plt.fill(np.concatenate([x, x[::-1]]), np.concatenate([predictedY - 1.9600 * sigma, (predictedY + 1.9600 * sigma)[::-1]]), 
      alpha=.5, fc='b', ec='None', label='95% confidence interval') 


subset = results_dailyData['2010-01':'2010-12'] 
testY = subset['electricity-kWh'] 
predictedY = subset['predictedY'] 
sigma = subset['sigma'] 

plotGP(testY, predictedY, sigma) 

나의 현재 플롯 빨간색 관측 지점이 나타나지 않습니다. The red Observation data points are not appearing

줄거리를 그릴 때 줄을 그려야합니다. 위의 그림에서이 점들과 파란 선을 표시하고 싶습니다.

+0

[mcve]를 사용하는 것이 도움이됩니다. – ImportanceOfBeingErnest

+1

빨간색 점이 파란색 영역 뒤에 있는지 확인 했습니까? 그렇다면 ['zorder'] (https://matplotlib.org/examples/pylab_examples/zorder_demo.html)를 변경할 수 있습니다. – berna1111

답변

2

질문의 채우기 기능이 있거나없는 두 가지 경우를 비교하는 다음 예제를 고려해 볼 수 있습니다.

import matplotlib.pyplot as plt 
import numpy as np; np.random.seed(0) 
import pandas as pd 


def plotGP(ax, testY, predictedY, sigma, showfill=False): 
    ax.set_title("Show fill {}".format(showfill)) 
    ax.plot(testY, 'r.', markersize=10, label=u'Observations') 
    ax.plot(predictedY, 'b-', label=u'Prediction') 
    x = range(len(testY)) 
    if showfill: 
     ax.fill(np.concatenate([x, x[::-1]]), np.concatenate([predictedY - 1.9600 * sigma, (predictedY + 1.9600 * sigma)[::-1]]), 
      alpha=.5, fc='b', ec='None', label='95% confidence interval') 

x = np.linspace(-5,-2) 
y = np.cumsum(np.random.normal(size=len(x))) 
sigma = 2 

df = pd.DataFrame({"y" : y}, index=x) 

fig, (ax, ax2) =plt.subplots(2,1) 
plotGP(ax,df.y, df.y, sigma, False) 
plotGP(ax2, df.y, df.y, sigma, True) 

plt.show() 

enter image description here

알 수있는 바와 같이 에서, plot 곡선이 dataframe의 인덱스에 의존하는 것이도 완전히 상이한 위치, 앉을 수

.

관련 문제