【问题标题】:Gnuplot Polar Coodinates HistogramGnuplot 极坐标直方图
【发布时间】:2020-10-07 17:54:26
【问题描述】:

我有一个数据文件file.dat,其中包含平面中点的三列(无线电、角度、温度),我想使用极坐标和颜色图将此数据绘制为直方图,如下图所示,但是使用 gnuplot。我可以使用我想要的 bin 值创建一个 histogram.dat 文件,但我不知道如何在 gnuplot 中绘制它

【问题讨论】:

    标签: gnuplot histogram color-mapping


    【解决方案1】:

    据我所知,gnuplot 中没有即时的“极坐标热图”绘图样式(但我可能是错的,至少我在演示页面上没有看到示例)。因此,您必须自己实现它。

    基本上,对于每个数据点,您必须绘制一个填充段。因此,对于每个数据点,您必须在该单段的圆周上创建点。然后你可以绘制这个段with filledcurves和一个特定的颜色。

    假设:

    • 数据采用规则网格/角度 (astep) 和半径 (rstep) 步长。
    • 数据在数据块中(如何从文件中获取数据到数据块中,参见gnuplot: load datafile 1:1 into datablock
    • 分隔符是空格
    • 没有标题行

    进一步的优化潜力:

    • 自动提取asteprstep

    我希望您可以根据需要调整代码。

    代码:

    ### workaround for polar heatmap
    reset session
    
    set size square
    set angle degrees
    unset border
    unset tics
    set cbtics
    set polar
    set border polar
    unset raxis
    
    # create some test data
    f(a,r) = r*cos(a) * r*sin(a) + rand(0)*100
    set print $Data
        do for [a=0:350:10] {
            do for [r=1:20] {
                print sprintf("%g %g %g",a,r,f(a,r))
            }
        }
    set print
    
    astep = 10
    rstep = 1
    
    # create the segments for each datapoint
    set print $PolarHeatmap
        do for [i=1:|$Data|] {
            a = real(word($Data[i],1))
            r = real(word($Data[i],2))
            c = real(word($Data[i],3))
            do for [j=-5:5] {
                print sprintf("%g %g %g",a+j*astep/10., r-0.5*rstep, c)
            }
            do for [j=5:-5:-1] {
                print sprintf("%g %g %g",a+j*astep/10., r+0.5*rstep, c)
            }
            print ""
            print ""
        }
    set print
    
    set style fill noborder
    set palette defined (0 "blue", 1 "grey", 2 "green")
    
    plot $PolarHeatmap u 1:2:3 w filledcurves palette notitle
    ### end of code
    

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多