Data visualization with SAS programming

Curve Legend in PROC UNIVARIATE Histogram plot

Accepted Solution Solved
Reply
Contributor
Posts: 28
Accepted Solution

Curve Legend in PROC UNIVARIATE Histogram plot

I am making comparative histogram plots in proc univariate with a normal curve.  When the plots are produced, they have a legend for the normal curve that says Curve --------- Normal (example image provided).  I do not want this legend to appear, but for some reason I cannot find the code that I need to suppress this.


Univariate Histogram.JPG

Accepted Solutions
Solution
‎12-18-2014 05:57 PM
SAS Super FREQ
Posts: 1,139

Re: Curve Legend in PROC UNIVARIATE Histogram plot

You have to edit the Histogram template for the Univariate procedure.

Set

ods trace on;

odsselect Histogram;

Now, run the Univariate step.  You will see the names of the template used for histogram along with the path to the template.   It will be something like "base.univariate.Graphics.Histogram" depending on the SAS release.  Open this template using the ODStemplate command.  Copy the template to a program editor.

Make sure SASHELP.TMPLMST is Read only and not first in the ODS Path.

In the editor, find the instances where the code "DiscreteLegend" is used.  Comment out this code, and then submit the template program. The template will now be compiled and saved to your SASUSER.TEMPLAT itemstore.

Rerun your Univariate step, and the legend should be gone.  The procedure will use the template from your sasuser first.  When you want to go back to the original, remove this template from sasuser.templat.

View solution in original post


All Replies
Solution
‎12-18-2014 05:57 PM
SAS Super FREQ
Posts: 1,139

Re: Curve Legend in PROC UNIVARIATE Histogram plot

You have to edit the Histogram template for the Univariate procedure.

Set

ods trace on;

odsselect Histogram;

Now, run the Univariate step.  You will see the names of the template used for histogram along with the path to the template.   It will be something like "base.univariate.Graphics.Histogram" depending on the SAS release.  Open this template using the ODStemplate command.  Copy the template to a program editor.

Make sure SASHELP.TMPLMST is Read only and not first in the ODS Path.

In the editor, find the instances where the code "DiscreteLegend" is used.  Comment out this code, and then submit the template program. The template will now be compiled and saved to your SASUSER.TEMPLAT itemstore.

Rerun your Univariate step, and the legend should be gone.  The procedure will use the template from your sasuser first.  When you want to go back to the original, remove this template from sasuser.templat.

Contributor
Posts: 28

Re: Curve Legend in PROC UNIVARIATE Histogram plot

The legend has now been successfully removed by customizing the template.  Thank you for your help with this Sanjay!!

🔒 This topic is solved and locked.

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

Discussion stats
  • 2 replies
  • 753 views
  • 0 likes
  • 2 in conversation