我有3轴加速度计时间序列数据(t,x,y,z)的图表在我想要放大的单独子图中.也就是说,当我在一个图上使用"缩放到矩形"工具时,当我释放鼠标时,所有3个图都缩放在一起.
以前,我只是使用不同的颜色在一个图上绘制所有3个轴.但这仅适用于少量数据:我有超过200万个数据点,因此绘制的最后一个轴模糊了其他两个数据点.因此需要单独的子图.
我知道我可以捕获matplotlib/pyplot鼠标事件(http://matplotlib.sourceforge.net/users/event_handling.html),我知道我可以捕获其他事件(http://matplotlib.sourceforge.net/api/backend_bases_api .html #matplotlib.backend_bases.ResizeEvent),但我不知道如何判断在任何一个子图上请求了什么缩放,以及如何在其他两个子图上复制它.
我怀疑我拥有所有的碎片,只需要最后一条宝贵的线索......
-BobC
我有一个布尔列表我想用逻辑组合使用和/或.扩展的业务将是:
vals = [True, False, True, True, True, False]
# And-ing them together
result = True
for item in vals:
result = result and item
# Or-ing them together
result = False
for item in vals:
result = result or item
Run Code Online (Sandbox Code Playgroud)
上面的每一个都有漂亮的单行吗?
我有一个来自3轴accellerometer(XYZ)的300万个数据点的数组,我想在包含等效球坐标(r,theta,phi)的数组中添加3列.以下代码有效,但似乎太慢了.我怎么能做得更好?
import numpy as np
import math as m
def cart2sph(x,y,z):
XsqPlusYsq = x**2 + y**2
r = m.sqrt(XsqPlusYsq + z**2) # r
elev = m.atan2(z,m.sqrt(XsqPlusYsq)) # theta
az = m.atan2(y,x) # phi
return r, elev, az
def cart2sphA(pts):
return np.array([cart2sph(x,y,z) for x,y,z in pts])
def appendSpherical(xyz):
np.hstack((xyz, cart2sphA(xyz)))
Run Code Online (Sandbox Code Playgroud) 我有两个时间序列的3D加速度计数据具有不同的时基(时钟在不同的时间开始,在采样时间内有一些非常轻微的蠕变),以及包含许多不同大小的间隙(由于与写入分开相关的延迟)闪光设备).
我使用的加速度计是便宜的GCDC X250-2.我正在以最高增益运行加速度计,因此数据具有显着的本底噪声.
每个时间序列具有大约200万个数据点(超过一小时,512个样本/秒),并且包含大约500个感兴趣的事件,其中典型事件跨越100-150个样本(每个200-300ms).许多这些事件都受到闪存写入期间数据中断的影响.
因此,数据不是原始的,甚至不是很漂亮.但我的眼球检查显示它清楚地包含了我感兴趣的信息.(如果需要,我可以发布情节.)
加速度计处于相似的环境中,但只是适度耦合,这意味着我可以通过眼睛判断哪些事件与每个加速度计匹配,但到目前为止我在软件中这样做是不成功的.由于物理限制,设备也安装在不同的方向,轴不匹配,但它们尽可能接近正交.因此,例如,对于3轴加速度计A和B,+ Ax映射到-By(上下),+ Az映射到-Bx(左右),+ Ay映射到-Bz(前后) .
我最初的目标是将纵向轴上的冲击事件关联起来,尽管我最终希望a)自动发现轴映射,b)关联映射的aces上的活动,以及c)提取两个加速度计之间的行为差异(例如扭曲或弯曲).
时间序列数据的本质使得Python的numpy.correlate()无法使用.我也看过R的动物园套餐,但没有取得进展.我已经在信号分析的不同领域寻求帮助,但我没有取得任何进展.
任何人都有我能做什么的线索,或者我应该研究的方法?
2011年2月28日更新:此处添加了一些显示数据示例的图表.
我之前问的问题是" 如何将子图缩放在一起? ",并且从那时起就一直在使用优秀的答案.
我现在只绘制两组时间序列数据,我需要继续如上所述进行缩放,但现在我还需要相对于另一个平移一个绘图(我正在进行眼球相关).数据来自2个独立的仪器,具有不同的启动时间和不同的时钟设置.
在使用中,我使用"缩放到矩形"工具栏按钮进行缩放,然后使用"平移/缩放"按钮进行滚动.
我怎样才能最好地在X中滚动一个相对于另一个的图?理想情况下,我也想拍摄并显示时差.我不需要在Y中垂直滚动.
我怀疑我可能需要停止使用简单的"sharex =""sharey ="方法,但我不确定如何最好地继续.
在此之前,感谢伟大的StackOverflow社区!
-BobC
我有多个Tkinter列表框,我使用一个滚动条滚动在一起,但我也喜欢它们一起滚动鼠标滚轮活动在任何列表框上.
这该怎么做?
我当前的代码基于此处讨论的最后一个模式:http://effbot.org/tkinterbook/listbox.htm 仅使用滚动条时工作正常,但是当使用鼠标滚轮时,列表框会独立滚动.
python ×5
matplotlib ×2
numpy ×2
boolean ×1
coordinate ×1
list ×1
listbox ×1
mousewheel ×1
pan ×1
r ×1
scroll ×1
scrollbar ×1
tkinter ×1
zoom ×1