Python 使用matplotlib绘制图形

Python 使用matplotlib绘制图形,python,matplotlib,Python,Matplotlib,我有一个如下所示的文本文件: 14:49:15 0.00152897834778 14:49:22 0.00193500518799 14:49:29 0.00154614448547 14:49:36 0.0024299621582 14:49:43 0.00161910057068 14:49:50 0.00165987014771 14:49:57 0.00150108337402 我想使用plot方法创建一个图形,在这个方法中,我希望文本文件中的每一条奇数线都是x轴上的坐标,每一条非奇

我有一个如下所示的文本文件:

14:49:15
0.00152897834778
14:49:22
0.00193500518799
14:49:29
0.00154614448547
14:49:36
0.0024299621582
14:49:43
0.00161910057068
14:49:50
0.00165987014771
14:49:57
0.00150108337402
我想使用plot方法创建一个图形,在这个方法中,我希望文本文件中的每一条奇数线都是x轴上的坐标,每一条非奇数线都是y轴上的坐标,它们分别是非奇数之前的x线
在这种特殊情况下,14:49:15是第一个x,0.00152897834778是第一个y,您可以将日期时间转换为数字并绘制它们

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import datetime

string = """14:49:15
0.00152897834778
14:49:22
0.00193500518799
14:49:29
0.00154614448547
14:49:36
0.0024299621582
14:49:43
0.00161910057068
14:49:50
0.00165987014771"""

x = string.split('\n')[::2]
x = matplotlib.dates.date2num([datetime.datetime.strptime(xi, '%H:%M:%S') for xi in x])
y = np.array(string.split('\n')[1::2], dtype=float)

plt.plot(x, y)

您可以按换行符拆分输入。拆分\n并每秒将换行符转换为datetime对象。然后,使用plt.plot_date可以生成一个显示时间的绘图

import datetime
import numpy as np
import matplotlib.pyplot as plt

u = u"""14:49:15
0.00152897834778
14:49:22
0.00193500518799
14:49:29
0.00154614448547
14:49:36
0.0024299621582
14:49:43
0.00161910057068
14:49:50
0.00165987014771"""

# split the string by linebreaks
l = u.split("\n")
# take every second substring and convert it to datetime 
x = [datetime.datetime.strptime(i, "%H:%M:%S") for i in l[::2] ]
# take every second substring starting at the second one
y = l[1::2]

plt.plot_date(x,y)

plt.show()

好吧,祝你好运。。。。但是说真的,展示你的尝试。我希望我能展示一些东西。那么这个问题还没有准备好。你首先需要自己尝试一下,然后如果你遇到了一个具体的问题,你会回来问,日期是否有可能从数字转换回绘图后的日期?谢谢你的回答,这正是我需要的,但出于某种原因,我的时间每秒钟递增一次,并且有一个后缀EET,知道为什么吗?现在越来越有趣了。你的matplotlib版本是什么?你能打印plt.rcParams[时区]并报告它的内容吗?您可能希望使用matplotlib.dates.DateFormatter,如:import matplotlib.dates;plt.gca.xaxis.set_major_formattermatplotlib.dates.DateFormatter%H:%M:%S并查看是否更改。打印plt.rcParams[timezone]时,我得到UTC,顺便说一句,所有日期都杂乱无章,我简直看不到任何东西。有没有办法在它们之间设置间隔?让我重复一下:matplotlib版本是什么?如果使用DateFormatter会发生什么?EET消失了吗?Matplotlib 0.99正好是8岁。我们现在的版本是2.0.2。您只需更新matplotlib即可。由于0.99版的文档甚至不再在线,因此我无法为您提供任何帮助。