1 Pierwsze kroki z PyLab 2 Pierwszy wykres

Transkrypt

1 Pierwsze kroki z PyLab 2 Pierwszy wykres
Laboratorium ”Robotyki mobilnej” 2 1 2
Piotr Kowalski
Paweł Musialik
8 maja 2011
1
Pierwsze kroki z PyLab
PyLab jest zbiorem bibliotek mających umożliwić programowanie w języku Python a’la
Mathematica lub Matlab. W jego skład wchodzą między innymi:
NumPy biblioteka zawierająca tablice wielowymiarowe, oraz funkcje algrebry liniowej, przekształcenia Fourier’a...,
SciPy biblioteka będąca nakładką na NumPy zawierająca np. funkcje całkowania i optymalizacji,
matplotlib biblioteka zawierająca obsługę grafiki, pozwala w prosty (matlabo-podobny)
sposób wizualizować dane.
2
Pierwszy wykres
Napisz skrypt: zawierający poniższy kod.
1
2
3
4
5
6
7
import pylab
## i m p o r t u j e m a t p l o t l i b , s c i p y i numpy za jednym razem ,
## j e z e l i t o n i e d z i a l a n a l e z y o d d z i e l n i e
## importowac w s z y s t k i e b i b l i o t e k i
X = [1 , 2 , 3]
Y = [1 , 4 , 9]
pylab . p l o t (X, Y)
pylab . show ( )
Zmodyfikuj powyższy kod:
• napisz procedury:
1
2
3
d e f to_power ( x _ l i s t , power ) :
" " " ␣ zwraca ␣ l i s t e ␣ y _ l i s t ␣ z ␣ w a r t o s c i a m i ␣ x _ l i s t
␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣do␣ p o t e g i ␣ power ␣ ( y=x^power ) ␣ " " "
oraz:
1
2
d e f to_power_3 ( x _ l i s t ) :
" " " ␣ zwraca ␣ l i s t e ␣ z ␣ w a r t o s c i a m i ␣do␣x^3␣ " " "
• Wykorzystując napisane procedury zrób wykresy trzech funkcji na jednym wykresie
(dla listy od 1 do 17 z krokiem 1):
– każdy element podniesiony do potęgi 2
1
2
Na podstawie kursów MIT OCW http://ocw.mit.edu
Na podstawie przewodnika http://johnstachurski.net/lectures/basicplot.html
1
– każdy element podniesiony do potęgi 2.5
– każdy element podniesiony do potęgi 3
• zmodyfikuj kolory funkcji oraz typ linii jakimi jest rysowany ( np. przerywana linia,
lub kółka),
• dodaj tytuł i podpisy na osiach.
Referencje
1. http://matplotlib.sourceforge.net/users/pyplot_tutorial.html
3
Histogram
Napisz skrypt: zawierający poniższy kod.
1
2
3
4
5
import pylab
data = pylab . randn ( 1 0 0 )
pylab . h i s t ( data , b i n s =10)
pylab . show ( )
# 500 probek z g o d n i e z e standardowym rozkladem
• Co to jest za parametr bins=40?
• Co zwraca funkcja pylab.randn(. . . )?
• Znajdź opcję pozwalającą znormalizować ten histogram.
4
Trochę ekonomii
Ze strony Yahoo: http://ichart.finance.yahoo.com/table.csv?s=%5EN225&a=00&b=
4&c=1984&d=04&e=7&f=2011&g=d&ignore=.csv, należy pobrać dane historyczne kursu giełdy
japońskiej NIKKEI 225.
Poniżej znajduje się początek pliku:
Date,Open,High,Low,Close,Volume,Adj Close
2011-05-06,9851.15,9876.10,9782.66,9859.20,132400,9859.20
2011-05-02,9964.39,10017.47,9936.27,10004.20,127800,10004.20
2011-04-28,9749.36,9849.74,9712.58,9849.74,158000,9849.74
2011-04-27,9631.53,9728.03,9630.37,9691.84,115800,9691.84
2011-04-26,9627.43,9627.43,9536.51,9558.69,100200,9558.69
2011-04-25,9705.90,9748.40,9657.24,9671.96,100600,9671.96
Dane są w formacie .csv i zaczynają się od najświerzszych danych z 06 maja 2011 r.
To co będzie nas interesowało to data (Date) oraz kurs na zamknięcie (Adj Close)
2
4.1
Cena na zamknięcie.
Narysuj funkcję kursu (Adj Close) w czasie. Zajrzyj do referencji. (Możesz wykorzystać
metodę należącą do string split() – poszukaj w google => python string split)
4.2
Kurs zwykle rośnie czy maleje?
Napisz funkcję, która:
• bierze jako parametry rok początkowy oraz rok końcowy oraz
• kreśli wykres dziennego przyrostu (w procentach) w podanych latach.
Funkcja przyrostu jest następująca:
przyrost =
4.3
dzis − wczoraj
· 100%
wczoraj
(1)
No właśnie rośnie czy maleje – histogram?
Zrób histogram dziennego przyrostu ze wszystkich lat. Spróbuj znormalizować go.
4.4
Pierwsze notowanie.
Powtórz pierwsze ćwiczenie ale narysuj tylko dane z pierwszego notowania każdego miesiąca. Zauważ, że pierwsze notowanie nie musi koniecznie być 1’wszego–to może być weekend.
Referencje
1. http://johnstachurski.net/lectures/builtins.html
3