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-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

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
  • 642 views
  • 1 like
  • 3 in conversation