【发布时间】:2010-10-08 02:37:40
【问题描述】:
我有一些 python 代码,它经常接收包含时间戳和边缘转换的消息,无论是从低到高还是从高到低。我想在条形图上绘制每个转换,以便以最少的努力快速而肮脏地可视化数字波形。
您能推荐任何可以简化此操作的方法或软件包吗?
我也不反对以例如 csv 格式导出数据并将其加载到另一个程序中,如果这样更容易的话。
编辑:
尝试过 CairoPlot:
>>> data = [(10, 0), (11, 1), (12.5, 0), (15, 1)]
>>> def fn(t):
... for d in data:
... if t > d[0]:
... return d[1]
... return data[-1][1]
...
>>> CairoPlot.function_plot( 'tester.png', data, 500, 300, discrete = True, h_bounds=( data[0][0],data[-1][0]), step = 1 )
这将我的 CPU 固定在 100% 的状态超过 10 分钟,并且一直在消耗内存。我在它用完所有交换之前杀死了它。是我做错了什么还是 CairoPlot 刚刚坏了?
进一步编辑:
我现在有了使用 CairoPlot 的更可行的东西,大致基于上面的代码。然而,由于分辨率的原因,它并不完美:我可能需要高达数十纳秒 (1e-8) 的分辨率才能捕捉到一些较短的脉冲。对于多秒图,使用此方法需要 非常 很长时间。
【问题讨论】:
-
好的,编辑了我的答案以尝试使用您的数据,希望现在可以使用!
-
那么,您需要精确到纳秒并且想要绘制几秒钟的数据?这肯定是个问题,至于 1 分,您将获得 1e9 分...我想我很难理解您要在此图形上显示的内容...
-
我关心的不是完全准确、视觉上可辨别的纳秒分辨率,而是图形算法需要在该分辨率下检查新边缘,以免错过短脉冲,如下所示: [(10.0, 0), (10.00000001, 1), (10.00000002, 0), (11.0, 1), (12.0, 0)]
-
对于我上次评论中的数据,我希望看到一个如此短的脉冲,以至于它实际上只是 10 处的 1 像素垂直线。
标签: python graphing stripchart