使gnuplot始终将具有最小值的框放在前景上

使gnuplot始终将具有最小值的框放在前景上,plot,gnuplot,histogram,Plot,Gnuplot,Histogram,我正在使用gnuplot创建一个带有填充颜色框的方框图,并且我希望使每个列的可见性基于它的值。默认情况下,gnuplot将始终将我最后绘制的数据框放在前景上,这在某些情况下不起作用 例如,假设我有以下数据,并绘制所有3列: red green blue 5 10 15 10 5 15 10 10 10 15 10 5 10 5 5 根据这些值,我希望每个框以不同的顺序放置在前景上: box 1: red->green->b

我正在使用
gnuplot
创建一个带有填充颜色框的方框图,并且我希望使每个列的可见性基于它的值。默认情况下,gnuplot将始终将我最后绘制的数据框放在前景上,这在某些情况下不起作用

例如,假设我有以下数据,并绘制所有3列:

red green blue
5    10    15
10    5    15
10   10    10
15   10     5
10    5     5
根据这些值,我希望每个框以不同的顺序放置在前景上:

box 1: red->green->blue
box 2: green->red->blue
box 3: any
box 4: blue->green->red
box 5: green/blue->red

这种行为对于确保所有数据清晰可见是必要的,同时仍将其保存在单个框中。

我建议您使用直方图将数据可视化。在这里,您可以使用
集群式
样式,其中框彼此放在下面:

set linetype 1 lc rgb 'red'
set linetype 2 lc rgb 'green'
set linetype 3 lc rgb 'blue'
set style fill solid noborder
set style data histogram
set style histogram clustered gap 1

plot for [i=1:3] 'data.dat' using i title columnheader

或者,您可以使用
rowstacked
直方图变量将框堆叠在一行中:

set linetype 1 lc rgb 'red'
set linetype 2 lc rgb 'green'
set linetype 3 lc rgb 'blue'
set style fill solid noborder
set style data histogram
set boxwidth 0.8 relative
set style histogram rowstacked

plot for [i=1:3] 'data.dat' using i title columnheader

我想集群式样式应该不错,但是您更喜欢哪个选项取决于数据的实际含义:总相关与否。像你建议的那样精确的可视化是不合适的,因为读者不知道是否所有的框都从零开始,因为它们会部分地相互隐藏