【问题标题】:How do i plot a large dataset (550.000 points) so spikes in the values can be identified?如何绘制大型数据集(550.000 点)以便可以识别值中的峰值?
【发布时间】:2020-09-17 09:49:08
【问题描述】:

我有一个 550.000 点的数据集。其中大约 460.000 个的值在 -2 到 -30 之间,而其余的值在 0 到 1550 之间。 我尝试用 gnuplot 绘制它们,但是从负值到一些正值的大量跳跃使它成为我看不到任何东西的一大块线。

那么我如何绘制这些值,以便我可以识别从负值到正值的所有尖峰?

数据是文件中的单列值,因此解析到任何工具都应该相当简单(虽然最好用于 Linux,但我也可以使用 Windows)。

【问题讨论】:

  • 好吧,我不确定是否有 550'000 像素宽的显示器可用 ;-)。尽管如此,使用交互式终端进行绘图怎么样? wxt,然后交互式放大?或者,您也可以为一个数据点使用 1 个像素来指示您的两个范围,例如黑色(-2 到 -30)和黄色(0 到 1550)。那么 550'000 个数据点将是一个大小为 1000x550 像素的图像。如果您确定了这 90'000 个值,您想做什么?

标签: plot gnuplot


【解决方案1】:

根据您对 90,000 个尖峰的确切用途,在这里绘制 with impulses 可能比 with lines 更好。下面的示例只有 20'000 个数据点,大约只有 20'000 个数据点。 17% 的峰值。

代码:

### "find" spikes
reset session

# create some test data
range1(n) = int(rand(0)*28)-30
range2(n) = int(rand(0)*1550)
data(n) = int(rand(0)+0.17) == 0 ? range1(0) : range2(0)
set print $Data
    do for [i=1:20000] { print data(0) }
set print

plot $Data u 1 w impulses notitle

### end of code

结果:(wxt终端放大截图)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    相关资源
    最近更新 更多