问题
I have gnuplot data file:
CS 31.73 18.32 20.78 22.88 1.97 1.29 0.90 2.01
FL 43.27 29.45 15.64 6.55 1.64 1.27 2.18 0.00
HB 32.44 20.43 14.89 14.53 5.42 10.92 0.80 0.31
HD 28.53 7.27 29.53 20.33 9.18 0.93 2.04 1.44
MR 22.56 36.19 10.66 15.51 9.45 4.32 0.80 0.31
ZK 27.15 10.81 27.40 16.10 8.05 7.24 1.06 1.71
All 30.00 21.35 18.05 16.82 6.14 5.39 1.11 0.85
And my gnuplot Script:
set term pos eps font 20
set style data histogram
set style histogram rowstacked
set key invert reverse above
set boxwidth 0.8
set format y "%.0f%%"
set border 3
set yrange [0:100]
set size 0.9 , 1.8
set label 1 "1092" at -0.3,103 font "Times-Roman, 17"
set label 2 "500" at 0.7,103 font "Times-Roman, 17"
set label 3 "1000" at 1.8,103 font "Times-Roman, 17"
set label 4 "500" at 2.8,103 font "Times-Roman, 17"
set label 5 "1000" at 3.8,103 font "Times-Roman, 17"
set label 6 "500" at 4.8,103 font "Times-Roman, 17"
set label 7 "500" at 5.8,103 font "Times-Roman, 17"
set output 'aspect.eps'
plot 'a3b-aspect' \
using($2):xtic(1) t "pattern 1" lc rgb "#006600" lt -1 fs pattern 1, \
'' using($3) t "pattern 2" lc rgb "#006600" lt -1 fs pattern 2, \
'' using($4) t "pattern 3" lc rgb "#330000" lt -1 fs pattern 3, \
'' using($5) t "pattern 4" lc rgb "#000099" lt -1 fs pattern 4, \
'' using($6) t "pattern 5" lc rgb "#000099" lt -1 fs pattern 5, \
'' using($7) t "pattern 6" lc rgb "#000099" lt -1 fs pattern 6, \
'' using($8) t "pattern 7" lc rgb "#000099" lt -1 fs pattern 7, \
'' using($5) t "pattern 3" lc rgb "#660000" lt -1 fs pattern 3, \
'' using($6) t "pattern 3" lc rgb "#990000" lt -1 fs pattern 3
Output:
I have to delete some space between legend(patterns above) and text. Could we custom rectangle size on that? and also invert my legend order... the bottom patterns in bar chart should be the first legend. Thanks
回答1:
The default justification of the legend key is Right which isn't appropriate when using reverse like you do: Set the Left option.
Optionally you can also increase or decrease the space reserved for the text with the width option.
To have to lower row appearing first, don't use the invert option.
So with the key settings
set key reverse above Left width 1
you get the result
来源:https://stackoverflow.com/questions/24399102/setting-space-between-legend-pattern-with-the-text-in-stacked-bar-chart