2017-02-07 7 views
1

私は次のコードmatplotlibのDATEFORMATの問題

import matplotlib.pyplot as plt 

x, y = data.shape 
y_metrics = alarms_metrics + udp_alarms_metrics_names 
print x, y 
for j in range(1, y): 
    time_stamp = [] 
    metric = [] 
    plt.figure() 
    for i in range(x): 
     time_stamp.append(data_time[i][0]) 
     metric.append(data[i][j]) 
    plt.xlabel("Time") 
    plt.ylabel(str(y_metrics[j-1])) 
    plt.plot(time_stamp, metric) 
    plt.savefig(str(j)) 

TIME_STAMPのフォーマットは

['2017:02:01:14:44:00', '2017:02:01:14:44:01',...etc] 

TIME_STAMPは、タイプのリストをあるある「numpy.string_を使用してmatplotlibのを使用して時系列データをプロットしようとしています「

は、私は次のエラー

Traceback (most recent call last): 
    File "/home/joseph/PycharmProjects/demo/src/alarm_log/alarm_db_plot.py", line 23, in <module> 
    plt.plot(time_stamp, metric) 
    File "/usr/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 3154, in plot 
    ret = ax.plot(*args, **kwargs) 
    File "/usr/lib/python2.7/dist-packages/matplotlib/__init__.py", line 1814, in inner 
    return func(ax, *args, **kwargs) 
    File "/usr/lib/python2.7/dist-packages/matplotlib/axes/_axes.py", line 1425, in plot 
    self.add_line(line) 
    File "/usr/lib/python2.7/dist-packages/matplotlib/axes/_base.py", line 1708, in add_line 
    self._update_line_limits(line) 
    File "/usr/lib/python2.7/dist-packages/matplotlib/axes/_base.py", line 1730, in _update_line_limits 
    path = line.get_path() 
    File "/usr/lib/python2.7/dist-packages/matplotlib/lines.py", line 925, in get_path 
    self.recache() 
    File "/usr/lib/python2.7/dist-packages/matplotlib/lines.py", line 612, in recache 
    x = np.asarray(xconv, np.float_) 
    File "/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py", line 482, in asarray 
    return array(a, dtype, copy=False, order=order) 
ValueError: invalid literal for float(): 2017:02:01:14:44:00 
を取得しています

私は、matplotlibのdateformatterを使用してtime_stampを解析する必要があるかもしれないと思う。私はそうしようとしたが、私はどのように把握できなかった。助けてください?

答えて

0

データを見ることなくプロットしようとしているものは正確ではありませんが、string to a datetime objectを変換しようとする可能性があります。フォーマットコードのリストについては、hereを参照してください。

from datetime import datetime 
time_stamp = ['2017:02:01:14:44:00', '2017:02:01:14:44:01'] 
time_stamp = [datetime.strptime(i, '%Y:%m:%d:%H:%M:%S') for i in time_stamp] 
print(time_stamp) 
関連する問題