我有一个自动脚本,它每天使用GNUPlot生成一个图形。用于图表的数据量每天都在增长,所以过了一段时间,我的x-滴答就变得杂乱无章了。我能不能以某种方式限制主要的x-滴答的数量,使我总是看到5,无论有多少点是绘制的?
编辑:,我的评论不够清楚。现在我就是这样做的:我有一个变量var,它包含一个持续时间,更确切地说是9天中的秒数:
var = 9*86400
我使用set xtics <start>, <incr>告诉GNUPlot,每9天只显示一次数据:
集合xtics "20111101",var
问题是,由于数据量不断增加,我必须每隔一段时间手动更改一次。我能告诉GNUPlot限制xticks的数量吗?或者,我是否可以将变量var更改为包含绘制点的数目?(也找不出该怎么做)
发布于 2012-01-18 12:30:26
也许是这样的。我假设您要将输入数据输入到这个脚本中,并且数据行数决定了您需要多少个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(对不起,我的侏儒技巧显然已经不太好了。)
发布于 2012-01-17 08:52:58
我不太明白你对你的问题的评论。也许你可以编辑你的问题,包括评论,详细说明你到底在做什么。
通常,您可以按以下方式修改x-ticks,如所述的这里所示
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-滴答数.通常,gnuplot自己就能做到这一点。
也许set xtics <inc>或set xtics <start>, <inc>, <end>是你要找的东西。
发布于 2020-07-27 14:56:07
在提出这个问题时,可能不是这样,但是在gnuplot 5.0 patchlevel 5中,有一个命令stats解析输入文件,并给出各种统计信息,包括输入点数、min/max等。
这些变量可以用于范围。
缺点是一次只能分析两列。我并没有真正测试这个,但是重新运行stats可能会重新解析这个文件。
https://stackoverflow.com/questions/8891041
复制相似问题