Data visualization with SAS programming

SGPLOT: how to get tick marks inside?

Accepted Solution Solved
Reply
Contributor
Posts: 21
Accepted Solution

SGPLOT: how to get tick marks inside?

[ Edited ]

Hey everyone,

 

I would like a graph with tick marks inside and all around.

 

So I started to add another X and Y axes with this code:

proc sgplot data = Sample;
	xaxis values=('30Jun1930'd to '30Jun2020'd);
	yaxis values=(-3 to 18 by 1);

/* 2nd X and Y axes */
	x2axis values=('30Jun1930'd to '30Jun2020'd) display=(nolabel novalues);	
	y2axis values=(-3 to 18 by 1) display=(nolabel novalues);

	series y=ln_Wealth_Portfolio x=Date / x2axis y2axis;
	series y=ln_Wealth_Index x=Date;
	format Date YEAR4.;
	keylegend / location=inside position=topleft down=2;
run;

But I did not find how to draw the tick marks inside. I read somewhere: "If you specify a negative number, tick marks are drawn inside the axis" but I don't know how to do it, and I have dates on my X-axis...

 

Could you help me please?


Accepted Solutions
Solution
‎03-23-2017 09:56 AM
SAS Super FREQ
Posts: 1,081

Re: SGPLOT: how to get tick marks inside?

[ Edited ]

Rick is correct that SGPLOT does not expose such an option.  However, GTL supports TICKSTYLE=Outside | Inside | Across.  If necessary, you could export the GTL from the SGPLOT procedure (use tmplout option) and then add this option to the xaxisopts option bundle.

 

proc template;
  define statgraph class;
  begingraph;
    layout overlay / xaxisopts=(tickstyle=inside);
      scatterplot x=height y=weight;
    endlayout;
  endgraph;
end;
run;

 

proc sgrender data=sashelp.class template=class;
run;

 

Spider1.png

View solution in original post


All Replies
SAS Super FREQ
Posts: 3,415

Re: SGPLOT: how to get tick marks inside?

I've never seen an option for SGPLOT that does what you describe, but you can suppress the ticks with display=(noticks) and you can draw a grid inside the plot area, like this

 

proc sgplot data=sashelp.class;
scatter x=height y=weight;
xaxis display=(noticks nolabel novalues) grid;
yaxis display=(noticks nolabel novalues) grid;
run;
Solution
‎03-23-2017 09:56 AM
SAS Super FREQ
Posts: 1,081

Re: SGPLOT: how to get tick marks inside?

[ Edited ]

Rick is correct that SGPLOT does not expose such an option.  However, GTL supports TICKSTYLE=Outside | Inside | Across.  If necessary, you could export the GTL from the SGPLOT procedure (use tmplout option) and then add this option to the xaxisopts option bundle.

 

proc template;
  define statgraph class;
  begingraph;
    layout overlay / xaxisopts=(tickstyle=inside);
      scatterplot x=height y=weight;
    endlayout;
  endgraph;
end;
run;

 

proc sgrender data=sashelp.class template=class;
run;

 

Spider1.png

Contributor
Posts: 21

Re: SGPLOT: how to get tick marks inside?

[ Edited ]

I will try this solution, thank you Smiley Happy

 

Edit: Tested and approved!

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 160 views
  • 3 likes
  • 3 in conversation