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

Gnuplot中为断轴直方图设置统一Y轴刻度间隔

解决gnuplot断轴直方图Y轴刻度间隔统一问题

要让上下两个子图的Y轴刻度间隔保持一致(均为1),核心是手动指定Y轴刻度,而非依赖gnuplot的自动计算。以下是具体修改方案:

问题原因

gnuplot会根据轴的范围自动选择刻度间隔:上方子图Y轴范围是0到-8(跨度8),自动选了间隔1;下方子图Y轴范围是-16到-20(跨度4),默认选了更小的0.5间隔。要强制统一间隔,需手动定义刻度规则。

修改步骤

  1. 手动指定Y轴刻度:在绘制每个子图前,用set ytics <起始值>,<间隔>,<结束值>明确刻度序列。
  2. 优化子图高度比例:由于上下轴范围跨度为8:4(2:1),调整子图高度比例,让刻度的垂直视觉间距一致,提升图表美观度。

修改后的完整代码

set encoding iso_8859_1

set terminal postscript eps enhanced size 5.7, 4.3 color solid linewidth 2 font 'Times-Roman, 22'
set output 'test4.eps'

red = "#FF0000"; green = "#00FF00"; blue = "#0000FF"; skyblue = "#87CEEB";

reset
unset key
bm = 0.05
lm = 0.12
rm = 0.95
gap = 0.03
size = 0.68
# 调整子图高度比例:上方跨度8,下方跨度4,比例设为2:1
kk = 1/3  # 下方子图占总高度的1/3,上方占2/3
y1 = 0.0; y2 = -8.0; y3 = -16; y4 = -20
ytick_step = -1  # 统一刻度间隔为-1

set style histogram cluster gap 1
set style data histogram
set style fill solid 1.0 border -1

set multiplot
# 上方子图设置
set border 2+4+8
unset xtics
set x2tics nomirror rotate
set ytics nomirror
set xlabel 'Metals' font 'Times-Roman, 22' offset 0, 16.5;
set ylabel 'd-band' font 'Times-Roman, 22' offset -1.5, -6; 
set lmargin at screen lm
set rmargin at screen rm
set bmargin at screen bm + size * kk + gap
set tmargin at screen bm + size + gap

set yrange [y2:y1]
set ytics y2, ytick_step, y1  # 手动指定上方刻度:-8,-7,...0
plot "d-band.dat" using 2:x2tic(1) title "Neutral"  linecolor rgb '#616161',   \
     "d-band.dat" using 3 title "Positive" linecolor rgb '#EF6C00',   \
     "d-band.dat" using 4 title "Negative" linecolor rgb '#039BE5'

# 下方子图设置
unset x2tics
unset xtics
unset xlabel
unset ylabel
set key at 11, -18.3
set border 2+1+8
set bmargin at screen bm
set tmargin at screen bm + size * kk

set yrange [y4:y3]
set ytics y4, ytick_step, y3  # 手动指定下方刻度:-20,-19,...-16
plot "d-band.dat" using 2:x2tic(1) title "Neutral" linecolor rgb '#616161',   \
     "d-band.dat" using 3 title "Positive" linecolor rgb '#EF6C00',   \
     "d-band.dat" using 4 title "Negative" linecolor rgb '#039BE5'

unset multiplot

关键修改点

  • 新增ytick_step = -1统一刻度间隔,用set ytics分别为上下子图指定完整刻度序列
  • 调整kk = 1/3,让上下子图高度比例匹配轴范围跨度(2:1),保证刻度的垂直视觉间距一致
  • 移除冗余注释与未生效设置,简化代码逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:06:17