GNUPlot: как установить максимальное количество тиков - PullRequest
2 голосов
/ 17 января 2012

У меня есть автоматический скрипт, который генерирует график каждый день, используя GNUPlot. Количество данных, используемых для графика, растет с каждым днем, поэтому мои х-тики через некоторое время загромождаются. Можно ли как-то ограничить количество основных x-тиков, чтобы я всегда видел 5, независимо от того, сколько точек нанесено?

Редактировать: Мой комментарий был недостаточно четким. Вот как я это делаю на данный момент: У меня есть переменная var, которая содержит продолжительность, точнее количество секунд в 9 днях:

var = 9 * 86400

И я использую set xtics <start>, <incr>, чтобы сказать GNUPlot, что нужно показывать тик только для каждых 9 дней данных:

set xtics "20111101", var

Проблема в том, что мне приходится периодически менять это вручную, поскольку объем данных увеличивается. Могу ли я как-то сказать GNUPlot ограничить количество xticks? Или я мог бы как-то изменить переменную var, включив в нее количество нанесенных точек? (тоже не мог узнать как это сделать)

Ответы [ 2 ]

1 голос
/ 18 января 2012

Нечто подобное возможно. Я предполагаю, что вы вводите входные данные в этот сценарий, и что количество строк данных определяет, сколько 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, очевидно, уже не очень хороши.)

1 голос
/ 17 января 2012

Я не совсем понимаю ваш комментарий к вашему вопросу. Возможно, вы могли бы отредактировать свой вопрос, включить в него комментарий и уточнить, что именно вы делаете.

В общем, вы можете изменить 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> - это то, что вы ищете.

...