That is because percent for 15,20,25 are way too small when 1/1000=0.001 .
But the percent is not small when 1/50=0.02 .
Since PIE graph stands for percent, so you could see the slice is very thin and datalabel of them are overlapped (See my graph).
There are two ways you could try:
1) Using my code and print label "10 1 , 15 1 , 20 1" by sganno dataset.
2)Using your code and print label "5 1000" by sganno dataset.
data pie1;
do i=1 to 1000;
v=5;
output;
end;
v=10;
output;
v=15;
output;
v=20;
output;
run;
data pie2;
set pie1;
if _n_ < 951 then delete;
run;
%sganno
data sganno;
%SGTEXT(
LABEL="5 1000",
DRAWSPACE="GRAPHPERCENT" ,
TEXTCOLOR="black" ,
FILLCOLOR="white",
FILLTRANSPARENCY=0,
WIDTH=8,
X1=83,
Y1=48,
id='pie'
)
run;
proc template;
define statgraph simplepie;
begingraph;
entrytitle "Car Models by Origin";
layout region;
piechart category=v / datalabellocation=callout LABELFITPOLICY=NONE
OTHERSLICE=FALSE CENTERFIRSTSLICE=TRUE OUTLINEATTRS=(thickness=0);
endlayout;
annotate /id='pie';
endgraph;
end;
run;
proc sgrender data=pie2 sganno=sganno
template=simplepie;
run;
... View more