setting space between legend/pattern with the text in stacked bar-chart

感情迁移 提交于 2019-12-07 18:12:54

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!