Data visualization with SAS programming

Lognormal scale boxplot

Accepted Solution Solved
Reply
Respected Advisor
Posts: 4,606
Accepted Solution

Lognormal scale boxplot

Hi all,

This SGPLOT-HBOX graph is almost what I want

LogNormalBoxPlot.PNG
It shows the distribution of a concentration on a log10 scale. Means and far outliers are also determined on a log scale. What I would like is the X axis to show original units instead of log units. I need a solution that will accommodate BY processing with varying ranges on the X axis.

Thanks.

PG

PG

Accepted Solutions
Solution
‎08-28-2013 04:08 PM
SAS Super FREQ
Posts: 863

Re: Lognormal scale boxplot

Here is a trick that might work for you:

1. Create a user-defined format that maps the log tick values back to the original values. Create a mapping that will encompass the total range of data across the BY-groups. The INTEGER option that you're using should make that mapping easier to create.

2. Use the TICKVALUEFORMAT option to assign the format to the X-axis.

Hope that helps!

Dan

View solution in original post


All Replies
SAS Super FREQ
Posts: 863

Re: Lognormal scale boxplot

Can you post the SGPLOT code you're using? What logstyle are you using?

Respected Advisor
Posts: 4,606

Re: Lognormal scale boxplot

Here is the code

proc sgplot data=metDet;

by element;

hbox logvaleur / category=grpOrganisme datalabel=site labelfar;

*xaxis type=log logbase=10 label="Teneur (mg/kg)";

xaxis label="Log(Teneur (mg/kg))" integer;

yaxis display=(nolabel);

run;

If I use the commented out XAXIS and valeur instead of logvaleur, the mean and outliers (and whiskers, I think) will be determined on a linear scale, which is not what I want.

PG

Message was edited by: PG Added the change of variable required to go to a linear scale.

PG
Solution
‎08-28-2013 04:08 PM
SAS Super FREQ
Posts: 863

Re: Lognormal scale boxplot

Here is a trick that might work for you:

1. Create a user-defined format that maps the log tick values back to the original values. Create a mapping that will encompass the total range of data across the BY-groups. The INTEGER option that you're using should make that mapping easier to create.

2. Use the TICKVALUEFORMAT option to assign the format to the X-axis.

Hope that helps!

Dan

Respected Advisor
Posts: 4,606

Re: Lognormal scale boxplot

But that's cheating! OK, I'll try it Smiley Happy. Thanks Dan. - PG

PG
Respected Advisor
Posts: 4,606

Re: Lognormal scale boxplot

It worked nicely in most cases.  It wouldn't look good for cases where the X range is too short.

LogNormalBoxPlot2.PNG

Thanks again!

PG

PG
Post a Question
Discussion Stats
  • 5 replies
  • 465 views
  • 0 likes
  • 2 in conversation