【问题标题】:GNUPlot: How to set maximum number of x-ticksGNUPlot:如何设置 x-ticks 的最大数量
【发布时间】:2012-01-17 07:30:01
【问题描述】:

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

编辑:我的评论不够清楚。这是我目前的做法: 我有一个包含持续时间的变量 var,更准确地说是 9 天内的秒数:

var = 9*86400

我使用set xtics <start>, <incr> 告诉 GNUPlot 只为每 9 天的数据显示一个刻度:

设置 xtics "20111101", var

问题是我必须每隔一段时间手动更改一次,因为数据量会增长。我可以以某种方式告诉 GNUPlot 限制 xticks 的数量吗?或者我可以以某种方式更改变量 var 以包含绘制点的数量? (也不知道怎么做)

【问题讨论】:

  • 目前我正在使用:var = 9*86400 / set xtics "20111101", var / 但我必须每隔一段时间手动更改一次。
  • 您的脚本难道不能根据数据范围为刻度线生成合适的值吗?
  • 这正是我想做的。但我不知道如何获得绘制点的数量。另外,我认为可能有一种方法可以告诉 GNUPlot 仅“将 xticks 限制为最大 5”

标签: graph plot gnuplot


【解决方案1】:

我不太明白您对问题的评论。也许您可以编辑您的问题,在其中包含评论并详细说明您在做什么。

一般而言,您可以按照here 所述的以下方式修改 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-ticks 的数量。通常 gnuplot 自己做的很好。

也许set xtics &lt;inc&gt;set xtics &lt;start&gt;, &lt;inc&gt;, &lt;end&gt; 就是您要找的。​​p>

【讨论】:

  • 嗨沃尔坦。这正是我已经在做的事情(请阅读我编辑的帖子)。但是我绘制的点越多,标签就越混乱。我需要最大。 x 轴上有 5 个标签,无论我有多少数据点。可悲的是,GNUPlot 并没有阻止标签重叠。那是我的问题。
【解决方案2】:

也许是这样的。我假设您将输入数据提供给此脚本,并且数据行数决定您需要多少 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 技能显然已经不是很好了。)

【讨论】:

    【解决方案3】:

    可能不是在问这个问题的时候,但是用gnuplot 5.0 patchlevel 5,有一个命令stats解析输入文件并给出各种统计信息,包括输入点的数量,最小/最大等.

    这些变量可用于范围。

    一个缺点是它一次只能分析 2 列。我没有真正对此进行测试,但重新运行 stats 可能会重新解析文件。

    【讨论】:

      猜你喜欢
      • 2021-12-09
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      相关资源
      最近更新 更多