2012-02-14 20 views
3

我剛開始使用的Python /大熊貓放在一起下面的代碼繪製在S &普500繪製股票圖表與大熊貓在IPython中

from pandas.io.data import DataReader 
# returns a DataFrame 
sp500 = DataReader("^GSPC", "yahoo", start=datetime.datetime(1990, 1, 1)) 
sp500.plot(figsize = (12,8)) 

它看起來像這樣正密謀高,低,開,關,關和音量都在一張圖上。有沒有一種簡單的方法可以在一張圖上繪製出緊密的圖形,並在其下方的圖上標出數字like they do on Yahoo和大多數其他金融網站?我也會對繪製OHLC燭臺圖的例子感興趣。

+0

DataReader的是沒有更多的大熊貓。您必須安裝pandas_datareader軟件包才能繼續使用它。 – karlacio 2016-11-08 21:05:41

回答

3

請參閱here爲我的答案類似的問題和here關於mathplotlib的金融燭臺圖的進一步信息。

得到的只是從你的SP500形容詞緊密,你會使用類似sp500["Adj Close"],然後傳遞給相關matplotlib繪圖命令plt.plot(datelist, sp500["Adj Close"])其中datelist是您在x軸上的日期列表。

我相信你可以通過參考sp500.index來獲得日期列表,參見here瞭解更多信息。

至於它傳遞到繪圖命令,像

datelist = [date2num(x) for x in sp500.index]其中函數date2num是matplotlib.dates包您的問題。

設置相關子圖後,然後調用適當的填充命令到fill_between_alpha下方的區域,如鏈接到的雅虎圖。

請參閱here根據填寫之間和阿爾法標題爲另一個片段,其中顯示填充線圖,並具有正確的日期打印。

初始鏈接有一個示例matplotlib片段,它也更詳細地介紹了日期格式和格式。

+0

很酷,感謝您的信息:-)你知道我是如何從sp500數據框中獲取日期列表的嗎?我還沒有弄清楚。 – 2012-02-14 22:19:18

+0

我看到你建議我可以參考sp500.index來獲取日期列表。我嘗試了plt.plot(sp500.index,sp500 [「adj clos」]),但得到以下錯誤:錯誤:標記輸入時出現意外錯誤 以下回溯可能已損壞或無效 錯誤消息爲:('EOF (63,0)) – 2012-02-14 23:58:16

+0

實際上,它看起來像是窒息的東西是sp500 [「adj clos」] – 2012-02-15 01:01:01

0

這讓你得到一個關於Adj Close列與你DataFrame(Date)索引的圖。

from pandas.io.data import DataReader 
sp500 = DataReader("^GSPC", "yahoo", start=datetime.datetime(1990, 1, 1)) 
close = sp500['Adj Close'] 
close.plot() 
plt.show() 

同樣,您可以繪製音量以同樣的方式:

vol = sp500['Volume'] 
vol.plot() 
plt.show()