gnuplot:对数轴和dgrid3d不能一起使用

时间:2018-11-07 07:26:08

标签: gnuplot

我想在x和y轴上以对数刻度绘制稀疏的数据网格,并用颜色和轮廓定义z轴。

使用logscale xy会产生与我绘制每个轴的对数的线性图时截然不同的图。

Using logscale xy

Linear plot of logged values

我想要第一个图的漂亮的对数轴和轮廓图例的位置,以及第二个图的漂亮的中心部分和色标。

我当前的脚本是

set dgrid3d 50,50 splines
set pm3d
set pm3d map

set cntrparam levels auto
set contour surface

#set logscale xy
#splot "test_data.dat" using 1:2:3 with l nosurf lw 3
splot "test_data.dat" using (log10($1)):(log10($2)):3 with lines nosurf lw 3

我在其中更改注释以更改我制作的图。

我在做什么错了?

所有建议都会被接受。

edit:通过更多的研究,我认为数据被dgrid3d线性空间网格化,然后被logscale xy记录在日志空间中。我希望将数据网格化绘制在日志空间中。

是否只有gnuplot解决方案?

1 个答案:

答案 0 :(得分:0)

双重解决方案。 1)图表外观的差异是由于5.2.2中的错误所致。升级到5.2.3修复了它。 2)通过在线性轴上绘制数据的对数,然后将轴合并为对数来解决网格化问题。

需要通过使次要声节比主要声节小一些来改善情节。

"Fixed" plot

set pm3d
set pm3d map
set cntrparam levels auto
set contour surface

#set xrange [2:6] #setting this makes the image finish at the y2 tics, without changing the xtics
set xtics 2,1,6
unset xtics

# "major" tics
set xtics ("100" 2, "1000" 3, "10000" 4, "100000" 5, "1e6" 6)
# "minor" ticks
set for [i=2:6:1] xtics add ("" log10(2*10**i),"" log10(3*10**i),"" log10(4*10**i),"" log10(5*10**i), "" log10(6*10**i),"" log10(7*10**i),"" log10(8*10**i),"" log10(9*10**i)) 

set ytics -2,1,-1
unset ytics
set ytics ("0.01" -2, "0.1" -1)
set for [i=-3:0:1] ytics add ("" log10(2*10**i),"" log10(3*10**i),"" log10(4*10**i),"" log10(5*10**i), "" log10(6*10**i),"" log10(7*10**i),"" log10(8*10**i),"" log10(9*10**i)) 

splot "test_data.dat" using (log10($1)):(log10($2)):3