Gnuplot极坐标图直方图

用户名

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

在此处输入图片说明

西奥日

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

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

假设:

进一步优化的潜力:

  • 的自动提取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

结果:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章