Gnuplot 对称对数图(symlog)

Gnuplot 对称对数图(symlog),gnuplot,Gnuplot,如何在gnuplot中绘制符号图 有这样一个特点: 我正在考虑一些axis+tics操作或multiplot,其中面板上的轴是反向的 最后,我需要将其用于z轴(cbrange),将残差显示为图像。symlog(x)=(-1

如何在gnuplot中绘制符号图

有这样一个特点:

我正在考虑一些axis+tics操作或
multiplot
,其中面板上的轴是反向的

最后,我需要将其用于
z
轴(
cbrange
),将残差显示为图像。

symlog(x)=(-1symlog(x)  = (-1 < x && x < 1) ? x/10. \
           : (x < 0) ? -log(-x) - 0.1 \
           : log(x) + 0.1
invsymlog(x) = (-0.1 < x && x < 0.1) ? x*10. \
             : (x < 0) ? -exp(-(x+0.1)) \
             : exp(x-0.1)

set xlabel "Symlog axis"

set nonlinear x via symlog(x) inv invsymlog(x)
set xrange [-4*pi : 4*pi]
set sample 500

set xtics -10,1,10 nomirror
set xtics add ("//" 0)
set xtics font ",10"

plot x*cos(x)
:(x<0)-对数(-x)-0.1\ :对数(x)+0.1 invsymlog(x)=(-0.1

在-1和+1之间的区域是线性的,其余的是对数刻度

symlog(x)=(-1


在-1和+1之间的区域是线性的,其余的是对数刻度

在这个表示法中,-1到0和+1(相对于1到10和-1到-10)之间的距离是多少?介于-1到0和+1之间的范围是线性的吗?10到100(-10到-100)之间的距离是多少?这我不清楚。您能详细说明一下吗?所有
symlog
轴也都是对数的,范围为-1到0和0到1。最后一个图使用了
linthreshy=0.015
,因此
-0.015==0==0.015
@Friedrich:轴不可能在延伸到0的范围内是对数的。matplotlib文档说:“由于接近零的值趋于无穷大,因此需要有一个在零附近的线性范围。参数linthresh允许用户指定该范围的大小(-linthresh,linthresh)。”嗯,我无法快速找到更详细的matplotlib文档。不管怎样,在阈值处截断对我来说也很好。在这个表示法中,-1到0和+1(相对于1到10和-1到-10)之间的距离是多少?介于-1到0和+1之间的范围是线性的吗?10到100(-10到-100)之间的距离是多少?这我不清楚。您能详细说明一下吗?所有
symlog
轴也都是对数的,范围为-1到0和0到1。最后一个图使用了
linthreshy=0.015
,因此
-0.015==0==0.015
@Friedrich:轴不可能在延伸到0的范围内是对数的。matplotlib文档说:“由于接近零的值趋于无穷大,因此需要有一个在零附近的线性范围。参数linthresh允许用户指定该范围的大小(-linthresh,linthresh)。”嗯,我无法快速找到更详细的matplotlib文档。不管怎么说,在一个临界点截断对我来说也很好。