gnuplot,分为两部分的y轴

Jac*_*ler 14 gnuplot histogram

我有一个直方图,其中包含一些小值和一些非常大的值.如何将y轴分为两部分?

编辑:

在此输入图像描述

gnuplot样本:

set style histogram columnstacked 
set style data histograms
set key autotitle columnheader
plot for [i=2:6] 'test.dat' using i
Run Code Online (Sandbox Code Playgroud)

TEST.DAT:

action device1 device2 device3
load    200 203 190 2 4
process 3 9 6 7 3
save    4 2 7 4 3
Run Code Online (Sandbox Code Playgroud)

Sch*_*sch 14

我的回答是基于本网站上的示例和评论.从本质上讲,您正在寻找一个破损的y轴,可以使用以下multiplot选项实现:

reset
unset key
bm = 0.15
lm = 0.12
rm = 0.95
gap = 0.03
size = 0.75
kk = 0.5 # relative height of bottom plot
y1 = 0.0; y2 = 15.0; y3 = 180.0; y4 = 220.0

set style histogram columnstacked 
set style data histograms
set key autotitle columnheader
set style fill solid 1.0 border -1

set multiplot
set border 1+2+8
set xtics nomirror
set ytics nomirror
set lmargin at screen lm
set rmargin at screen rm
set bmargin at screen bm
set tmargin at screen bm + size * kk

set yrange [y1:y2]
plot for [i=2:6] 'test.dat' using i

unset xtics
unset xlabel
set border 2+4+8
set bmargin at screen bm + size * kk + gap
set tmargin at screen bm + size + gap
set yrange [y3:y4]

plot for [i=2:6] 'test.dat' using i

unset multiplot
Run Code Online (Sandbox Code Playgroud)

备注:

  • 第一个代码块指定了绘图大小,以及y轴范围的两个最小值/最大值.
  • 第二个代码块设置直方图样式.我建议你使用填充柱(否则,你可能得到错误的颜色,其中绘图被y范围切断).
  • 第三个块启动multiplot环境并设置下图(第4个块).
  • 第五块代码定义了上图.
  • 要自定义您的情节,改变在第一块参数(bm,lm,rm,gap,size,kkyi)

这就是结果:

在此输入图像描述