BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
RobP
Quartz | Level 8

I'm trying to place some annotations on a map.  I have two sets of annotations, a bubble plot and a text annotation.

 

If there are more than 500 observations in the annotation dataset, the text plot annotation does not get annotated to the map.

 

The weird thing is, if I have a bubble plot by itself there doesn't appear to be a limit to how many observations it will annotate, it will happily place down 600 bubble annotations.  It's only once I have multiple 'series' being annotated that this shows up.

 

Code to reproduce (run it twice, once with the obs statement commented, then again with it uncommented):

 

data annotations_bubble;
  do x = -70 to -80 by -.1;
    do y = 35 to 39 by 1;
      size = 1;
      output;
    end;
  end;
run;

data annotations_text;
  x = -75;
  y = 37.5;
  size = .;
  text = 'X';
run;

data annotations_all;
  set annotations_text
      annotations_bubble(/* obs=499 */)  /* <------ UNCOMMENT HERE TO SEE ISSUE */      
      ;
run;


* BUBBLEPLOT;
ods graphics / reset=all imagename="bubble" imagefmt=png width=&img_width height=&img_height border=off;
proc sgmap mapdata=maps.states
           plotdata=annotations_all;
           ;
           
  esrimap url='http://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Light_Gray_Base';
  
  text x=x y=y text=text   / textattrs=(size=50pt color=black);
  bubble x=x y=y size=size / fillattrs=(color=green);
  
%runquit;

 

Does anyone have a workaround for this? I'm currently running 9.4 TS1M5.

1 ACCEPTED SOLUTION

Accepted Solutions
GraphGuy
Meteorite | Level 14

I tried this on 9.4m7 Windows SAS, and it works there, therefore I'm guessing the underlying limitation was fixed.

 

Here's a slightly cleaned-up version of the example (and I ran it with 861 bubbles):

 

data bubbles;
do long = -160 to -80 by 2;
   do lat = 30 to 70 by 2;
      size = 1;
      output;
      end;
   end;
run;

 

data text;
text_long=-75 ; text_lat=37.5; text='X';
run;

 

data annotations_all; set text bubbles;
run;

 

proc sgmap mapdata=mapsgfk.us_states plotdata=annotations_all;
openstreetmap;
choromap / mapid=statecode;
bubble x=long y=lat size=size / fillattrs=(color=green);
text x=text_long y=text_lat text=text / textattrs=(size=50pt color=red);
run;

 

bubble.png

 

View solution in original post

2 REPLIES 2
Reeza
Super User
Same in 9.4 TS1M6
This is likely a tech support question 😞
GraphGuy
Meteorite | Level 14

I tried this on 9.4m7 Windows SAS, and it works there, therefore I'm guessing the underlying limitation was fixed.

 

Here's a slightly cleaned-up version of the example (and I ran it with 861 bubbles):

 

data bubbles;
do long = -160 to -80 by 2;
   do lat = 30 to 70 by 2;
      size = 1;
      output;
      end;
   end;
run;

 

data text;
text_long=-75 ; text_lat=37.5; text='X';
run;

 

data annotations_all; set text bubbles;
run;

 

proc sgmap mapdata=mapsgfk.us_states plotdata=annotations_all;
openstreetmap;
choromap / mapid=statecode;
bubble x=long y=lat size=size / fillattrs=(color=green);
text x=text_long y=text_lat text=text / textattrs=(size=50pt color=red);
run;

 

bubble.png

 

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 2 replies
  • 804 views
  • 1 like
  • 3 in conversation