Гнуплот, тепловая карта, обозначение определенной точки - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь построить тепловую карту, и сюжет готов.Хотя мне нужно пометить определенные точки с некоторыми тегами имен.Я использовал метку команды, но она не работает.Я проверил, но я не получил никакого решения, которое работало.Заранее спасибо.

Я добавляю базовый скрипт, который я использую для генерации.

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

1 Ответ

0 голосов
/ 20 февраля 2019

Здесь две проблемы.

  1. Вам нужно будет нарисовать поверхность pm3d отдельно от меток
  2. "splot with label" требует 4 столбца информации: x, y, z, label

Если предположить, что столбцы в вашем файле данных на самом деле являются x, y, z, попытка метки:

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
...