我无法找到解决我面临的以下问题的方法。关于多轴的所有SO问题都谈论线图,但我正在寻找直方图。
条形的y-range
是不同的,因此由于比例尺,所以看不到一组条形。这是数据:
Metric A B
M1 0.613416301 0.543734744
M2 0.000195961 0.000100190
这是MWE:
reset
set term postscript eps size 5.5,4.5 enhanced color font 'Arial-Bold' 25
set out 'histplot.eps'
set key right
set style histogram cluster gap 2
set style data histograms
set style fill pattern 1.00 border
set y2range [0.0001:0.0002]
plot 'histplot.dat' using 2 ti col, '' u 3:xticlabels(1) ti col
quit
这是样本输出(未看到M2上的一组条形):
我更喜欢的是有一个第二个y轴(在图的右侧),其范围适合我的数据文件的第二行。这可能吗?非常感谢任何帮助。
答案 0 :(得分:5)
通常,您可以使用newhistogram
将severyl直方图绘制在彼此之下。但是,当使用模式作为fillstyle时,似乎这是错误的:
reset
set style histogram cluster gap 1
set style data histograms
set style fill pattern 1.00 border
set yrange [0:*]
set ytics nomirror
set y2range [0:*]
set y2tics
set key right autotitle columnheader
plot 'histplot.dat' u 2 every ::::0, '' u 3:xtic(1) every ::::0,\
newhistogram lt 1 at 1,\
'histplot.dat' u 2 every ::1::1 axes x1y2, '' u 3:xtic(1) every ::1::1 axes x1y2
或者,您可以使用multiplot
并将两个直方图直接绘制在彼此之下:
reset
set style histogram cluster gap 1
set style data histograms
set style fill pattern 1.00 border
set yrange [0:*]
set ytics nomirror
set multiplot layout 1,2
set rmargin at screen 0.5
set lmargin 9
unset key
plot 'histplot.dat' using 2 every ::::0 ti col, '' u 3:xticlabels(1) every ::::0 ti col
set rmargin 9
set lmargin at screen 0.5
unset ytics
set y2range [0:*]
set y2tics
set key right
plot '' using 2 every ::1::1 axes x1y2 ti col, '' u 3:xtic(1) every ::1::1 axes x1y2 ti col
unset multiplot
如果您不想要分离黑线,可以使用set border 7
作为第一个,set border 13
作为第二个图。