【问题标题】:Gnuplot, heat-map, label certain pointGnuplot,热图,标记某个点
【发布时间】:2019-02-21 13:42:59
【问题描述】:

我正在尝试绘制热图,并且绘制完成了。虽然我需要用一些名称标签标记某些点。我使用了命令标签,但它不起作用。我检查了但我没有得到任何有效的解决方案。提前致谢。

我正在添加我用来生成的基本脚本。

set terminal postscript portrait enhanced color size 16cm,12cm
set output "pdiff.pdf"
set style data lines
set pm3d


set xlabel "Baseline  in km" 
set ylabel "Energy  in GeV"

set view map scale 1
unset surf
set cbrange [-0.04:0.05]
set xrange [200:1500]
set yrange [0.2:5]
set xtics 100,200,1500
set ytics 0,0.5,5

set label "DUNE" at 1300,2.521 point pt 28 ps 1   
set label "NOvA" at 812,1.574 point pt 22 ps 1
set label "KD" at 1100,2.133 point pt 20 ps 1
set pm3d interpolate 5,7
set palette defined ( 0 0.05 0.05 0.2, 0.1 0 0 1, 0.25 0.7 0.85 0.9,\
     0.4 0 0.75 0, 0.5 1 1 0, 0.7 1 0 0, 0.9 0.6 0.6 0.6,\
     1 0.95 0.95 0.95 )
splot "pdiff.txt" using 1:2:3 notitle with labels

【问题讨论】:

    标签: label gnuplot


    【解决方案1】:

    这里有两个问题。

    1. 您需要将 pm3d 表面与标签分开绘制
    2. “带有标签的splot”需要4列信息:x、y、z、标签

    假设你的数据文件中的列实际上是 x, y, z, label 试试:

    splot "pdiff.txt" using 1:2:3 with pm3d, \
          "pdiff.txt" using 1:2:3:4 with labels
    

    您应该对未从文件中提取的标签进行编号,以便您可以单独引用它们。此外,由于您使用 3D 命令splot,您应该为标签提供 x、y 和 z 坐标。要将单个标签移到前面(绘制在其他所有标签之后),请添加关键字front,如

    set label 1 "DUNE" at 1300, 2.521, 0.0 point pt 28 ps 1
    set label 1 front
    set label 2 "NOvA" at 812, 1.574, 0.0 point pt 22 ps 1
    set label 2 front
    

    【讨论】:

    • 好的@Ethan 谢谢我试过了,但还是不行!
    • 请提出其他建议!我没有四列,因为我要添加的标签大多不在数据文件中。
    • 当唯一的描述是“不工作”时,不可能诊断出问题所在。它是否绘制 pm3d 表面?它会在任何地方放置标签吗?如果文件中没有标签,为什么原始问题splot "pdiff.txt" with labels 中显示的命令?有错误信息吗?
    • 我实际上尝试过以这种方式使用它,但它不起作用。如您所见,在脚本中,我在......处添加了设置标签“DUNE”,我希望添加它,这即将到来,但它在热图的这个表面后面,所以它不可见。跨度>
    • 查看修改后的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    相关资源
    最近更新 更多