gnuplot, break y-axis in two parts

后端 未结 1 864
自闭症患者
自闭症患者 2020-12-08 16:45

I have a histogram with some small values and some very big values. How can I break the y-axis in two parts?

EDIT:

相关标签:
1条回答
  • 2020-12-08 17:08

    My answer is based on the example and comment on this website. In essence, you are looking for a broken y-axis, which can be achieved using the multiplot option:

    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
    

    Remarks:

    • The first block of code specifies your plot size, as well as the two min/max for the y-axis range.
    • The second block of code sets your histogram style. I suggest you used filled columns (else, you might get the wrong colors where the plot is cut off by the y-range).
    • The third block starts you multiplot environment and sets up the lower plot (4th block).
    • The fifth block of code defines you upper plot.
    • To customize your plot, change the parameters in the first block (bm, lm, rm, gap, size, kk and yi)

    And this is the result:

    enter image description here

    0 讨论(0)
提交回复
热议问题