05-16-2016 11:38 AM
I am trying to do a 'timeline' of events using SGPLOT and a horizontal, stacked, high-low graph. The Y-axis is a variable which specifies which 'track' an item is on (right now, up to 20); the X-axis is time.
Each item has that will be on the graph has a data label that should be in the box that's drawn on the track. I need a technique to let me scale the horizontal dimension so that a minimum of eight characters can appear in each box (cell? what is the proper term for one section of the stack) and that that box is wide enough to show those characters - therefore the smallest box's duration has to scale to wide enough to be 8-10 characters wide.. Here's the code I'm using right now, using HTML and PNG. I've been trying to adjust the width but I don't think pixels is the way to go.
1. Should I try using HTML5 and SVG ?
2. This will be projected (via Powerpoint eventually) so it will "zoom" due to projection
3. Another option is to go to a PCL plotter but I'm not sure how it'll get there yet.
ODS GRAPHICS on /
OUTPUTFMT = PNG
WIDTH = 7680px
HEIGHT = 1080px
PROC SGPLOT DATA=JOB_TIME
TITLE1 "Jobs Executing";
LABEL STACK_LEVEL = '';
05-16-2016 12:19 PM
Without data it is hard to visualize the problem or test code to address it. Also, which version of SAS are you using as there are notable differences available such as if you are using a late enough edition there is an ODS POWERPOINT destination that I would suggest using so there are minimal issues with the presentation.
Could you provide a datastep of data similar to what you are using that will recreate the issue.
05-23-2016 11:26 AM
Well when looking at the data, the shortest duration is .01 seconds (one-one hundredth) and the longest is 2748.97 seconds. This is during an overall time period of 50400 seconds (an overnight period, from 5 PM to 7 AM). I've eliminated the idea of this chart (at least as a wall chart) with the following logic
(perhaps) eliminate anything with duration under 1 second.
One second has to equal approximately 10 characters (8-character name plus some space on each side).
So, one second equals 10*n where n = the width of a character.
the entire time period then equals 50400*10*n = 504000*n ; n would have to be unreadably small even if the chart were to go on a 12 foot wall. For 504000 to fit in 12 feet means it fits in 144 inches, therefore n = 144/504000 = .00028 inches.
We'd need a microscope!
I'll come up with some sort of scrolling idea, using HTML and a projector, I guess. We can close this topic.