Использование gnuplot для нанесения точек с помощью цвета и x-меток - PullRequest
1 голос
/ 19 июня 2020

Я пробовал это в течение нескольких часов, но ничего не добился. Я пытаюсь сделать следующее:

У меня есть решение на основе моделирования со значениями x и y и значением для каждой точки.

Я пытаюсь построить данные с помощью gnuplot. Я хочу, чтобы значения между моими точками данных были интерполированы с использованием цвета, а сами точки должны быть отмечены точкой, «x» или sth. как это похоже на это (за исключением круглой границы и этих меток внутри):

enter image description here

Я пытался получить очень базовый c пример собираюсь. Мой файл данных выглядит так:

1   1   0.1
1   2   0.3
1   3   0.6
2   1   0.5
2   2   0.7
2   3   0.9
3   1   0.2
3   2   0.8
3   3   0.7

и мой ввод gnuplot так:



set terminal postscript eps enhanced color font 'Helvetica,10'
set output './production/image1.eps'

set palette gray

set title "Titel" 

#set xrange [1:4]
#set yrange [0:10]

set format y "%.1f"
set format x "%.1f"

set xlabel "x-Achse [Einheit]" 
set ylabel "y-Achse [Einheit]" rotate by 90


set view map
set pm3d at b map
set pm3d interpolate 2,2
set dgrid3d 50,50,2
splot "inputDatei.dat" u 1:2:3 linecolor palette

Результат выглядит так:

enter image description here

Есть несколько проблем, которые я не могу решить:

  1. в правом рипе есть метка "inputDatai.dat" u 1: 2: 3 " . Я пробовал splot ... label "", но это не решило проблему
  2. интерполяция, похоже, не работает. Это видно с меньшей сеткой
  3. точки данных не выделены. Я попытался использовать splot ... with points но это будет отображать только точки в КАЖДОМ углу сетки, что, очевидно, слишком много. Также входные данные могут быть не "обычными", но точки могут быть где угодно.

Я очень рад, если бы кто-то мог Помогите мне с этим.

Привет, Финн

1 Ответ

1 голос
/ 19 июня 2020

На ваши вопросы:

  1. используйте unset key перед командой plot или splot ... notitle внутри команды plot
  2. что означает «не работает»? Пожалуйста, объясните.
  3. Думаю, это похоже на здесь ( Наложение векторов, dgrid3d и pm3d в gnuplot для 3D-графика ). Для выделенных точек необходимо отключить интерполяцию. Я не уверен, можно ли это сделать с помощью команды построения графика, поэтому вам нужно вывести интерполированные данные в отдельный блок данных через set table, а затем отключить интерполяцию.

Код :

### interpolate data with highlighted datapoints
reset session

$Data <<EOD
1   1   0.1
1   2   0.3
1   3   0.6
2   1   0.5
2   2   0.7
2   3   0.9
2.5 2.5 0.1
3   1   0.2
3   2   0.8
3   3   0.7
EOD

set size square
set view map
set pm3d at b
set pm3d interpolate 2,2
set dgrid3d 50,50,2

set table $DataInterpolated
    splot $Data u 1:2:3 
unset table
unset dgrid3d

set palette grey
set xrange [0.9:3.1]
set yrange [0.9:3.1]

splot $DataInterpolated u 1:2:3 w pm3d palette notitle, \
      $Data u 1:2:3 w p pt 1 lw 2 lc rgb "red" notitle
### end of code

Результат:

enter image description here

...