2016-08-27 12 views
0

私はPythonを学んでいます。私はmatplotlib.pyplotモジュールを使ってデータを表示する方法を学びます。次に、日付[]と価格[]をデータとして使用してデータを表示する例を示します。誰がなぜ5行目と6行目が必要なのか分かっていますか?グラフを表示させるにはなぜこのステップが必要なのか混乱しています。matplotlib.pyplot.plot()にグラフが表示されない

from sklearn import linear_model 
import matplotlib.pyplot as plt 

def showgraph(dates, prices): 
    dates = numpy.reshape(dates, (len(dates), 1)) # line 5 
    prices = numpy.reshape(prices, (len(prices), 1)) # line 6 

    linear_mod = linear_model.LinearRegression() 
    linear_mod.fit(dates,prices) 
    plt.scatter(dates,prices,color='yellow') 
    plt.plot(dates,linear_mod.predict(dates),color='green') 
    plt.show() 

答えて

0

5行目と6 Imが想定何変換列ベクトルに(datapricesと、この変換前に符号化される方法イムわからない)行ベクトルです。だから今、あなたはこのようなベクトルを持っています。

[0, 
1, 
2, 
3] 

linear_model.Linear_Regression.fit()が予期している形式です。データと価格が行ベクトルであるという仮定の下でプロットするには、再形成は必要ではありませんでした。

1

バックエンドをチェックするために、端末に次のことを試してください。

import matplotlib 
import matplotlib.pyplot 
print matplotlib.backends.backend 

それはAGG 'を示す場合、それは非対話型1と文句を言わないショーが、plt.savefig作品です。

プロットを表示するには、TkAggまたはQt4Aggに切り替える必要があります。

matplotlibrcファイルでバックエンドを編集する必要があります。ターミナルにその場所を表示するには、以下を実行します。

import matplotlib 
matplotlib.matplotlib_fname() 

よりおよそmatplotlibrc

0

私のアプローチは、まさにあなたのようなものですが、それでもラインなしで5と6の表示は正しいです。私はそれらの行が不要だと思う。入力データが行形式であるため、fit()関数は必要ないと思われます。

関連する問題