2013-03-27 2 views
0

Я написал сценарий Баша, который генерирует файлы, которые затем нанесен автоматически, используя следующий шаблон (минимальный рабочий пример):Предельного количества ytics при использовании автоматического ytics размещения

set terminal epslatex color size 3,1.2 
set output "fig.tex" 

set ylabel '$\lambda_i$' offset +1.5,0 
set xlabel '$i$' offset 0,+0.5 
set logscale x 
set mxtics 5 
set mytics 5 
plot "file.dat" w p pt 7 ps 0.7 lc rgb "#033775" 

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

[Не хватает респ, так вот пример: http://i.stack.imgur.com/zd7XK.png]

Я подозреваю, что epslatex терминал вызывает проблемы (т.е. Gnuplot не осознавая реальную высоту шрифта и сбрасывая слишком много тиков в доступном пространстве). Моим обходным решением было бы ограничить количество тиков, позволяя автоматическое размещение ytics, но я ничего не могу найти по этому вопросу.

ответ

2

В общем, вы можете уменьшить частоту тиков на оси у с

set ytics VALUE 

Примером может быть:

plot sin(x) 

производит это автоматические тики (фикс: Ссылка на изображение удалено) и

set ytics 0.5 
plot sin(x) 

производит this.

Если вы не знаете, какое значение поставить для VALUE, вы можете рассчитать это, используя STATS_min_x и STATS_max_x для gnuplot4.6 и GPVAL_DATA_X_MIN для более ранних версий. Для использования тех, которые видят, например, the answer from andyras

В качестве альтернативы (с аналогичным использованием) в этом случае может оказаться более полезным использовать GPVAL_Y_MIN и GPVAL_Y_MAX, поскольку они уже округлены.

Затем вы можете использовать, например:

set terminal unknown 
plot(x) 
ntics = 4. 
dy = floor((GPVAL_Y_MAX-GPVAL_Y_MIN+0.5)/ntics*10.)/10. 
set ytics dy 
set terminal ... 
replot 

, которая производит на пример выше 4 тиков, как указано (исправление: ссылка на изображение, удалена).

+0

Обратите внимание, что OP использует логарифмическую ось, поэтому интерпретация VALUE в этом случае * слегка * отличается. В противном случае, я думаю, это лучшее, что вы можете сделать. +1 – mgilson

+0

Спасибо! Я уже наткнулся на такие решения. Он хорошо работает с большинством терминалов (например, eps), но epslatex не очень хорошо работает с репликами .. он имеет тенденцию создавать испорченные документы .tex! Наверное, мне придется в этом разобраться :) – jgyou