0
我對python中的matplotlib相當陌生。我正在閱讀包含每日日誌的csv文件。但是多行可能包含相同日期的數據。 e.g 2016年4月7日從python中的csv繪製特定天數
01.04.2016;08:39:09;527;61;42;203;20;211
02.04.2016;08:43:03;527;51;82;323;80;161
03.04.2016;08:43:20;627;21;82;103;20;102
04.04.2016;08:43:20;727;61;82;223;20;103
05.04.2016;08:43:20;227;71;82;263;20;104
06.04.2016;08:43:20;427;61;82;273;20;105
07.04.2016;08:43:20;177;51;22;103;80;106
07.04.2016;09:43:20;247;51;42;183;20;108
07.04.2016;10:43:20;127;51;82;103;20;106
08.04.2016;08:43:20;727;61;82;603;20;107
我有一個控制變量NUM_DAYS指定需要安裝最新版本天的數據有多少使用matplotlib繪製。
import csv
import datetime as dt
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
col_names = ["a","b","c","d","e","f"]
my_dict = {}
num_days = 5
for item in range(0, 6):
my_dict[col_names[item]] = []
with open("myfile.csv","r") as f:
spamreader = csv.reader(f,delimiter=";")
for row in spamreader:
for col in range(2 , len(row)):
my_dict[col_names[col-2]].append([row[0],row[col]])
f.close()
for key, data_list in my_dict.items():
dates_str, values = zip(*data_list)
dates = [dt.datetime.strptime(d,'%d.%m.%Y').date() for d in dates_str]
plt.plot_date(dates[-num_days:], values[-num_days:], label=key, fmt='-')
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d.%m.%Y'))
plt.gca().xaxis.set_major_locator(mdates.AutoDateLocator())
plt.gcf().autofmt_xdate()
plt.savefig('Image.png')
在我的代碼中,它只繪製了最新的行數,而不是最新的日期數。在上面的例子中,它只會繪製最後5行。但是,它應該繪製從2016年4月4日至2016年4月4日的數據。我怎樣才能實現這個功能?