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

gnuplot直方图:如何设置柱条上方旋转字符串的偏移量

解决方案

你之前的写法失效有两个核心原因:

  • gnuplot在using语句的数值计算上下文里,$N默认会将对应列解析为数值,直接取$3会把字符串标签转为无效数值,无法计算正确长度
  • 90度旋转后的标签,其长度对应的是绘图坐标系下的y方向占用尺寸,中心对齐的标签需要向上偏移半个字符串长度的字符单位,才能完全露出在柱顶外侧

正确实现代码

测试数据test.dat格式:

01/06 4 label1
01/07 5 label2
01/08 3 label3

绘图语句:

set style data histogram
set style fill solid border -1
# 基础样式可根据自己需求调整
plot 'test.dat' using 2:xtic(1) title "" , \
     '' using 0:2:3 with labels rotate by 90 offset char 0, strlen(stringcolumn(3))/2. + 0.2  title ""

参数说明

  • stringcolumn(3):明确获取第三列的字符串内容,避免被解析为数值
  • strlen(stringcolumn(3))/2.:计算标签长度的一半作为基础偏移量,刚好让标签底部对齐柱顶
  • 额外加的+0.2是预留的小间隙,避免标签贴在柱顶太近,可根据视觉效果自行调整
  • 如果你的旋转方向是rotate by -90(顺时针旋转,文字从上往下读),则把偏移量改成负的对应值即可

如果使用非等宽字体,可将/2.的系数调整为0.55~0.6,适配字符宽度差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 23:51:00