3

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

4

2 回答 2

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

于 2013-01-02T21:47:49.160 回答
0

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

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

这是我的方法:

#!/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'

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

数据.dat

1 1
2 2
3 3
4 2
0 3

并得到这个输出:

在此处输入图像描述

于 2013-01-02T22:47:10.690 回答