<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic GTL: Numbers Inside Horizontal Bars in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/GTL-Numbers-Inside-Horizontal-Bars/m-p/19913#M4077</link>
    <description>Hi,&lt;BR /&gt;
&lt;BR /&gt;
I'd like to produce a horizontal bar chart with percents displayed inside the bar segments.  Can I do it with GTL?  My code is below.&lt;BR /&gt;
&lt;BR /&gt;
Thanks,&lt;BR /&gt;
Randy&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
data testData; &lt;BR /&gt;
  length var $ 3;&lt;BR /&gt;
&lt;BR /&gt;
  var='A11'; val=68; seg='Positive';  output;&lt;BR /&gt;
  var='A11'; val=14; seg='Neutral';   output;&lt;BR /&gt;
  var='A11'; val=18; seg='Negative';  output;&lt;BR /&gt;
&lt;BR /&gt;
  var='A4';  val=77; seg='Positive';  output;&lt;BR /&gt;
  var='A4';  val=11; seg='Neutral';   output;&lt;BR /&gt;
  var='A4';  val=12; seg='Negative';  output;&lt;BR /&gt;
&lt;BR /&gt;
  var='A3';  val=85; seg='Positive';  output;&lt;BR /&gt;
  var='A3';  val=7;  seg='Neutral';   output;&lt;BR /&gt;
  var='A3';  val=8;  seg='Negative';  output;&lt;BR /&gt;
&lt;BR /&gt;
  var='A1';  val=85; seg='Positive';  output;&lt;BR /&gt;
  var='A1';  val=6;  seg='Neutral';   output;&lt;BR /&gt;
  var='A1';  val=9;  seg='Negative';  output;&lt;BR /&gt;
run;  &lt;BR /&gt;
&lt;BR /&gt;
ods graphics / reset; &lt;BR /&gt;
ods listing close;&lt;BR /&gt;
ods html file='test.html' path='c:\temp' style=Science;&lt;BR /&gt;
proc template; &lt;BR /&gt;
  define statgraph barchartparm; &lt;BR /&gt;
    begingraph / border=false;    &lt;BR /&gt;
      layout overlay / xaxisopts=(display=none) yaxisopts=(display=none) WALLDISPLAY=NONE; &lt;BR /&gt;
        barchartparm x=var y=val / group=seg orient=horizontal; &lt;BR /&gt;
        *entry "Test line"; &lt;BR /&gt;
      endlayout; &lt;BR /&gt;
    endgraph; &lt;BR /&gt;
  end; &lt;BR /&gt;
run; &lt;BR /&gt;
&lt;BR /&gt;
proc sgrender data=testData template=barchartparm; &lt;BR /&gt;
run;&lt;BR /&gt;
ods listing;&lt;BR /&gt;
ods html close;</description>
    <pubDate>Thu, 16 Apr 2009 16:16:59 GMT</pubDate>
    <dc:creator>deleted_user</dc:creator>
    <dc:date>2009-04-16T16:16:59Z</dc:date>
    <item>
      <title>GTL: Numbers Inside Horizontal Bars</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/GTL-Numbers-Inside-Horizontal-Bars/m-p/19913#M4077</link>
      <description>Hi,&lt;BR /&gt;
&lt;BR /&gt;
I'd like to produce a horizontal bar chart with percents displayed inside the bar segments.  Can I do it with GTL?  My code is below.&lt;BR /&gt;
&lt;BR /&gt;
Thanks,&lt;BR /&gt;
Randy&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
data testData; &lt;BR /&gt;
  length var $ 3;&lt;BR /&gt;
&lt;BR /&gt;
  var='A11'; val=68; seg='Positive';  output;&lt;BR /&gt;
  var='A11'; val=14; seg='Neutral';   output;&lt;BR /&gt;
  var='A11'; val=18; seg='Negative';  output;&lt;BR /&gt;
&lt;BR /&gt;
  var='A4';  val=77; seg='Positive';  output;&lt;BR /&gt;
  var='A4';  val=11; seg='Neutral';   output;&lt;BR /&gt;
  var='A4';  val=12; seg='Negative';  output;&lt;BR /&gt;
&lt;BR /&gt;
  var='A3';  val=85; seg='Positive';  output;&lt;BR /&gt;
  var='A3';  val=7;  seg='Neutral';   output;&lt;BR /&gt;
  var='A3';  val=8;  seg='Negative';  output;&lt;BR /&gt;
