我有一个自动脚本,每天使用GNUPlot生成一个图表。用于图表的数据量每天都在增长,因此我的x-ticks会在一段时间后变得混乱。我可以以某种方式限制主要x刻度的数量,这样我总能看到5,无论绘制多少点?
修改:我的评论不够明确。这就是我现在这样做的方式: 我有一个包含持续时间的变量var,更准确地说是9天内的秒数:
var = 9 * 86400
我使用set xtics <start>, <incr>
告诉GNUPlot只显示每9天数据的勾号:
设置xtics“20111101”,var
问题是我必须每隔一段时间手动更改一次,因为数据量会增加。我可以告诉GNUPlot限制xticks的数量吗?或者我可以以某种方式更改变量var以包括绘制点的数量? (也无法找到如何做到这一点)
答案 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>
正是您要找的。 p>
答案 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
可能会重新解析该文件。