Gnuplot:从文件 .plt 插入
Gnuplot: inset from file .plt
我有 2 个通用 Gnuplot 文件:plot1.plt
和 plot2.plt
已经保存。
我需要将它们合并到一个图中,其中 plot2.plt
是 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
以上代码产生:
What I get from the code above
不幸的是,为插图设置不同的大小或原点不会影响结果。
我正在使用 GNUPLOT 版本 5.0 补丁级别 4。
对不起我的英语不好,我不是母语人士。请随时修复 grammar/spelling.
编辑 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
好的,这是一个通用的答案,摘自 Philipp K. Janert “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
产生
没有您的代码,必须就此打住,但这应该能让您继续。
好的,
我自己找到了答案,所以我要分享我的发现。
在问题中,让 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
结果是:
Plot with the desired inset
显然还有一些工作要做,但这回答了问题的要点:如何使用已保存的 .plt 文件绘制插图。
对不起我的英语不好,我不是母语人士。请随时修复 grammar/spelling.
感谢大家的帮助和建议。
我有 2 个通用 Gnuplot 文件:plot1.plt
和 plot2.plt
已经保存。
我需要将它们合并到一个图中,其中 plot2.plt
是 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
以上代码产生:
What I get from the code above
不幸的是,为插图设置不同的大小或原点不会影响结果。 我正在使用 GNUPLOT 版本 5.0 补丁级别 4。 对不起我的英语不好,我不是母语人士。请随时修复 grammar/spelling.
编辑 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
好的,这是一个通用的答案,摘自 Philipp K. Janert “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
产生
没有您的代码,必须就此打住,但这应该能让您继续。
好的,
我自己找到了答案,所以我要分享我的发现。
在问题中,让 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
结果是:
Plot with the desired inset
显然还有一些工作要做,但这回答了问题的要点:如何使用已保存的 .plt 文件绘制插图。
对不起我的英语不好,我不是母语人士。请随时修复 grammar/spelling.
感谢大家的帮助和建议。