BookmarkSubscribeRSS Feed
Anita_n
Pyrite | Level 9

Hello ,

Is there any way to roundup the percentage values in a pie chart. I don't want any decimal points to be displayed. Also I want the title bold and will like to display all slices even those below 0%. I dont want them to be labelled other.

I used other =0 but still have not the appropriate results. I will appreciate any help. Thanks

8 REPLIES 8
RW9
Diamond | Level 26 RW9
Diamond | Level 26

You should be able to apply a format directly to it, for example:

http://support.sas.com/kb/24/877.html

Anita_n
Pyrite | Level 9

proc format is not changing the decimal pointpie.jpg  a similar chart of what I have. I do not want any decimals

goptions  border htitle=12pt htext=10pt;


pattern1 color=red;
pattern2 color=green;
pattern3 color=orange;
pattern4 color=purple;


proc format;
   percent pctfmt (round) 0-high='000%';
run;

/* Define a legend */

legend1 label=("my pie")

position=(bottom )

offset=(4,)

across=1

value=(color=black)

shape=bar(4,1.5);



proc gchart data=pie;

title "my pie chart";

pie cars /sumvar= percent

clockwise value=none

legend=legend1

percent=inside

radius=25

noheading;

 format percent pctfmt.;   


run;

 please help I want only intergers without any decimal places

GraphGuy
Meteorite | Level 14

I don't think your user-defined-format is running correctly.

 

proc format;
   percent pctfmt (round) 0-high='000%';
run;

 

When I try to run it, I get the following error:

 

 

237 proc format;
238 percent pctfmt (round) 0-high='000%';
-------
180
ERROR 180-322: Statement is not valid or it is used out of proper order.

NOTE: The previous statement has been deleted.
239 run;

GraphGuy
Meteorite | Level 14

If you were letting Gchart calculate the percent values, I don't think you can control the format (number of decimal places).

But since it appears you're pre-calculating the values of the percent variable, you should be able to control the number of decimal places with a format statement. Rather than writing your own user-defined-format, I would recommend just using the sas-supplied percent format.

 

Here's some code that shows letting Gchart calculate the percent (where you can't control the format), and then pre-calculating the percent value (where you can control it with SAS' percent format):


title "Using automatically-calculated percent";
title2 "(can't control format)";
proc gchart data=shoes_summarized;
pie region / type=sum sumvar=sales percent=outside value=none noheading other=0;
run;

 

pie1.png

 

proc sql noprint;
create table shoes_summarized as
select unique region, sum(sales) as sales
from sashelp.shoes
group by region;
create table shoes_summarized as
select unique region, sales, sum(sales) as total_sales
from shoes_summarized;
quit; run;
data shoes_summarized; set shoes_summarized;
percent=sales/total_sales;
run;


title "Using manually pre-calculated percent";
title2 "(can control format)";
proc gchart data=shoes_summarized;
format percent percent7.0;
pie region / type=sum sumvar=percent value=outside slice=none noheading other=0;
run;

 

 

pie2.png

 

Anita_n
Pyrite | Level 9

Okay thanks a lot, I will try your suggetions and leave a feedback.

I probably can't control this because gchart is calculating the percent for me.

Thanks for the idea.

Anita_n
Pyrite | Level 9

Thanks a lot  RobertAllison_S, your suggested method did work. It looks very nice

Kimi2
Calcite | Level 5

Dear Robert,

This is a very helpful programme.

Is it possible to do the same with "proc template; define statgraph pie" ?

Many thanks,

Kim

DanH_sas
SAS Super FREQ

The second approach from @GraphGuy should also work for PIECHART in ODS Graphics. Just put your FORMAT statement with the PROC SGRENDER call.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 8 replies
  • 3462 views
  • 0 likes
  • 5 in conversation