Kod programu mam, ale nie działa mi poprawnie. Mam za zadanie narysować wykres na podstawie csv file. Na osi xsów - data, na osi yków - close (cena). Próbowałam już ustawić DayLocator, ale mi nie działa. Też nie wiem konkretnie jak zmienić format daty. To chyba najważniejsze. Szukałam różnych kodów, ale nie daję rady z tym. Czy może ktoś z tym pomóc?
import matplotlib.pyplot as plt
import matplotlib.dates as dates
import pandas as pd
data = pd.read_csv(r'C:\Users\Beata\Desktop\Data\FB_stock_prices_daily.csv')
data['date'] = pd.to_datetime(data['date'])
figure = plt.figure()
axis = figure.add_subplot(111)
axis.set_title("FB")
axis.set_xlabel("date")
axis.set_ylabel("close")
plt.setp(axis.xaxis.get_minorticklabels(), rotation=90, fontsize=5)
axis.xaxis.grid(True, which="minor")
axis.xaxis.set_major_locator(dates.DayLocator())
axis.xaxis.set_minor_formatter(dates.DateFormatter('&d/$m/$Y'))
figure.autofmt_xdate()
plt.plot(data['date'], data['close'])
plt.grid()
plt.show()
Dane wyglądają tak:
date |
close |
volume |
open |
high |
low |
6/18/2018 |
198.31 |
16470990 |
194.8 |
199.58 |
194.13 |
6/19/2018 |
197.49 |
19968690 |
196.235 |
197.96 |
193.79 |
6/20/2018 |
202 |
28175590 |
199.1 |
203.55 |
198.805 |
6/21/2018 |
201.5 |
18906350 |
202.76 |
203.39 |
200.09 |
6/22/2018 |
201.74 |
17050440 |
201.16 |
202.24 |
199.31 |
6/25/2018 |
196.35 |
25170720 |
200 |
200 |
193.11 |
6/26/2018 |
199 |
17869610 |
197.6 |
199.1 |
196.23 |
6/27/2018 |
195.84 |
18697530 |
199.18 |
200.75 |
195.8 |
6/28/2018 |
196.23 |
18153600 |
195.18 |
197.34 |
193.26 |
6/29/2018 |
194.32 |
15516540 |
197.32 |
197.5997 |
193.955 |
7/2/2018 |
197.36 |
13735130 |
193.37 |
197.45 |
192.22 |
7/3/2018 |
192.73 |
13489510 |
194.55 |
195.4 |
192.52 |
7/5/2018 |
198.45 |
19582000 |
194.74 |
198.65 |
194.03 |
7/6/2018 |
203.23 |
19687900 |
198.45 |
203.64 |
197.7 |
7/9/2018 |
204.74 |
18133700 |
204.93 |
205.8 |
202.1201 |
7/10/2018 |
203.54 |
12868530 |
204.5 |
204.91 |
202.26 |