GNUPlot:如何设置最大x-tick数

时间:2012-01-17 07:30:01

标签: graph plot gnuplot

我有一个自动脚本,每天使用GNUPlot生成一个图表。用于图表的数据量每天都在增长,因此我的x-ticks会在一段时间后变得混乱。我可以以某种方式限制主要x刻度的数量,这样我总能看到5,无论绘制多少点?

修改:我的评论不够明确。这就是我现在这样做的方式: 我有一个包含持续时间的变量var,更准确地说是9天内的秒数:

  

var = 9 * 86400

我使用set xtics <start>, <incr>告诉GNUPlot只显示每9天数据的勾号:

  

设置xtics“20111101”,var

问题是我必须每隔一段时间手动更改一次,因为数据量会增加。我可以告诉GNUPlot限制xticks的数量吗?或者我可以以某种方式更改变量var以包括绘制点的数量? (也无法找到如何做到这一点)

3 个答案:

答案 0 :(得分:1)

我真的不明白你对你的问题的评论。也许你可以编辑你的问题,在其中加入评论并详细说明你在做什么。

通常,您可以按照here所述的以下方式修改x-tick:

set xtics {axis | border} {{no}mirror}  
               {in | out} {scale {default | <major> {,<minor>}}}  
               {{no}rotate {by <ang>}} {offset <offset> | nooffset}  
               {add}  
               {  autofreq  
                | <incr>  
                | <start>, <incr> {,<end>}  
                | ({"<label>"} <pos> {<level>} {,{"<label>"}...) }  
               { format "formatstring" } { font "name{,<size>}" }  
               { rangelimited }  
               { textcolor <colorspec> }  
     unset xtics  
     show xtics 

因此,AFAIK无法明确设置使用的x-tick数。通常gnuplot自己做得很好。

可能set xtics <inc>set xtics <start>, <inc>, <end>正是您要找的。

答案 1 :(得分:1)

或许这样的事情。我假设您正在将输入数据提供给此脚本,并且数据行数决定了您需要多少x个刻度。

#!/bin/sh

t=$(mktemp -t ggplot.XXXXXXX)
trap 'rm -f $t' 0          # Remove temp file at script end
trap 'exit 127' 1 2 3 5 15 # Remove temp file if interrupted, also

cat >$t

# 24*60*60/5
xticks=$(awk 'END { print 17280*NR }' $t)

gnuplot <<EOF
# Generated Gnuplot script
set xlabel "blah blah blah, etc"
set xtics "20111101",$xticks
plot [:] '$t'
EOF

(对不起,我的Gnuplot技能显然不太好了。)

答案 2 :(得分:0)

也许不是在问这个问题时,但是在gnuplot 5.0 patchlevel 5中,有一个命令stats可以解析输入文件并给出各种统计信息,包括输入点数min / max,等等。

这些变量可用于范围。

缺点是一次只能分析2列。我并没有真正测试过,但是重新运行stats可能会重新解析该文件。