gnuplot: установить ссылку и x2tics в интерактивном режиме - PullRequest
0 голосов
/ 24 февраля 2020

В интерактивном режиме x2tics скоро исчезают при увеличении.

Этот пример был показан здесь

set tics nomirror
set x2tics
set link x2 via x**2 inv sqrt(x)
plot sin(x)

Мне бы хотелось иметь хотя бы ориентацию, и мне все равно, расположены ли x2tics на равном расстоянии или сопоставлены с xtics.

Руководство set x2tics 1 дает хорошие результаты c результаты .

Но есть ли решение для интерактивного режима?

Редактировать:

Для этой комковатой возможности требуется нажать «а» для обновления сюжет каждый раз:

bind a "set x2tics (GPVAL_X2_MAX-GPVAL_X2_MIN)/5; replot"

или для чуть более круглых шагов (1,2,5)

bind a "dx2 = (GPVAL_X2_MAX-GPVAL_X2_MIN) / 5;\
        i10 = 10 ** floor(log10(dx2));\
        f10 = dx2 / i10;\
        set x2tics i10*(f10<1.5?1:f10<4?2:5);\
        replot"

1 Ответ

0 голосов
/ 10 марта 2020

Можно использовать фиктивную функцию, которая сэмплирует новые позиции на лету и использует спецификатор x2ticlabels (см. help xticlabels)

set tics nomirror
set x2tics
set link x2
plot sin(x)  # to preset GPVAL_X_MIN and GPVAL_X_MAX
plot sin(x), [t=GPVAL_X_MIN:GPVAL_X_MAX:(GPVAL_X_MAX-GPVAL_X_MIN)/5] "+" us (t):(NaN):x2tic(sprintf("%g",sqrt(t)))

Для прямоугольного зума все еще требуется событие replot в то время как для увеличения масштаба колеса это работает гладко.

...