使用matplotlib绘制财务数据

时间:2013-05-28 12:58:04

标签: python graph matplotlib

我看到了this matplotlib example

我想将它用于印度股票。现在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并获得了Reliance Industries历史价格的链接:

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。我做错了什么?

1 个答案:

答案 0 :(得分: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)

当变量设置如下时,这将产生url http://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'