Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从csv文件中读取时间数据并在python中相应地绘制图形_Python_Matplotlib - Fatal编程技术网

如何从csv文件中读取时间数据并在python中相应地绘制图形

如何从csv文件中读取时间数据并在python中相应地绘制图形,python,matplotlib,Python,Matplotlib,时间格式是这样的 47:48.1 这里是47分48秒1毫秒,内容如下: def convert(s): s = s.split(':') minutes = int(s[0]) s = s[1].split('.') seconds = int(s[0]) msec = int(s[1]) return (60*minutes + seconds)*1000 + msec fin = open(filename) times = [convert(s) for s in

时间格式是这样的 47:48.1 这里是47分48秒1毫秒,内容如下:

def convert(s):
  s = s.split(':')
  minutes = int(s[0])
  s = s[1].split('.')
  seconds = int(s[0])
  msec = int(s[1])
  return (60*minutes + seconds)*1000 + msec

fin = open(filename)
times = [convert(s) for s in fin.read().split(',')]
fin.close()
注意,如果您有很多时间,请在别处将lambda定义为函数

现在,
times
包含一个整数(毫秒)列表,您可以像平常一样绘制这些整数。

阅读:

def convert(s):
  s = s.split(':')
  minutes = int(s[0])
  s = s[1].split('.')
  seconds = int(s[0])
  msec = int(s[1])
  return (60*minutes + seconds)*1000 + msec

fin = open(filename)
times = [convert(s) for s in fin.read().split(',')]
fin.close()
注意,如果您有很多时间,请在别处将lambda定义为函数


现在,
times
包含一个整数(毫秒)列表,您可以按正常方式绘制。

第三部分看起来不像毫秒,您确定它不仅仅是第二部分的小数点吗?如果是,请尝试以下操作(其中t_cvs是字符串):


第三部分看起来不像毫秒,你确定它不仅仅是第二部分的小数点吗?如果是,请尝试以下操作(其中t_cvs是字符串):


像这样的事情应该让你开始:

import csv
import datetime as dt
import matplotlib.pyplot as plt

x,y = [],[]
csv_reader = csv.reader(open('data.csv'))
for line in csv_reader:
    x.append(int(line[0]))
    y.append(dt.datetime.strptime(line[1],'%M:%S.%f'))

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(y,x,'o-')
fig.autofmt_xdate()

plt.show()
假设
data.csv
文件包含以下数据:

0,43:48.1 1,45:13.1 2,47:50.1 3,55:02.3 0,43:48.1 1,45:13.1 2,47:50.1 3,55:02.3 结果如下:

这样的事情应该让你开始:

import csv
import datetime as dt
import matplotlib.pyplot as plt

x,y = [],[]
csv_reader = csv.reader(open('data.csv'))
for line in csv_reader:
    x.append(int(line[0]))
    y.append(dt.datetime.strptime(line[1],'%M:%S.%f'))

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(y,x,'o-')
fig.autofmt_xdate()

plt.show()
假设
data.csv
文件包含以下数据:

0,43:48.1 1,45:13.1 2,47:50.1 3,55:02.3 0,43:48.1 1,45:13.1 2,47:50.1 3,55:02.3 结果如下:

1毫秒或100毫秒?1毫秒或100毫秒?如何在显示Y轴标签时包含另一列,例如时间为[1]和[2]中的一些文本。如何在显示Y轴标签时包含另一列,例如时间为[1]和[2]中的一些文本。