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

Gnuplot技术问题:柱状图上方添加数值失败及报错解决

解决Gnuplot柱状图添加数值标签失败的问题

问题原因

你修改后的plot语句中,第一次用<cat>读取标准输入数据绘制柱子,第二次用''尝试重复读取同一个数据源,但管道数据已经被第一次读取耗尽,导致第二次没有有效数据点,触发警告且无法显示数值标签。

解决方案

方案1:将数据保存到文件(最可靠)

把输入数据保存到一个文件(比如data.txt),然后修改plot语句读取文件而非管道:

set term pngcairo size 800,600
set termoption noenhanced
set title "$file_name" font "Century,22" textcolor "#b8860b"
set tics font "Helvetica,10"
set ylabel "Fraction, %"
set xlabel "H-bond donor/aceptor, residue"
set yrange [0:1]
set ytics 0.1
set grid y
set key off
set boxwidth 0.9
set style fill solid 0.5
# 读取文件数据绘制柱子和标签
plot 'data.txt' using 0:2:xtic(1) with boxes, '' u 0:2:2 w labels offset 0,0.5

使用时先把数据写入data.txt,比如:

# 假设数据来自stdin,先保存到文件
cat your_data_source > data.txt
# 再运行gnuplot脚本
gnuplot your_script.gp

方案2:使用Gnuplot内置数据块(适合固定数据)

如果数据是固定的,可以直接在脚本里定义数据块,无需外部文件:

set term pngcairo size 800,600
set termoption noenhanced
set title "$file_name" font "Century,22" textcolor "#b8860b"
set tics font "Helvetica,10"
set ylabel "Fraction, %"
set xlabel "H-bond donor/aceptor, residue"
set yrange [0:1]
set ytics 0.1
set grid y
set key off
set boxwidth 0.9
set style fill solid 0.5

# 定义内置数据块
$DATA << EOD
ARG 0.45
LYS 0.67
ASP 0.23
GLU 0.81
EOD

# 绘制柱子和数值标签
plot $DATA using 0:2:xtic(1) with boxes, '' u 0:2:2 w labels offset 0,0.5

额外注意事项

  • 确保数据格式正确:每行是残基名称 + 数值(用空格/制表符分隔),第二列必须是数值类型。
  • 调整标签偏移:offset 0,0.5可以根据柱子高度微调,避免数值与柱子重叠或距离过远。
  • 若数据是整数百分比(比如45而非0.45),需将yrange改为[0:100],保持与ylabel匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:55:48