&lt;BR /&gt;
  var='A1';  val=85; seg='Positive';  output;&lt;BR /&gt;
  var='A1';  val=6;  seg='Neutral';   output;&lt;BR /&gt;
  var='A1';  val=9;  seg='Negative';  output;&lt;BR /&gt;
run;  &lt;BR /&gt;
&lt;BR /&gt;
ods graphics / reset; &lt;BR /&gt;
ods listing close;&lt;BR /&gt;
ods html file='test.html' path='c:\temp' style=Science;&lt;BR /&gt;
proc template; &lt;BR /&gt;
  define statgraph barchartparm; &lt;BR /&gt;
    begingraph / border=false;    &lt;BR /&gt;
      layout overlay / xaxisopts=(display=none) yaxisopts=(display=none) WALLDISPLAY=NONE; &lt;BR /&gt;
        barchartparm x=var y=val / group=seg orient=horizontal; &lt;BR /&gt;
        *entry "Test line"; &lt;BR /&gt;
      endlayout; &lt;BR /&gt;
    endgraph; &lt;BR /&gt;
  end; &lt;BR /&gt;
run; &lt;BR /&gt;
&lt;BR /&gt;
proc sgrender data=testData template=barchartparm; &lt;BR /&gt;
run;&lt;BR /&gt;
ods listing;&lt;BR /&gt;
ods html close;</description>
      <pubDate>Thu, 16 Apr 2009 16:16:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/GTL-Numbers-Inside-Horizontal-Bars/m-p/19913#M4077</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-04-16T16:16:59Z</dc:date>
    </item>
    <item>
      <title>Re: GTL: Numbers Inside Horizontal Bars</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/GTL-Numbers-Inside-Horizontal-Bars/m-p/19914#M4078</link>
      <description>Randy,&lt;BR /&gt;
I asked around and found some really great information based on your post.  I'll try to work it into something more complete later.  Here's what I found out.&lt;BR /&gt;
&lt;BR /&gt;
GTL grouped (Stacked) bar chart does not display segment labels.  However, you can achieve this by overlaying a scatter plot to display labels.   You could also add a legend to see the color to value mapping.&lt;BR /&gt;
&lt;BR /&gt;
Try to following code to accomplish this.&lt;BR /&gt;
&lt;BR /&gt;
[pre]&lt;BR /&gt;
data testData (drop=prev); &lt;BR /&gt;
length var $ 3;&lt;BR /&gt;
retain prev 0;&lt;BR /&gt;
var='A11'; val=68;  seg='Positive'; seg2='+ive'; labelval= prev+val/2; prev=prev+val; output; &lt;BR /&gt;
var='A11'; val=14;  seg='Neutral'; seg2='0'; labelval= prev+val/2; prev=prev+val; output;&lt;BR /&gt;
var='A11'; val=18; seg='Negative'; seg2='-ive'; labelval= prev+val/2; prev=0; output;&lt;BR /&gt;
&lt;BR /&gt;
var='A4'; val=77; seg='Positive'; seg2='+ive'; labelval= prev+val/2; prev=prev+val; output;&lt;BR /&gt;
var='A4'; val=11;  seg='Neutral'; seg2='0'; labelval= prev+val/2; prev=prev+val; output;&lt;BR /&gt;
var='A4'; val=12; seg='Negative'; seg2='-ive'; labelval= prev+val/2; prev=0; output;&lt;BR /&gt;
&lt;BR /&gt;
var='A3'; val=85; seg='Positive'; seg2='+ive'; labelval= prev+val/2; prev=prev+val; output;&lt;BR /&gt;
var='A3'; val=7;  seg='Neutral'; seg2='0'; labelval= prev+val/2; prev=prev+val; output;&lt;BR /&gt;
var='A3'; val=8; seg='Negative'; seg2='-ive'; labelval= prev+val/2; prev=0; output;&lt;BR /&gt;
&lt;BR /&gt;
var='A1'; val=85;  seg='Positive'; seg2='+ive'; labelval= prev+val/2; prev=prev+val; output;&lt;BR /&gt;
var='A1'; val=6;  seg='Neutral'; seg2='0'; labelval= prev+val/2; prev=prev+val; output;&lt;BR /&gt;
var='A1'; val=9;  seg='Negative'; seg2='-ive'; labelval= prev+val/2; prev=0; output;&lt;BR /&gt;
run; &lt;BR /&gt;
/*proc print; run;*/&lt;BR /&gt;
&lt;BR /&gt;
ods graphics / reset; &lt;BR /&gt;
ods listing close;&lt;BR /&gt;
ods html file='test.html' style=Science;&lt;BR /&gt;
proc template; &lt;BR /&gt;
define statgraph barchartparm1; &lt;BR /&gt;
begingraph / border=false;&lt;BR /&gt;
EntryTitle 'Use Scatter Plot for segment labels - Some labels collide'; &lt;BR /&gt;
layout overlay / xaxisopts=(display=none offsetmin=0 offsetmax=0) yaxisopts=(display=none) WALLDISPLAY=NONE; &lt;BR /&gt;
  barchartparm x=var y=val / group=seg orient=horizontal;&lt;BR /&gt;
  scatterplot x=labelval y=var /  markercharacter=seg markercharacterttrs=(color=white weight=bold); &lt;BR /&gt;
