我有一个数据集,其中每个月的每一分钟都提供各种数据。我想在任何给定范围内以1单位或5单位间隔在X轴上绘制值。
例如,现在我将41分钟的数据存储在数组中以在X轴上作图,但它仅显示具有间隔的6分钟的数据。如何以1分钟(或5分钟间隔)绘制每分钟数据?
import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as md
import numpy as np
import datetime as dt
import time
%matplotlib inline
Time=test.loc[200:240,['time']]
Time=Time.as_matrix()
a=[]
date_time_array=[]
for k in Time:
a=np.append(a,k)
timestamp_array=[]
count=0
for b in a[::-1]:
b=int(b) # make plain integer
str_b=str(b) # make integer
c=str_b[-3:]
new_str_b=str_b.replace(c, '',1) #reduce last 3 charecter as they are extra
new_str_b_time=int(new_str_b)
timestamp_array=np.append(timestamp_array,new_str_b_time)
date_list=[dt.datetime.fromtimestamp(ts) for ts in timestamp_array]
datenums_array=md.date2num(date_list)
value_1=test.loc[200:240,['value']]
value_1=value_1.as_matrix()
value_1_reverse=value_1[::-1]
plt.title('test_graph')
plt.subplots_adjust(bottom=.2)
plt.xticks( rotation=25)
ax=plt.gca()
xfmt = md.DateFormatter('%Y-%m-%d %H:%M:%S')
ax.xaxis.set_major_formatter(xfmt)
plt.plot(datenums_array,value_1_reverse,color='orange')
plt.show()
以下是输出:
我希望因为这里我已经存储了41个X和Y轴值,所以它们都将出现在图形中(如果X轴上的间隔是1分钟或5分钟,那对我来说还可以。 )