使用Gnuplot在柱状图条形顶部添加数值标签失败求助
问题原因&修正方案
你的代码主要有三处错误导致标签不显示:
- 绘图参数设置顺序错误:
yrange、终端、输出路径这类配置必须放在plot命令之前执行,你之前先绘图再改范围,标签的偏移位置很容易超出初始绘图区域被裁切 - 标签打印逻辑不全:你只写了打印第二列数据的标签,Case2、Case3对应的数值完全没有配置打印逻辑,而且簇状直方图的每个子条x坐标有固定偏移,不能直接用第一列作为x坐标
- 绘图风格混用:已经配置了直方图风格,不需要再用
with boxes绘制
修正后的可用代码
clear reset unset key $Data <<EOD Case Case1 Case2 Case3 Value1 33.22 71.62 76.11 Value2 29.82 34.08 28.41 EOD # 提前配置所有绘图参数 set style data histogram set style fill solid border set style histogram clustered gap 1 set yrange [0:100] set term png set output "histogram_demo.png" # 先画所有直方图条,再循环打印每一列的标签,偏移量匹配簇状直方图的默认间距 plot for [COL=2:4] $Data using COL with histogram fill pattern 1, \ for [COL=2:4] '' using (column(0) + (COL-3)*0.3):(column(COL)+2):(sprintf("%.2f",column(COL))) with labels notitle
你可以调整标签偏移量(column(COL)+2)里的数值控制标签和条形顶部的距离,调整(COL-3)*0.3里的0.3匹配你设置的簇状直方图间距。
内容的提问来源于stack exchange,提问作者user157522
相关产品推荐
相关产品推荐

