Объедините график файла и сплот функции в одном графике с gnuplot - PullRequest
0 голосов
/ 28 октября 2019

Я хочу построить путь линий на графике функции в одном графике. Мой код:

reset
#set output 'potential_tr_pfad3.tex'
set terminal tikz color size 18cm, 8cm
unset key

set view map
set samples 80, 80
set isosamples 80, 80

plot 'tr_path.dat' with circles lc rgb "#90EE90" fs transparent solid 0.15 border,\
'tr_path.dat' u 1:2 with linespoints lw 2 lc rgb "#000000"

set xr [x=-4:4]
set yr [y=-11:2]

potential(x,y) = 5*(x**2+y**2+8*x+6*y)**2+5*(x**2+y**2-6*x+8*y)**2+1000*y

set contour base
set cntrparam bspline
set cntrparam levels discrete 20000,10000,2500,0,-2500,-5000, -6000,-7000
do for [t=1:8] {
set linetype t lc rgb "#888888"
}

set xlabel "X" 
set ylabel "Y" 
set zlabel '{/Symbol P}' enhanced
set zlabel  offset character 7, 9, 0

potential(x,y) = 5*(x**2+y**2+8*x+6*y)**2+5*(x**2+y**2-6*x+8*y)**2+1000*y
set xr [x=-4:4]
set yr [y=-10:1]

set style textbox opaque margins  0.5,  0.5 fc  bgnd noborder linewidth  1.0
set cntrlabel start 0  format "%16.0f" font ",6" interval 100
unset surface

splot potential(x,y) with lines lc rgb "#000000",\
potential(x,y) with labels boxed notitle

с файлом данных:

0.00000000e+000   0.00000000e+000  1.0000000
0.00000000e+000  -1.00000000e+000  2.0000000 
-7.21690590e-002 -2.37121212e+000  4.0000000

До сих пор моим решением было объединить два тикз-изображения в LaTeX. Но должен быть лучший способ без проблем с границами графа. Есть идеи?

Приветствую и заранее благодарю!

1 Ответ

0 голосов
/ 29 октября 2019

Полагаю, проблема здесь в том, что splot с контуром и plot с кружками нельзя использовать вместе. Одним из решений было бы построить данные контура в таблице, а затем построить их вместе с помощью одной команды plot. Я немного перестроил или переписал ваш код. Я думаю, это должно приблизиться к тому, чего вы хотите достичь, и может быть улучшено в дальнейшем. Вывод ниже создан с помощью gnuplot 5.2.6 и терминала wxt.

Код:

### plot contour data together with something else
reset session
unset key

set view map
set samples 80, 80
set isosamples 80, 80

set xr [x=-4:4]
set yr [y=-11:2]

potential(x,y) = 5*(x**2+y**2+8*x+6*y)**2+5*(x**2+y**2-6*x+8*y)**2+1000*y
set contour base
set cntrparam bspline
set cntrparam levels discrete 20000,10000,2500,0,-2500,-5000, -6000,-7000
unset surface

# write contour data to table
set table $Potential
    splot potential(x,y)
unset table

set xlabel "X" 
set ylabel "Y" 
set zlabel '{/Symbol P}' enhanced
set zlabel  offset character 7, 9, 0

set style textbox opaque margins  0.5,  0.5 fc  bgnd noborder linewidth  1.0

plot $Potential u 1:2 w l lc rgb "#888888",\
     '' every 100 w labels boxed  font ",6" notitle, \
     'MyData.dat' u 1:2:3 w circles lc rgb "#90EE90",\
     '' u 1:2:3 w lp lw 2 lc rgb "#000000"
### end of code

MyData.dat

0.00000000e+000   0.00000000e+000  1.0000000
0.00000000e+000  -1.00000000e+000  2.0000000 
-7.21690590e-002 -2.37121212e+000  4.0000000

Результат:

enter image description here

...