gnuplot,将y轴分成两部分

17

我有一个包含一些小值和一些非常大值的直方图。我该如何将 y 轴分成两部分?

编辑:

enter image description here

gnuplot 示例:

set style histogram columnstacked 
set style data histograms
set key autotitle columnheader
plot for [i=2:6] 'test.dat' using i

test.dat:

action device1 device2 device3
load    200 203 190 2 4
process 3 9 6 7 3
save    4 2 7 4 3

我相信您可以手动指定 yticks - mishik
ytics仅指定在轴旁绘制哪些标签。它不会引入椭圆。 - Jack Miller
1个回答

18

我的答案基于这个网站上的示例和评论。本质上,您正在寻找一个破碎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

备注:

  • 第一个代码块指定了您的绘图大小,以及y轴范围的两个最小/最大值。
  • 第二个代码块设置了您的直方图样式。建议使用填充列(否则,当绘图被y轴范围截断时,可能会得到错误的颜色)。
  • 第三个代码块开始了您的多图环境,并设置下部图(第4个块)。
  • 第五个代码块定义了您的上部图。
  • 要自定义您的绘图,请更改第一个块中的参数(bmlmrmgapsizekkyi)。

这是结果:

enter image description here


乍一看看起来很不错。谢谢!不过现在无法测试,稍后如果有效我会报告的。 - Jack Miller
这并不是非常直观,但是非常巧妙!运行得很好!谢谢@Schorsch! - Jack Miller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接