是否有可能使用具有自定义斜率点断点的非线性标度?例如:我希望y标度的一半显示范围[0:1],另一半显示[1:5],我不想使用对数标度.
最好的是提供映射功能的可能性.当然可以直接映射功能结果,但实验室不适合实际数据.
有可能吗?我搜索了一下,但我不确定我是否错过了什么或者是否不可能.
这可以使用set link,仅在4.7开发版本中可用.
以下脚本执行映射,但标签位于y2-axis上:
reset
f(x) = x <= 1 ? x : 1 + (x-1)*4
i(x) = x <= 1 ? x : (x-1)/4.0 + 1
set link y2 via f(y) inverse i(y)
unset ytics
set y2tics mirror
set xrange[0:5]
set yrange[0:2]
plot x axes x1y2
Run Code Online (Sandbox Code Playgroud)
4.7的结果:

使用一些偏移量,您可以将标签从y2-axis 移动到y-axis:
reset
set terminal pngcairo size 800,500
set output 'output.png'
f(x) = x <= 1 ? x : 1 + (x-1)*4
i(x) = x <= 1 ? x : (x-1)/4.0 + 1
set link y2 via f(y) inverse i(y)
unset ytics
set lmargin at screen 0.1
set rmargin at screen 0.95
set y2tics mirror offset graph -1.04 right
# set y2tics add (0.5)
set my2tics 2
set y2tics add ('' 0.25 1, '' 0.75 1)
set ylabel 'ylabel' offset -4
set xrange[0:5]
set yrange[0:2]
plot x axes x1y2
Run Code Online (Sandbox Code Playgroud)
这很难看,但它确实有效.它需要稍微摆弄左右边距和y2tics偏移.
编辑:我添加了次要抽搐,在0和之间频率更高1.我想这可能是添加了一个标签有用0.5表明,规模是线性的,但具有不同的梯度(在这种情况下,你可能还需要set y2tics format '%.1f'有对所有标签一个十进制数).然而,这个抽搐也会出现一个主要的抽搐,因为不支持使用标签进行次要抽搐.
结果是:
