Я импортирую данные из файла CSV.Данные имеют следующий формат после чтения в формате массива, т.е. вывод print (myarray)
[['2018-12-18 10:18:18' ' 5.000000E-02' ' 4.569000E-07' ... ' 5.030000E+02' ' ' ' ']
['2018-12-18 10:18:28' ' 1.200000E-01' ' 4.616000E-07' ... ' 5.090000E+02' ' ' ' ']
['2018-12-18 10:18:38' ' 2.500000E-01' ' 4.584000E-07' ... ' 5.140000E+02' ' ' ' ']
...
['2018-12-18 16:29:31' ' 5.828500E+02' ' 1.910645E+01' ...' 3.490000E+02' ' ' ' ']
['2018-12-18 16:29:41' ' 5.829000E+02' ' 1.913199E+01' ...' 3.490000E+02' ' ' ' ']
['2018-12-18 16:29:51' ' 5.828300E+02' ' 1.910634E+01' ...' 3.490000E+02' ' ' ' ']]
Затем я пытаюсь построить первый столбец как ось x, а остальные - как ось y.Но matplotlib не принимает 0-й столбец для индексации.Поэтому я пытаюсь преобразовать его, используя matplotlib.dates, ниже приведен мой код
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
import numpy as np
import csv
with open('Historyrecipe-2018-12-18-10-18.csv', 'r')as f:
mylist = list(csv.reader(f, delimiter='\t'))
myarray = np.array(mylist[1:])
print(myarray)
def bytespdate2num(fmt, encoding='utf-8'):
strconverter = mdates.strpdate2num(fmt)
def bytesconverter(b):
s = b.decode(encoding)
return strconverter(s)
return bytesconverter
date, reactorPressure, vacuumGauge, MFC1, MFC2, MFC3, rfVoltage, rfCurrent, rfPower, rfFreq, crucTemp, vacPressure = np.loadtxt(myarray,delimiter='\t', unpack=True, converters={0:bytespdate2num('%Y-%m-%d %H:%M:%S')})
plt.plot_date(date, reactorPressure,'-')
plt.show()
Я получаю сообщение об ошибке:
Traceback (most recent call last):
File "D:\p\test2.py", line 33, in <module>
converters={0:bytespdate2num('%Y-%m-%d %H:%M:%S')})
File "C:\Python\lib\site-packages\numpy\lib\npyio.py", line 1054, in loadtxt
first_vals = split_line(first_line)
File "C:\Python\lib\site-packages\numpy\lib\npyio.py", line 996, in split_line
line = regex_comments.split(line, maxsplit=1)[0]
TypeError: cannot use a string pattern on a bytes-like object
Я не понимаю причину этого,Нужна помощь.Дайте мне знать, если вам нужна дополнительная информация по этому делу.Заранее спасибо .. С Рождеством!