gnuplot:如何绘制具有特定宽度、高度和颜色的框

问题描述 投票:0回答:2

我想画 60 个彼此相邻的盒子(不重叠)。宽度应根据具体列,高度应根据具体列,以及蚂蚁标题的颜色。作为标题,我只想将所有框编号为 1 到 60。

请问我该怎么做?

(我知道,第三列会自动生成特定宽度,但是框是重叠的,我不会因为重新计算 x 位置而感到高兴。我也经历过使用 rgb 变量设置颜色。但是,如何一次完成所有这些事情,我做不知道。非常感谢您的建议)

colors gnuplot
2个回答
2
投票

我建议您使用 ImageMagick 来完成此操作。然而,在 gnuplot 中你可以这样做:

set object 1 rect from x1,y1 to x2,y2
set label 1 at x3,y3 "yourlabel" front center

0
投票

据我了解,您有一个数据文件,其中包含标签、宽度、高度和颜色列。 虽然绘图样式

with boxes
提供 2 列和 3 列语法:

     2 columns:  x  y
     3 columns:  x  y  x_width

但是,这样(正如您所注意到的),您将无法避免重叠。

您可以使用绘图样式

with boxxyerror
。有4列和6列两种选择:(勾选
help boxxyerror

     4 columns:  x  y  xdelta  ydelta
     6 columns:  x  y  xlow  xhigh  ylow  yhigh

据我了解,对于可变颜色(附加列),您必须使用 6 列语法,否则 gnuplot 可能会感到困惑。

避免框重叠的“技巧”就是简单地将

x0
中的 x 坐标相加。

数据:

SO8742082.dat
(具有一些随机的宽度、高度和颜色)

#    width       height      color     
 1   1.25559     90.5915     0xbc2d76
 2   1.87402     40.3925     0xa10862
 3   1.12711     60.5378     0x0247e8
 4   2.95355     105.314     0x6b8fee
 5   1.75121     103.800     0xd0e30b
 6   1.61134     15.6505     0x42e77e
 7   1.13001     100.190     0x580410
 8   1.15918     27.1352     0x963b2e
 9   2.68129     96.0740     0xf951f4
 10  1.57321     72.9696     0x4afd27
 11  1.78742     41.2944     0xea1933
 12  1.39995     61.9502     0xcc8750
 13  2.75575     96.4659     0xf328e8
 14  2.30559     64.6213     0x549178
 15  2.57415     62.2784     0xe5af89
 16  2.54712     20.2026     0x4eeeb4
 17  2.18039     105.251     0x9dbdc9
 18  1.66738     51.9178     0xe3aa7e
 19  1.11258     84.3438     0xafbb7e
 20  1.26511     75.0783     0xb8f302

脚本:(适用于 gnuplot>=4.6.0,2012 年 3 月)

通过一些繁琐的解决方法,您可能可以让它在早期版本中运行(可能是 4.4.0 或 4.4.4,无论使用什么版本的 OP)。

### plot boxes with variable width, height, color and label
reset

FILE = "SO8742082.dat"

set xrange[*:*]
set yrange[0:*]
set xtics out
set style fill solid 0.5 noborder
set key noautotitle

plot x0=0 FILE u 2:3:(x0):(x0=x0+$2):(0):3:4 w boxxy lc rgb var, \
     x0=0   '' u (x0+$2/2):(x0=x0+$2,$3):1 w labels offset 0,1 center
### end of script

结果:

© www.soinside.com 2019 - 2024. All rights reserved.