【问题标题】:How to plot specific rows in GNUplot如何在 GNUplot 中绘制特定行
【发布时间】:2012-06-04 12:59:11
【问题描述】:

我有一个包含 1000000 个条目的两列文件,即 1000000 行,但是我不想绘制所有数据,我只想每 100 行绘制一次点?如何在gnuplot中做到这一点?另外,是否可以指定一些特定的行在 gnuplot 中绘制?

【问题讨论】:

  • 您可以在 gnuplot 中使用 awk。很高兴解释,如果您更详细地解释您的问题。

标签: gnuplot


【解决方案1】:

您在这里至少有两个选择。首先,查看help datafile every的文档

plot 'datafile' every 100 using 1:2 

另一种选择是将伪列 0 (help datafile using pseudo) 与三元运算符 (help ternary) 结合使用,并且 gnuplot 会默默地忽略未定义的数字来过滤行:

plot 'datafile' u ( ((int($0)%100)==0)? $1 : 1/0 ):2

如果你使用宏,你可以让它更容易理解:

set macro
line_number='int($0)'
plot 'datafile' u ( ( ( @line_number % 100 ) == 0 ) ? $1 : 1/0 ) : 2

请注意,我只包括第二个,因为您可以(原则上)使用它从数据文件中选择非常奇怪的行号(例如 1,100,1000,10000),而您不能使用每个 - 例如

plot 'datafile' u ( ((@line_number == 1 || @line_number == 100 || @line_number == 1000 ) $1:1/0)):2

另见this question的答案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 2012-03-22
    • 2016-06-13
    • 2010-09-24
    相关资源
    最近更新 更多