我试图使用Matplotlib可视化一些测量.测量通常持续约24小时,并将包括csv中约30k行的数据.我一直在努力让我的情节实际上是动画.我可以执行代码,它会显示一个截至当前时间点的快照,但不会显示任何其他内容.当我尝试自动缩放它时,没有任何绘图,它只是在两个轴上默认为-.6到+.6的视图.我应该调用plt.draw()来实现这个目的吗?这是我到目前为止:
import numpy as np
import datetime as dt
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import animation
FMT = '%Y-%m-%d %H:%M:%S.%f'
data = np.genfromtxt('sampleData.csv', delimiter=',', skip_header=5,
names=['x', 'y', 'z', 'w'], dtype=['object', 'int8', 'int8', 'float'])
mytime = [dt.datetime.strptime(i.decode('ascii'), FMT) for i in data['x']]
thickness = data['w']
fig = plt.figure()
axes = fig.add_subplot(111)
line, = axes.plot([], [], '.')
plt.show(block=False)
def init():
line.set_data([],[])
return line,
fig.canvas.draw()
def animate(i):
xdata = mytime[:i]
ydata = thickness[:i]
line.set_data(xdata, ydata)
plt.draw()
axes.relim()
axes.autoscale(True,'both',True)
axes.autoscale_view(True,True,True)
return …Run Code Online (Sandbox Code Playgroud) 我一直在试图找出一种方法来转换这个数据框。它只包含两列;一种是时间序列数据,另一种是事件标记。这是初始数据帧的示例:
df1 = pd.DataFrame({'Time': ['1:42 AM','2:30 AM','3:29 AM','4:19 AM','4:37 AM','4:59 AM','5:25 AM','5:33 AM','6:48 AM'],
'Event': ['End','Start','End','Start','End','Start','Start','End','Start']})
Run Code Online (Sandbox Code Playgroud)
这就是我希望转换后的样子:
df2 = pd.DataFrame({'Start': ['', '2:30 AM', '4:19 AM', '4:59 AM', '5:25 AM', '6:48 AM'],
'End': ['1:42 AM', '3:29 AM', '4:37 AM', '', '5:33 AM', '']})
Run Code Online (Sandbox Code Playgroud)
本质上,我想将事件标记为新列,并在事件发生时将开始时间和结束时间在表格中配对。
此示例包括有时会发生的两种异常:
我查看了pivot,pivot_table但无法添加获得我想要的输出的索引。很确定这应该是可能的,我只是还不是数据帧方面的专家。