【问题标题】:gnuplot, break y-axis in two partsgnuplot,将y轴分成两部分
【发布时间】:2013-07-08 00:29:03
【问题描述】:

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

编辑:

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
  • ytics 仅指定在轴旁边绘制哪些标签。它不引入省略号。

标签: gnuplot histogram


【解决方案1】:

我的回答基于this website 上的示例和评论。本质上,您正在寻找一个断开的 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 范围截断时得到错误的颜色)。
  • 第三个区块启动multiplot 环境并设置较低的情节(第4个区块)。
  • 第五个代码块定义了上图。
  • 要自定义您的绘图,请更改第一个块中的参数(bmlmrmgapsizekkyi

结果如下:

【讨论】:

  • 乍一看,它看起来很棒。谢谢!不过,现在无法测试它。如果以后有效果我会报告的。
  • 这不是很直观,而是很巧妙!效果很好!谢谢@Schorsch!
猜你喜欢
  • 1970-01-01
  • 2017-07-30
  • 2013-08-16
  • 1970-01-01
  • 2017-10-11
  • 1970-01-01
  • 2011-11-19
  • 2016-07-31
  • 1970-01-01
相关资源
最近更新 更多