代码之家  ›  专栏  ›  技术社区  ›  masher

Gnuplot:对数轴和dgrid3d不一起工作

  •  1
  • masher  · 技术社区  · 6 年前

    我有一个稀疏的数据网格,我想用对数标度在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
    

    在这里,我改变了评论,改变了我的情节。

    所有建议都将欣然接受。

    编辑:通过更多的研究,我认为数据正在被网格化 dgrid3d 对数刻度xy 在对数空间中绘制。

    有gnuplot唯一的解决方案吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   masher    6 年前

    双重溶液。1) 绘图外观的差异是由于5.2.2中的一个bug造成的。升级至5.2.3修复。

    情节需要改进,使次要的抽搐比主要的小。

    "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