Как построить три значения с разными датами и временем на одном графике, используя python? - PullRequest
0 голосов
/ 21 февраля 2019

Здесь у меня есть один CSV-файл с разными значениями и date_time.Я написал код и запустил его.Затем он дал мне время ошибки данных «06.08.2008 6:45» не соответствует формату «% d /% m /% Y% H:% M:% S» Я хочу построить эти три различных значения в одномграф.Может ли кто-нибудь помочь мне решить эту проблему?Вот мой код:

condition = ""
date_time  = []
x1 = []
x2 = []
x3 = []
def convertTime(s):
  tm = time.strptime(s, " %d/%m/%Y %H:%M:%S")
  return datetime.datetime(date.tm_year,date.tm_mon, date.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec)
with open('data43.csv','r') as csv_file:
csv_data = csv.reader(csv_file, delimiter=',')
 row_num = 0
for row in csv_data:
 if(row_num == 0):
  condition = row[0]
elif(row_num > 2): #Data starts here
  if(row[0] != ''):
    date_time.append(convertTime(row[0]))
  if(row[1] != ''):
    x1.append(int(row[1]))
  if(row[2] != ''):
    x2.append(int(row[2]))
  if(row[3] != ''):
    x3.append(int(row[3]))
row_num = row_num + 1
fig1 = plt.figure(1)
ax = fig1.add_subplot(2,1,1)
ax.plot(date_time,x1)
ax.stem(date_time,x2,'C1--','C1o',linefmt=None, markerfmt=None, basefmt=None)
ax.stem(date_time,x3,'C2--','C2o',linefmt=None, markerfmt=None, basefmt=None)
ax.legend()
ax.xaxis_date()
ax.get_xaxis().set_major_formatter(DateFormatter('%d/%m/%Y %H:%M:%S'))
plt.xlabel('t')
plt.ylabel('k')
leg = plt.legend( loc = 'upper right')
plt.draw() # Draw the figure so you can find the positon of the legend. 
bb = leg.get_bbox_to_anchor().inverse_transformed(ax.transAxes)
xOffset = 0.3
bb.x0 += xOffset
bb.x1 += xOffset
leg.set_bbox_to_anchor(bb, transform = ax.transAxes)
plt.rcParams["figure.figsize"] = [20,20]
ax.plot(style='.-')
plt.show()

enter image description here

ошибка:

enter image description here

Я поставил datetime как:

enter image description here

, поэтому я включаю секунды как 00, после чего я читаю этот CSV-файл.

ЕслиЯ изменил время на 12 часов, читая, что будет потом?как это

enter image description here

1 Ответ

0 голосов
/ 21 февраля 2019

Я думаю, что у вас может быть ошибка с данными, а не с файлом python.

8/6/2018 6:45 Не соответствует формату %d/%m/%Y %H:%M:%S, потому что нет секунд.

Я быпротестируйте с добавлением :00 к вашим данным времени и повторите тест.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...