*entry "Test line"; &lt;BR /&gt;
endlayout; &lt;BR /&gt;
endgraph; &lt;BR /&gt;
end; &lt;BR /&gt;
run; &lt;BR /&gt;
&lt;BR /&gt;
proc sgrender data=testData template=barchartparm1; &lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
proc template; &lt;BR /&gt;
define statgraph barchartparm2; &lt;BR /&gt;
begingraph / border=false;&lt;BR /&gt;
EntryTitle 'Use DiscreteLegend for segment identification';  &lt;BR /&gt;
layout overlay / xaxisopts=(display=none) yaxisopts=(display=none) WALLDISPLAY=NONE; &lt;BR /&gt;
  barchartparm x=var y=val / group=seg orient=horizontal name='bar';&lt;BR /&gt;
  discretelegend 'bar'; &lt;BR /&gt;
*entry "Test line"; &lt;BR /&gt;
endlayout; &lt;BR /&gt;
endgraph; &lt;BR /&gt;
end; &lt;BR /&gt;
run; &lt;BR /&gt;
&lt;BR /&gt;
proc sgrender data=testData template=barchartparm2; &lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
proc template; &lt;BR /&gt;
define statgraph barchartparm3; &lt;BR /&gt;
begingraph / border=false;&lt;BR /&gt;
EntryTitle 'Use shorter segment labels'; &lt;BR /&gt;
layout overlay / xaxisopts=(display=none offsetmin=0 offsetmax=0) yaxisopts=(display=none) WALLDISPLAY=NONE; &lt;BR /&gt;
  barchartparm x=var y=val / group=seg2 orient=horizontal;&lt;BR /&gt;
  scatterplot x=labelval y=var /  markercharacter=seg2 markercharacterattrs=(color=white size=9pt weight=bold); &lt;BR /&gt;
*entry "Test line"; &lt;BR /&gt;
endlayout; &lt;BR /&gt;
endgraph; &lt;BR /&gt;
end; &lt;BR /&gt;
run; &lt;BR /&gt;
&lt;BR /&gt;
proc sgrender data=testData template=barchartparm3; &lt;BR /&gt;
run;&lt;BR /&gt;
proc template; &lt;BR /&gt;
define statgraph barchartparm4; &lt;BR /&gt;
begingraph / border=false;&lt;BR /&gt;
EntryTitle 'Use Vertical Bar Chart'; &lt;BR /&gt;
layout overlay / xaxisopts=(display=none) yaxisopts=(display=none) WALLDISPLAY=NONE; &lt;BR /&gt;
   barchartparm x=var y=val / group=seg ;&lt;BR /&gt;
   scatterplot x=var y=labelval /  markercharacter=seg markercharacterattrs=(color=white size=9pt weight=bold); &lt;BR /&gt;
*entry "Test line"; &lt;BR /&gt;
endlayout; &lt;BR /&gt;
endgraph; &lt;BR /&gt;
end; &lt;BR /&gt;
run; &lt;BR /&gt;
&lt;BR /&gt;
proc sgrender data=testData template=barchartparm4; &lt;BR /&gt;
run;&lt;BR /&gt;
ods listing;&lt;BR /&gt;
ods html close;&lt;BR /&gt;
[/pre]</description>
      <pubDate>Tue, 21 Apr 2009 12:37:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/GTL-Numbers-Inside-Horizontal-Bars/m-p/19914#M4078</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-04-21T12:37:17Z</dc:date>
    </item>
  </channel>
</rss>

