2013-05-28 80 views
0

我看到了this matplotlib example用matplotlib繪製財務數據

我想用它來印度股票。現在matplotib.finance定義:

def fetch_historical_yahoo(ticker, date1, date2, cachename=None,dividends=False): 
..... 
urlFmt = 'http://table.finance.yahoo.com/table.csv?a=%d&b=%d&c=%d&d=%d&e=%d&f=%d&s=%s& y=0&g=%s&ignore=.csv' 


    url = urlFmt % (d1[0], d1[1], d1[2],d2[0], d2[1], d2[2], ticker, g) 
..... 

,然後做

urlopen(url) 

但是從雅虎印度獲取數據的格式稍有不同。所以我去in.finance.yahoo.com並得到了鏈接,信實工業的歷史價格爲:

http://ichart.finance.yahoo.com/table.csv?s=RELIANCE.NS&a=03&b=1&c=2012&d=02&e=31&f=2013&g=d&ignore=.csv 

但現在我跳進一個函數indian.py這是:

urlFmt='http://ichart.finance.yahoo.com/table.csv?s=%s&d=%d&e=%d&f=%d&g=d&a=%d&b=%d&c=%d&ignore=.csv' 

當我運行這個,我得到一個HTTP 404 error。我究竟做錯了什麼?

+0

作爲一個側面說明,存在一個PR徹底改變這些函數的API(https://github.com/matplotlib/matplotlib/pull/1920)。雖然可能不會在1.4之前。 – tacaswell

回答

0

我懷疑你的字符串格式的變量順序不再匹配。使用以下urlFmt與原字符串格式表達作品:

urlFmt = 'http://ichart.finance.yahoo.com/table.csv?a=%d&b=%d&c=%d&d=%d&e=%d&f=%d&s=%s&g=%s&ignore=.csv' 
url = urlFmt % (d1[0], d1[1], d1[2], d2[0], d2[1], d2[2], ticker, g) 

這將產生urlhttp://ichart.finance.yahoo.com/table.csv?s=RELIANCE.NS&a=3&b=1&c=2012&d=2&e=31&f=2013&g=d&ignore=.csv當變量設置如下:

d1 = [3, 1, 2012] 
d2 = [2, 31, 2013] 
ticker = 'RELIANCE.NS' 
g = 'd'