Matplotlib/Pyplot:如何将子图一起缩放并分别进行 x 滚动?
我之前问过问题“如何一起缩放子图?”,从那时起就一直使用这个优秀的答案。
我现在只绘制两组时间序列数据,并且我需要继续如上所述缩放,但现在我还需要相对于另一组平移一个图(我正在做眼球相关性)。数据来自两个具有不同启动时间和不同时钟设置的独立仪器。
在使用中,我使用“缩放到矩形”工具栏按钮进行缩放,并使用“平移/缩放”按钮进行滚动。
我怎样才能最好地滚动 X 中的一个图相对于另一个图?理想情况下,我还想捕获并显示时差。我不需要在 Y 中垂直滚动。
我怀疑我可能需要停止使用简单的“sharex=”“sharey=”方法,但不确定如何最好地继续。
预先感谢伟大的 StackOverflow 社区!
-鲍勃C
I previously asked the question "How to zoom subplots together?", and have been using the excellent answer since then.
I'm now plotting just two sets of time-series data, and I need to continue to zoom as above, but now I need to also pan one plot relative to the other (I'm doing eyeball correlation). The data comes from 2 independent instruments with different start times and different clock settings.
In use, I zoom using the 'Zoom to Rectangle' toolbar button, and I scroll using the "Pan/Zoom" button.
How may I best scroll one plot in X relative to the other? Ideally, I'd also like to capture and display the time difference. I do not need to scroll vertically in Y.
I suspect I may need to stop using the simple "sharex=" "sharey=" method, but am not certain how best to proceed.
Thanks, in advance, to the great StackOverflow community!
-BobC
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我破解了上述解决方案,直到它确实想要我认为我想要的。
I hacked the above solution until it did want I think I want.
好吧,这是我的尝试。这可行,但可能有更简单的方法。此解决方案使用一些 matplotlib 事件处理 每次触发新的
set_xlim()
它注意到鼠标在移动。如果不需要动态同步缩放,则可以消除触发事件'motion_notify_event'
。奖励:这适用于任意数量的子图。
Ok, here's my stab at it. This works, but there might be a simpler approach. This solution uses some matplotlib event-handling to trigger a new
set_xlim()
every time it notices the mouse in motion. The trigger event'motion_notify_event'
could be eliminated if dynamic synchronous zooming isn't required.Bonus: this works for any number of subplots.