Gnuplot抽动频率

时间:2013-01-02 21:18:12

标签: bash gnuplot

对于一个非常大的数据集,如何使用gnuplot只在第一个和最后一个数据点的x轴上放置tic标记/标签?

2 个答案:

答案 0 :(得分:4)

使用gnuplot 4.6及更高版本,您可以使用命令

stats 'data.dat'
set xtics \
 (sprintf("%.2g",STATS_min_x) STATS_min_x, \
  sprintf("%.2g",STATS_max_x) STATS_max_x)
plot 'data.dat'

使用其他版本的gnuplot,您可以使用这个类似的命令序列:

# this setting makes sure we don't make an output right away
set terminal unknown
plot 'data.dat'
set xtics \
 (sprintf("%.2g",GPVAL_DATA_X_MIN) GPVAL_DATA_X_MIN, \
  sprintf("%.2g",GPVAL_DATA_X_MAX) GPVAL_DATA_X_MAX)
set terminal <actual terminal>
replot

set xtics命令使用逗号分隔的字符串对和数据值,所有这些都在括号内。

(这里我假设您需要最小值和最大值,而不是第一个和最后一个数据点。)

有关详细信息,您可以在gnuplot命令行中运行它们:

help set format

help set stats

show variables all

答案 1 :(得分:0)

我正在添加另一个答案,因为我的另一个答案确实回答了另一个问题,但可能有用。要回答这个问题,

如何标记第一个和最后一个数据点的x tics

这是我的方法:

#!/usr/bin/env gnuplot

set terminal png
set output 'test.png'

# define a function to get the first and last values.
# this assumes the file has not changed since first running 'stats',
# (and contains at least one data point)
# `plot/stats 'data.dat' using (firstlast($x))`
# should be interchangable with
# `plot/stats 'data.dat' using x
# that is, the resulting variables should be the same
firstlast(x) = ($0==0) ? (first=$1, last=$1, $1) : (last=$1, $1)

# run stats  to find the first and last values
# just on x data column
stats 'data.dat' u (firstlast($1)) nooutput

# set the x tics to the first and last x points
set xtics \
 (sprintf("%.2g (first)", first) first, \
  sprintf("%.2g (last)", last) last)

print first
print last

plot 'data.dat'

我使用了这个示例数据文件:

data.dat文件

1 1
2 2
3 3
4 2
0 3

得到了这个输出:

enter image description here