如何设置每个箱线图下方的列标题?

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

我有一小段代码,允许在一个文件中绘制多列数据以绘制箱线图。

    \begin{gnuplot}[terminal=tikz, terminaloptions={color size 10cm,5cm}]
        reset session
        
        datafile = 'boite2.txt'
        colMin = 1
        colMax = 3
        
        set datafile separator '\t'
        plot for [col=colMin:colMax] datafile using (col):col w boxplot notitle
\end{gnuplot}

现在,我希望每列的列标题(...-Medium)显示在 x 轴上每个框的下方。但我找不到任何可行的解决方案。 我用过这个数据

TB-Medium   LB-Medium   XX-Medium
42.9    42.9    42.9
38.1    38.1    38.1
33.3    33.3    33.3
37.1    37.1    37.1
34.8    34.8    34.8
36.6    36.6    36.6
37.4    37.4    37.4
35.1    35.1    35.1
39.8    39.8    39.8
45.8    45.8    45.8
57.8    57.8    57.8
42.7    42.7    42.7

我得到的是每个箱线图编号从 1 到 ...

我真的很感激一些帮助。也许您可以建议在哪里可以找到特定问题的示例或文档。

我在 LaTeX 中使用 gnuplottex 和 gnuplot 5.4。

label gnuplot boxplot
1个回答
0
投票

可能有几种方法可以做到这一点。下面是一个方法,该方法加载标题数组作为绘图命令

with boxplots
组件的副作用,然后添加第二个组件
with labels
来显示它们。它的缺点是需要已知标签的 y 坐标。您可以在绘图之前通过单独的
stats
命令确定这一点。

datafile = 'boite2.txt'
colMin = 1
colMax = 3

# left-hand y border only; no x borders
set border 2
unset xtics
set ytics rangelimited nomirror
unset key 

# array of titles generated from column headers
array Title[colMax]
title_y = 30

# serial evaluation used to set array entry and return index 
maketitle(i) = (Title[col]=columnhead(i), i) 

set datafile separator '\t'
plot for [col=colMin:colMax] datafile using (maketitle(col)):col w boxplot, \
     Title using 1:(title_y):(Title[$1]) with labels

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