Gnuplot: вставка из файла .plt - PullRequest
0 голосов
/ 11 июня 2018

У меня есть 2 общих файла Gnuplot: plot1.plt и plot2.plt уже сохранены.Мне нужно объединить их в один сюжет, в котором plot2.plt - это вставка plot1.plt.

. Я думаю, что могу лучше объяснить с помощью картинки.Конечный результат, скажем, должен быть примерно таким:

Plot2.plt as an inset of plot1.plt

На этом изображении plot2.plt - вставка, а основной сюжет - plot1.plt.Каждый файл может быть загружен в Gnuplot правильно и независимо.

Спасибо за любые советы.

Редактировать: Код (но он работает неправильно) выглядит примерно так:

set multiplot

load "plot1.plt"           # plot main figure

set size 0.6, 0.5       # set size of inset
set origin 0.4, 0.5     # move bottom left corner of inset
load "plot2.plt"             # plot inset

unset multiplot

plot1.plt и plot2.plt являются общими файлами графиков.Чтобы не усложнять, вы можете сгенерировать их следующим образом:

plot sin(x)
save "plot1.plt"     #or choose your folder
plot exp(x)
save "plot2.plt"     #or choose your folder

Приведенный выше код дает:

Что я получаю из кода выше

Установка другого размера или происхождения для вставки, к сожалению, не влияет на результат.Я использую GNUPLOT версии 5.0 patchlevel 4. Я прошу прощения за мой плохой английский, я не являюсь носителем языка.Пожалуйста, не стесняйтесь исправлять грамматику / орфографию.

РЕДАКТИРОВАТЬ 2: Теперь я предоставляю код для файла plot1.plt.Пожалуйста, не стесняйтесь редактировать и удалять (полностью или частично) его, если считаете, что он слишком длинный.

#!/gnuplot
#
#    
#       G N U P L O T
#       Version 5.0 patchlevel 4    last modified 2016-07-21 
#    
#       Copyright (C) 1986-1993, 1998, 2004, 2007-2016
#       Thomas Williams, Colin Kelley and many others
#    
#       gnuplot home:     http://www.gnuplot.info
#       faq, bugs, etc:   type "help FAQ"
#       immediate help:   type "help"  (plot window: hit 'h')
# set terminal wxt 0 enhanced
# set output
unset clip points
set clip one
unset clip two
set bar 1.000000 front
set border 31 front lt black linewidth 1.000 dashtype solid
set zdata 
set ydata 
set xdata 
set y2data 
set x2data 
set boxwidth
set style fill  empty border
set style rectangle back fc  bgnd fillstyle   solid 1.00 border lt -1
set style circle radius graph 0.02, first 0.00000, 0.00000 
set style ellipse size graph 0.05, 0.03, first 0.00000 angle 0 units xy
set dummy x, y
set format x "% h" 
set format y "% h" 
set format x2 "% h" 
set format y2 "% h" 
set format z "% h" 
set format cb "% h" 
set format r "% h" 
set timefmt "%d/%m/%y,%H:%M"
set angles radians
set tics back
unset grid
set raxis
set style parallel front  lt black linewidth 2.000 dashtype solid
set key title "" center
set key inside right top vertical Right noreverse enhanced autotitle nobox
set key noinvert samplen 4 spacing 1 width 0 height 0 
set key maxcolumns 0 maxrows 0
set key noopaque
unset label
unset arrow
set style increment default
unset style line
unset style arrow
set style histogram clustered gap 2 title textcolor lt -1
unset object
set style textbox transparent margins  1.0,  1.0 border
unset logscale
set offsets 0, 0, 0, 0
set pointsize 1
set pointintervalbox 1
set encoding default
unset polar
unset parametric
unset decimalsign
set view 60, 30, 1, 1
set samples 100, 100
set isosamples 10, 10
set surface 
unset contour
set cntrlabel  format '%8.3g' font '' start 5 interval 20
set mapping cartesian
set datafile separator whitespace
unset hidden3d
set cntrparam order 4
set cntrparam linear
set cntrparam levels auto 5
set cntrparam points 5
set size ratio 0 1,1
set origin 0,0
set style data points
set style function lines
unset xzeroaxis
unset yzeroaxis
unset zzeroaxis
unset x2zeroaxis
unset y2zeroaxis
set xyplane relative 0.5
set tics scale  1, 0.5, 1, 1, 1
set mxtics default
set mytics default
set mztics default
set mx2tics default
set my2tics default
set mcbtics default
set mrtics default
set xtics border in scale 1,0.5 mirror norotate  autojustify
set xtics  norangelimit autofreq 
set ytics border in scale 1,0.5 mirror norotate  autojustify
set ytics  norangelimit autofreq 
set ztics border in scale 1,0.5 nomirror norotate  autojustify
set ztics  norangelimit autofreq 
unset x2tics
unset y2tics
set cbtics border in scale 1,0.5 mirror norotate  autojustify
set cbtics  norangelimit autofreq 
set rtics axis in scale 1,0.5 nomirror norotate  autojustify
set rtics  norangelimit autofreq 
unset paxis 1 tics
unset paxis 2 tics
unset paxis 3 tics
unset paxis 4 tics
unset paxis 5 tics
unset paxis 6 tics
unset paxis 7 tics
set title "" 
set title  font "" norotate
set timestamp bottom 
set timestamp "" 
set timestamp  font "" norotate
set rrange [ * : * ] noreverse nowriteback
set trange [ * : * ] noreverse nowriteback
set urange [ * : * ] noreverse nowriteback
set vrange [ * : * ] noreverse nowriteback
set xlabel "" 
set xlabel  font "" textcolor lt -1 norotate
set x2label "" 
set x2label  font "" textcolor lt -1 norotate
set xrange [ * : * ] noreverse nowriteback
set x2range [ * : * ] noreverse nowriteback
set ylabel "" 
set ylabel  font "" textcolor lt -1 rotate by -270
set y2label "" 
set y2label  font "" textcolor lt -1 rotate by -270
set yrange [ * : * ] noreverse nowriteback
set y2range [ * : * ] noreverse nowriteback
set zlabel "" 
set zlabel  font "" textcolor lt -1 norotate
set zrange [ * : * ] noreverse nowriteback
set cblabel "" 
set cblabel  font "" textcolor lt -1 rotate by -270
set cbrange [ * : * ] noreverse nowriteback
set paxis 1 range [ * : * ] noreverse nowriteback
set paxis 2 range [ * : * ] noreverse nowriteback
set paxis 3 range [ * : * ] noreverse nowriteback
set paxis 4 range [ * : * ] noreverse nowriteback
set paxis 5 range [ * : * ] noreverse nowriteback
set paxis 6 range [ * : * ] noreverse nowriteback
set paxis 7 range [ * : * ] noreverse nowriteback
set zero 1e-008
set lmargin  -1
set bmargin  -1
set rmargin  -1
set tmargin  -1
set locale "Italian_Italy.1252"
set pm3d explicit at s
set pm3d scansautomatic
set pm3d interpolate 1,1 flush begin noftriangles noborder corners2color mean
set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB 
set palette rgbformulae 7, 5, 15
set colorbox default
set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault
set style boxplot candles range  1.50 outliers pt 7 separation 1 labels auto unsorted
set loadpath 
set fontpath 
set psdir
set fit brief errorvariables nocovariancevariables errorscaling prescale nowrap v5
GNUTERM = "wxt"
plot sin(x)
#    EOF

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Хорошо,

