File: data_helper.py

package info (click to toggle)
matplotlib 1.1.1~rc2-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 66,076 kB
  • sloc: python: 90,600; cpp: 69,891; objc: 5,231; ansic: 1,723; makefile: 171; sh: 7
file content (58 lines) | stat: -rw-r--r-- 1,530 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env python
# Some functions to load a return data for the plot demos

from numpy import fromstring, argsort, take, array, resize
import matplotlib.cbook as cbook
def get_two_stock_data():
    """
    load stock time and price data for two stocks The return values
    (d1,p1,d2,p2) are the trade time (in days) and prices for stocks 1
    and 2 (intc and aapl)
    """
    ticker1, ticker2 = 'INTC', 'AAPL'

    file1 = cbook.get_sample_data('INTC.dat', asfileobj=False)
    file2 = cbook.get_sample_data('AAPL.dat', asfileobj=False)
    M1 = fromstring( file(file1, 'rb').read(), '<d')

    M1 = resize(M1, (M1.shape[0]/2,2) )

    M2 = fromstring( file(file2, 'rb').read(), '<d')
    M2 = resize(M2, (M2.shape[0]/2,2) )

    d1, p1 = M1[:,0], M1[:,1]
    d2, p2 = M2[:,0], M2[:,1]
    return (d1,p1,d2,p2)


def get_daily_data():
    """
    return stock1 and stock2 instances, each of which have attributes

      open, high, low, close, volume

    as numeric arrays

    """
    class C: pass

    def get_ticker(ticker):
        vals = []

        datafile = cbook.get_sample_data('%s.csv'%ticker, asfileobj=False)

        lines = file(datafile).readlines()
        for line in lines[1:]:
            vals.append([float(val) for val in line.split(',')[1:]])

        M = array(vals)
        c = C()
        c.open = M[:,0]
        c.high = M[:,1]
        c.low = M[:,2]
        c.close = M[:,3]
        c.volume = M[:,4]
        return c
    c1 = get_ticker('intc')
    c2 = get_ticker('msft')
    return c1, c2