gpt4 book ai didi

gnuplot - 将键放在 gnuplot 中的多图下方

转载 作者:行者123 更新时间:2023-12-02 10:51:56 25 4
gpt4 key购买 nike

正如标题所示,我想将图例放在多图下方。我只为其中一张图添加图例,因为所有图的线条样式都相同。我遇到的问题是,如果我通过 set key below 添加键,绘图本身就会调整大小以适合 Canvas 内的(大)键。我宁愿保持地 block 的大小。我尝试使用 set key inside 将键添加为多重图中的附加图,但如果键太大,则该键可能会与图重叠。我正在使用 epslatex 终端。

最佳答案

这里有一种方法可以使用一些函数来帮助调整图中边距的位置:

#!/usr/bin/env gnuplot

### n: change this parameter to equal the number of data sets to be plotted
n = 3
# t: top margin in pixels
t = 75.0
# b: key height in pixels (bottom margin)
b = 300.0
# h: height of output in pixels
h = 150.0*n + t + b

### define functions to help set top/bottom margins
top(i,n,h,t,b) = 1.0 - (t+(h-t-b)*(i-1)/n)/h
bot(i,n,h,t,b) = 1.0 - (t+(h-t-b)*i/n)/h

### first set up some basic plot parameters
set term pngcairo enhanced size 800,h font 'FreeMono-Bold,14'
set output 'bigkey.png'

set title 'Big Key Plot'
set ylabel 'Y Axis'

set multiplot layout (n+1),1
### First plot
# change only plot command here
currentplot = 1
set tmargin at screen top(currentplot,n,h,t,b)
set bmargin at screen bot(currentplot,n,h,t,b)
unset key
unset xtics
plot sin(1*x) title 'Line 1', \
sin(2*x) title 'Line 2', \
sin(3*x) title 'Line 3', \
sin(4*x) title 'Line 4', \
sin(5*x) title 'Line 5', \
sin(6*x) title 'Line 6', \
sin(7*x) title 'Line 7'
### Middle plot
# copy and paste this code to make more middle plots
currentplot = currentplot + 1
set tmargin at screen top(currentplot,n,h,t,b)
set bmargin at screen bot(currentplot,n,h,t,b)
unset title
replot
### Last plot
# change only plot command here
currentplot = currentplot + 1
set tmargin at screen top(currentplot,n,h,t,b)
set bmargin at screen bot(currentplot,n,h,t,b)
set xlabel 'X Axis'
set xtics
replot
### Last (key) plot
set tmargin at screen bot(n,n,h,t,b)
set bmargin at screen 0
set key center center
set border 0
unset tics
unset xlabel
unset ylabel
set yrange [0:1]
plot 2 t 'Line 1', \
2 t 'Line 2', \
2 t 'Line 3', \
2 t 'Line 4', \
2 t 'Line 5', \
2 t 'Line 6', \
2 t 'Line 7'

unset multiplot

结果如下: enter image description here

您必须手动调整的是绘图的数量和底部边距的大小,这是绘制关键点的地方。评论通常会说明您必须更改哪些内容。

我将 key 单独放在一个图中,这样很容易保持其他图的大小完全相同。当 y 范围为 0 到 1 时绘制数字 2 可防止线条显示在关键图中。

这主要是基于我的回答here ,这就是为什么我的情节都感人至深。如果您想要图之间有间隙,您可以使用附加边距参数调整 top() 和 bot() 函数。

关于gnuplot - 将键放在 gnuplot 中的多图下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14712251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com