Я нашел ответ сам, поэтому я собираюсь поделиться своими выводами.

Как и в вопросе, пусть plot2.plt будет вставкой plot1.plt,Открыв plot2.plt в любом текстовом редакторе, мы увидим код за графиком.Мы должны искать эти две конкретные строки:

set size ratio 0 1,1
set origin 0,0

, поскольку plot2.plt, в моем примере, загружается после команд set size и set origin,

set multiplot

load "plot1.plt"           # plot main figure

set size 0.6, 0.5       # set size of inset
set origin 0.4, 0.5     # move bottom left corner of inset
load "plot2.plt"             # plot inset

unset multiplot

ониперезаписать ожидаемый правильный размер и соотношение.Чтобы исправить это, я закончил редактирование plot2.plt следующим образом:

set size ratio 0 0.6,0.5    #old line: set size ratio 0 1,1
set origin 0.4,0.5          #old line: set origin 0,0

Допустим, мы сохранили измененный файл как plot2_mod.plt.Теперь, чтобы получить правильную вставку, мы можем написать:

set multiplot
load "plot1.plt"           # plot main figure
load "plot2_mod.plt"       # plot inset
unset multiplot

, и результат будет:

График с нужной вставкой

Очевидно, что естьеще предстоит проделать определенную работу, но это ответит на главный вопрос: как построить вкладку, используя уже сохраненные файлы .plt.

Извините за плохой английский, я не являюсь носителем языка,Пожалуйста, не стесняйтесь исправлять грамматику / орфографию.

Спасибо всем за помощь и предложения.

0 голосов
/ 11 июня 2018

ОК, здесь общий ответ, извлеченный из Филиппа К. Джанерта "Gnuplot in Action".

# functions to be plotted
f(x,a) = x<a ? sqrt(a-x) : 0       # Magnetization
g(x,b) = 0.25*x**4 + b*x**2        # Free Energy

# does the magic:
set multiplot

# the full graph
set grid
plot [-3:2.5][-1:2] f(x,0) notitle w l lw 3

# formatting the inset graphs
unset grid
unset tics
unset xtics
unset ytics
unset key
set tmargin 0; set bmargin 0; set rmargin 0; set lmargin 0
set size 0.2                      # relative size of the insets

# draw three insets, clear background, at given origins
set origin 0.175,0.425
clear
plot [-2.5:2.5][-1.5:2] g(x,-1)
set origin 0.4625,0.125
clear
plot [-2.5:2.5][-0.5:3] g(x,0)
set origin 0.675,0.425
clear
plot [-2.5:2.5][-0.5:3] g(x,1)

# cleanup
unset multiplot

, что дает

enter image description here

Без вашего кода, остановитесь прямо здесь, но это должно помочь вам.

...