3

Python/Pandas を使い始めたばかりで、次のコードをまとめて S&P 500 をプロットします。

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

これは、高値、安値、始値、終値、調整された終値、および出来高をすべて 1 つのグラフにプロットしているように見えます。Yahooや他のほとんどの金融サイトのように、1 つのグラフに adj 終値とそのすぐ下の出来高だけをプロットする簡単な方法はありますか? OHLC ローソク足チャートをプロットする例にも興味があります。

4

2 に答える 2

3

同様の質問に対する私の回答については、ここを参照してください。mathplotlib の財務ローソク足グラフに関する詳細については、ここを参照してください。

sp500 からちょうど adj を取得するには、次のようなものを使用sp500["Adj Close"]して、それを関連する matplotlib プロット コマンドplt.plot(datelist, sp500["Adj Close"] )に渡します。ここで、datelist は x 軸上の日付のリストです。

を参照することで datelist を取得できると思います。詳細については、こちらsp500.indexを参照してください。

それをプロットコマンドに渡す際の問題については、次のようなものです

datelist = [date2num(x) for x in sp500.index]関数date2numはmatplotlib.datesパッケージからのものです。

関連するサブプロットを設定した後、fill_between_alphaリンクした Yahoo グラフのような線の下の領域に適切な fill コマンドを呼び出します。

塗りつぶされた折れ線グラフを示す別のスニペットについては、 Fill Between と Alphaの見出しの下を参照してください。正しい日付が印刷されています。

最初のリンクには、日付の形式と形式をより詳細にカバーするサンプルの matplotlib スニペットがあります。

于 2012-02-14T20:10:20.377 に答える
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()
于 2013-12-13T18:42:08.470 に答える