我想在x和y轴上以对数刻度绘制稀疏的数据网格,并用颜色和轮廓定义z轴。
使用logscale xy
会产生与我绘制每个轴的对数的线性图时截然不同的图。
我想要第一个图的漂亮的对数轴和轮廓图例的位置,以及第二个图的漂亮的中心部分和色标。
我当前的脚本是
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解决方案?
答案 0 :(得分:0)
双重解决方案。 1)图表外观的差异是由于5.2.2中的错误所致。升级到5.2.3修复了它。 2)通过在线性轴上绘制数据的对数,然后将轴合并为对数来解决网格化问题。
需要通过使次要声节比主要声节小一些来改善情节。
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