在柱状图(集群),如何把竖排文字来代替一些的酒吧,这取决于条件?(In a Histogram ch

2019-09-29 17:44发布

在gnuplot的,我使用的是柱状图(集群),但不是所有的数据点都具有有效的值。 在那些地方,我想用一个垂直的文字说:“不能成为”来代替吧。 我该怎么做?

我当前的代码:

set style data histogram
set style histogram cluster gap 2
set boxwidth 0.9
set xtic rotate by -45 scale 0 

set output "test.pdf"
plot 'data.txt' using 2:xtic(1) fs pattern 1 ti col, '' u 3 fs pattern 2 ti col

数据文件包含:

输入“磁性”,“电”
“高负荷” 12000 12721.033920
“配有负荷” 15620.011886 15783.706215
“低负荷” 15636.000000 16254.000000

Answer 1:

这是做这样的超级哈克的方式。 我修改了文件,添加一个“南”:

"high load" NaN 12721.033920
"med load" 15620.011886 NaN
"low load" 15636.000000 16254.000000

现在,我的一切阴谋with boxes ,每个盒子的位置相对于其中的记录出现在数据文件(列0)的顺序计算。 这是“手动”在这里定义的,但你应该能够编写得到一个函数xrange从获得的基于记录的数量和每个记录的列数和箱分开stats ,例如。 另外, boxwidth将取决于这些值。

set xtic rotate by -45 scale 0
ymax = 20000
set yrange [0:ymax]

nrecords = 3
ncolumns = 2

set xrange [0:nrecords+1]

# Calculate boxwidth from available space per column
gap = 1./ncolumns/5.
width = 1./ncolumns/2.-gap/2.
set boxwidth width

plot "data.txt" u ($0+1.-width/2.-gap/2.):($2) w boxes t "data1", \
     "" u ($0+1.+width/2.+gap/2.):($3) w boxes t "data2", \
     "" u ($0+1.):(ymax/6.):(stringcolumn(2) eq "NaN" ? \
     "Cannot serve" : ""):xtic(1) w labels rotate by 90 offset \
     first -width/2.-gap/2.,0 not, \
     "" u ($0+1.):(ymax/6.):(stringcolumn(3) eq "NaN" ? "Cannot serve" \
     : ""):xtic(1) w labels rotate by 90 offset first width/2.+gap/2.,0 not



文章来源: In a Histogram chart(clustered), How to put vertical text in place of some of the bars, depending on condition?