You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

解决gnuplottex箱线图X轴替换为列标题的问题

要将X轴的数字刻度替换为数据文件的列标题,核心是读取数据文件的第一行标题,再手动指定X轴刻度标签。以下是修改后的完整gnuplottex代码:

\begin{gnuplot}[terminal=tikz, terminaloptions={color size 10cm,5cm}]
    reset session
    
    datafile = 'boite2.txt'
    colMin = 1
    colMax = 3
    
    set datafile separator '\t'
    # 标记数据文件第一行为列标题
    set datafile header
    # 读取文件元信息(含标题行),不输出统计结果
    stats datafile nooutput
    # 创建数组存储列标题
    array colNames[colMax]
    # 将标题行的每个列名存入数组
    do for [col=colMin:colMax] {
        colNames[col] = word(STATS_head, col)
    }
    # 自定义X轴刻度:位置对应原数字,标签替换为列名
    set xtics (colNames[1] 1, colNames[2] 2, colNames[3] 3)
    # 绘制箱线图
    plot for [col=colMin:colMax] datafile using (col):col w boxplot notitle
\end{gnuplot}

关键步骤说明

  • set datafile header:告知gnuplot数据文件的第一行是列标题,而非数据行
  • stats datafile nooutput:触发gnuplot读取文件结构,将标题行内容存入STATS_head变量,nooutput避免输出冗余统计信息
  • 数组循环:通过word(STATS_head, col)提取标题行的第col个单词(即对应列名),存入数组备用
  • set xtics:手动绑定X轴位置与标签,把原数字1/2/3替换为对应的列标题

文档与示例获取途径

  • gnuplot内置帮助:终端启动gnuplot后,输入help boxplot、help xtics或help stats可查看对应命令的详细说明
  • gnuplot本地示例:安装gnuplot后,安装目录下的demo文件夹包含箱线图等各类绘图示例(如boxplot.dem)
  • gnuplottex文档:在LaTeX环境中执行texdoc gnuplottex命令,可查看结合LaTeX使用gnuplot的官方文档与示例

内容的提问来源于stack exchange,提问作者Konstantin Weigmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:09:54