沒有選項把例如6
在一個軸上平均分佈抽搐(就像使用set my2tics 7
一樣)。但是您可以手動添加標籤,因爲您知道功能範圍。
首先你需要清除所有自動y2tics
與
set y2tics (f(0))
然後你就可以在一個循環中設置的所有主要和次要的抽動:
do for [i=0:6] {
set y2tics add (f(i/2.0))
set y2tics add ('' f(i/2.0 + 0.25) 1)
}
注意,與浮子增量循環沒有按沒有工作。
所以你完整的腳本是這樣的:
reset
set grid mytics
set xrange[1:5]
set yrange[0:3]
set y2range[0:30]
set xlabel "a"
set ylabel "b"
set ytics nomirror
set y2label "c"
set mytics 2
ca = 0.05
cb = 0.5
f(x) = sin(x*pi/180)*cb *1000
i(x) = asin(x/1000/cb)/pi*180
set link y2 via f(y) inverse i(y)
set format y2 '%.2f'
set y2tics (f(0)) # clear all automatic y2tics
do for [i=0:6] {
set y2tics add (f(i/2.0))
set y2tics add ('' f(i/2.0 + 0.25) 1)
}
pl asin(ca /x)/pi*180 title "a"
與結果:
有一種方法,只要設置y2tics
獨立的yrange
的AS號主要抽動是已知的。首先您使用unknown
終端進行繪圖,之後您可以訪問yrange
值作爲變量GPVAL_Y_MIN
和GPVAL_Y_MAX
。不幸的是,一個不能訪問軸的抽動次數:再次
...
set link y2 via f(y) inverse i(y)
set terminal push # save current terminal
set terminal unknown
pl asin(ca /x)/pi*180 title "a"
num_tics = 7
set format y2 '%.2f'
set y2tics (f(GPVAL_Y_MIN)) # clear all automatic y2tics
Y0 = GPVAL_Y_MIN
DY = (GPVAL_Y_MAX - GPVAL_Y_MIN)/(num_tics-1)
do for [i=0:(num_tics-1)] {
set y2tics add (f(Y0+i*DY))
set y2tics add ('' f(Y0+(i+0.5)*DY) 1)
}
set terminal pop # restore terminal
replot
感謝,我希望有一個更好的解決方案是獨立的範圍,但它會工作的感謝 –
@vlad_tepesch你可以把它獨立於實際範圍,但必須知道抽搐的數量。見編輯的答案。 – Christoph