<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: proc gplot in a macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/361150#M85133</link>
    <description>&lt;P&gt;Thank you very much! &amp;nbsp;I've always been a bit careless with comments in macros. &amp;nbsp;-- George&lt;/P&gt;</description>
    <pubDate>Wed, 24 May 2017 11:49:49 GMT</pubDate>
    <dc:creator>grezek</dc:creator>
    <dc:date>2017-05-24T11:49:49Z</dc:date>
    <item>
      <title>proc gplot in a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360234#M84762</link>
      <description>&lt;P&gt;I don't understand why the code below:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- cannot find the axis1 statement, regardless of where it is put&lt;/P&gt;
&lt;P&gt;- outputs the resulting .png file 3 times&lt;/P&gt;
&lt;P&gt;[otherwise it generates the plot]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;the code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* macro to graph three models ;

%macro plotit;
    symbol1 color=&amp;amp;down2_color interpol=join value=dot height=2 width=5;
    symbol2 color=&amp;amp;down1_color interpol=join value=dot height=2 width=5;
    symbol3 color=&amp;amp;base_color interpol=join value=dot height=2 width=5;
    symbol4 color=&amp;amp;up1_color interpol=join value=dot height=2 width=5;
    symbol5 color=&amp;amp;up2_color interpol=join value=dot height=2 width=5;
    *axis2 offset=(0 0) value=(angle = 0 ) width=1 label=(h=3) label=(a=90 h=3 c=&amp;amp;actuals_color 'Actual' c=black ' and ' c=&amp;amp;forecast_color 'Expected') minor=none ;
    axis1 /* offset=(0 0) */
    width=3 label=none value=(angle=55) order=(&amp;amp;start_date to &amp;amp;end_date by month);
    * axis3 value=(c=red) label=(angle=90 c=&amp;amp;pererr_color '% Error between Actual and Forecast') ;
    legend1 frame /*shape=symbol(4,2)*/
    position=(bottom right inside) mode=reserve label=('');
    * loop through the shocked variables ;

    %do i=1 %to 1;
        *loop through the products ;

        %do j=1 %to 1;
            *loop through the graph variables ;

            %do k=1 %to 1;
                axis1 /* offset=(0 0) */
                width=3 label=none value=(angle=55) order=(&amp;amp;start_date to &amp;amp;end_date by 
                    month);
                options orientation=landscape;
                filename graphout 
                    "C:\grezek\proj\sensitivity\graphout\&amp;amp;&amp;amp;invar&amp;amp;i.._&amp;amp;&amp;amp;product&amp;amp;j.._&amp;amp;&amp;amp;gvar&amp;amp;k...png";
                goptions reset=all border gunit=pct cback=white device=png300 
                    gsfname=graphout gsfmode=replace target=png300;

                proc gplot data=sasdb.impact_&amp;amp;&amp;amp;invar&amp;amp;i.._&amp;amp;&amp;amp;product&amp;amp;j.. (where=(&amp;amp;start_date &amp;lt;=end_effective_date &amp;lt;=&amp;amp;end_date));
                    format end_effective_date monyy7.;
                    plot &amp;amp;&amp;amp;&amp;amp;gvar&amp;amp;k.._&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i..&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i.._perc1. * end_effective_date
&amp;amp;&amp;amp;gvar&amp;amp;i.._&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i..&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i.._perc2. * end_effective_date
&amp;amp;&amp;amp;gvar&amp;amp;i.. * end_effective_date
&amp;amp;&amp;amp;gvar&amp;amp;i.._&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i..&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i.._perc3. * end_effective_date
&amp;amp;&amp;amp;gvar&amp;amp;i.._&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i..&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i.._perc4. * end_effective_date / vzero 
                        overlay haxis=axis1

                        /* vaxis = axis2 */
                        autovref autohref /*legend = legend1 */;

                    /*
                     * plot2 &amp;amp;model_var._diff*&amp;amp;month / vaxis = axis3 ;
                    
                    title "&amp;amp;portfolio &amp;amp;sproduct" ;
                    title2 "Mape: %sysfunc(putn(&amp;amp;mape.,percent10.2))
                    RMSE: %sysfunc(putn(&amp;amp;rmse.,percent10.2))
                    Cumulative % Error: %sysfunc(putn(&amp;amp;mape_cum.,percent10.2))" ;
                    footnote "Training Period Jan 2007 - Sep 2014" ;*/
%end;
            %end;
        %end;
        run;
    %mend plotit;

    run;
    %plotit;
    run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="SAS Monospace" size="2"&gt;the log:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2723&lt;/P&gt;
&lt;P&gt;2724 * macro to graph three models ;&lt;/P&gt;
&lt;P&gt;2725 %macro plotit ;&lt;/P&gt;
&lt;P&gt;2726 symbol1 color=&amp;amp;down2_color interpol=join value=dot height=2 width=5 ;&lt;/P&gt;
&lt;P&gt;2727 symbol2 color=&amp;amp;down1_color interpol=join value=dot height=2 width=5 ;&lt;/P&gt;
&lt;P&gt;2728 symbol3 color=&amp;amp;base_color interpol=join value=dot height=2 width=5 ;&lt;/P&gt;
&lt;P&gt;2729 symbol4 color=&amp;amp;up1_color interpol=join value=dot height=2 width=5 ;&lt;/P&gt;
&lt;P&gt;2730 symbol5 color=&amp;amp;up2_color interpol=join value=dot height=2 width=5 ;&lt;/P&gt;
&lt;P&gt;2731&lt;/P&gt;
&lt;P&gt;2732 *axis2 offset=(0 0) value=(angle = 0 ) width=1 label=(h=3) label=(a=90 h=3 c=&amp;amp;actuals_color 'Actual' c=black ' and '&lt;/P&gt;
&lt;P&gt;2732! c=&amp;amp;forecast_color 'Expected') minor=none ;&lt;/P&gt;
&lt;P&gt;2733&lt;/P&gt;
&lt;P&gt;2734 axis1 /* offset=(0 0) */ width=3 label=none value=(angle=55) order=(&amp;amp;start_date to &amp;amp;end_date by month) ;&lt;/P&gt;
&lt;P&gt;2735 * axis3 value=(c=red) label=(angle=90 c=&amp;amp;pererr_color '% Error between Actual and Forecast') ;&lt;/P&gt;
&lt;P&gt;2736 legend1 frame /*shape=symbol(4,2)*/ position=(bottom right inside) mode=reserve label=('') ;&lt;/P&gt;
&lt;P&gt;2737&lt;/P&gt;
&lt;P&gt;2738 * loop through the shocked variables ;&lt;/P&gt;
&lt;P&gt;2739 %do i = 1 %to 1 ;&lt;/P&gt;
&lt;P&gt;2740 *loop through the products ;&lt;/P&gt;
&lt;P&gt;2741 %do j = 1 %to 1 ;&lt;/P&gt;
&lt;P&gt;2742 *loop through the graph variables ;&lt;/P&gt;
&lt;P&gt;2743 %do k = 1 %to 1 ;&lt;/P&gt;
&lt;P&gt;2744 axis1 /* offset=(0 0) */ width=3 label=none value=(angle=55) order=(&amp;amp;start_date to &amp;amp;end_date by month) ;&lt;/P&gt;
&lt;P&gt;2745&lt;/P&gt;
&lt;P&gt;2746 options orientation=landscape;&lt;/P&gt;
&lt;P&gt;2747 filename graphout "C:\grezek\proj\sensitivity\graphout\&amp;amp;&amp;amp;invar&amp;amp;i.._&amp;amp;&amp;amp;product&amp;amp;j.._&amp;amp;&amp;amp;gvar&amp;amp;k...png";&lt;/P&gt;
&lt;P&gt;2748 goptions reset = all border gunit = pct cback = white device = png300 gsfname=graphout gsfmode=replace target = png300 ;&lt;/P&gt;
&lt;P&gt;2749&lt;/P&gt;
&lt;P&gt;2750 proc gplot data = sasdb.impact_&amp;amp;&amp;amp;invar&amp;amp;i.._&amp;amp;&amp;amp;product&amp;amp;j.. (where=(&amp;amp;start_date &amp;lt;= end_effective_date &amp;lt;= &amp;amp;end_date)) ;&lt;/P&gt;
&lt;P&gt;2751 format end_effective_date monyy7.;&lt;/P&gt;
&lt;P&gt;2752 plot &amp;amp;&amp;amp;&amp;amp;gvar&amp;amp;k.._&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i..&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i.._perc1. * end_effective_date&lt;/P&gt;
&lt;P&gt;2753 &amp;amp;&amp;amp;gvar&amp;amp;i.._&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i..&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i.._perc2. * end_effective_date&lt;/P&gt;
&lt;P&gt;2754 &amp;amp;&amp;amp;gvar&amp;amp;i.. * end_effective_date&lt;/P&gt;
&lt;P&gt;2755 &amp;amp;&amp;amp;gvar&amp;amp;i.._&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i..&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i.._perc3. * end_effective_date&lt;/P&gt;
&lt;P&gt;2756 &amp;amp;&amp;amp;gvar&amp;amp;i.._&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i..&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;invar&amp;amp;i.._perc4. * end_effective_date / vzero overlay&lt;/P&gt;
&lt;P&gt;2757 haxis = axis1&lt;/P&gt;
&lt;P&gt;2758 /* vaxis = axis2 */&lt;/P&gt;
&lt;P&gt;2759 autovref autohref /*legend = legend1 */;&lt;/P&gt;
&lt;P&gt;2760 /*&lt;/P&gt;
&lt;P&gt;2761 * plot2 &amp;amp;model_var._diff*&amp;amp;month / vaxis = axis3 ;&lt;/P&gt;
&lt;P&gt;2762&lt;/P&gt;
&lt;P&gt;2763 title "&amp;amp;portfolio &amp;amp;sproduct" ;&lt;/P&gt;
&lt;P&gt;2764 title2 "Mape: %sysfunc(putn(&amp;amp;mape.,percent10.2))&lt;/P&gt;
&lt;P&gt;2765 RMSE: %sysfunc(putn(&amp;amp;rmse.,percent10.2))&lt;/P&gt;
&lt;P&gt;2766 Cumulative % Error: %sysfunc(putn(&amp;amp;mape_cum.,percent10.2))" ;&lt;/P&gt;
&lt;P&gt;2767 footnote "Training Period Jan 2007 - Sep 2014" ;*/&lt;/P&gt;
&lt;P&gt;2768 %end ;%end ; %end ; run ;&lt;/P&gt;
&lt;P&gt;2769&lt;/P&gt;
&lt;P&gt;2770 %mend plotit ;&lt;/P&gt;
&lt;P&gt;2771 run ;&lt;/P&gt;
&lt;P&gt;WARNING: AXIS statement 1 not found. The default axis description will be used.&lt;/P&gt;
&lt;P&gt;NOTE: 71709 bytes written to C:\grezek\proj\sensitivity\graphout\unemp_1st_mtg_exp_m_EL.png.&lt;/P&gt;
&lt;P&gt;2772 %plotit;run;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable DOWN2_COLOR resolves to blue&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): symbol1 color=blue interpol=join value=dot height=2 width=5 ;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable DOWN1_COLOR resolves to brown&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): symbol2 color=brown interpol=join value=dot height=2 width=5 ;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable BASE_COLOR resolves to black&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): symbol3 color=black interpol=join value=dot height=2 width=5 ;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable UP1_COLOR resolves to green&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): symbol4 color=green interpol=join value=dot height=2 width=5 ;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable UP2_COLOR resolves to red&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): symbol5 color=red interpol=join value=dot height=2 width=5 ;&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): *axis2 offset=(0 0) value=(angle = 0 ) width=1 label=(h=3) label=(a=90 h=3 c=&amp;amp;actuals_color 'Actual' c=black&lt;/P&gt;
&lt;P&gt;' and ' c=&amp;amp;forecast_color 'Expected') minor=none ;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable START_DATE resolves to 20635&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable END_DATE resolves to 21427&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): axis1 width=3 label=none value=(angle=55) order=( 20635 to 21427 by month) ;&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): * axis3 value=(c=red) label=(angle=90 c=&amp;amp;pererr_color '% Error between Actual and Forecast') ;&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): legend1 frame position=(bottom right inside) mode=reserve label=('') ;&lt;/P&gt;
&lt;P&gt;WARNING: Can not use MODE=RESERVE and POSITION=(INSIDE). Changed to MODE=PROTECT.&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): * loop through the shocked variables ;&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): *loop through the products ;&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): *loop through the graph variables ;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable START_DATE resolves to 20635&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable END_DATE resolves to 21427&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): axis1 width=3 label=none value=(angle=55) order=( 20635 to 21427 by month) ;&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): options orientation=landscape;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable J resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable K resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable INVAR1 resolves to unemp&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable PRODUCT1 resolves to 1st_mtg&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable GVAR1 resolves to exp_m_EL&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): filename graphout "C:\grezek\proj\sensitivity\graphout\unemp_1st_mtg_exp_m_EL.png";&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): goptions reset = all border gunit = pct cback = white device = png300 gsfname=graphout gsfmode=replace target&lt;/P&gt;
&lt;P&gt;= png300 ;&lt;/P&gt;
&lt;P&gt;NOTE: There were 27 observations read from the data set SASDB.IMPACT_UNEMP_1ST_MTG.&lt;/P&gt;
&lt;P&gt;WHERE (end_effective_date&amp;gt;=20635 and end_effective_date&amp;lt;=21427);&lt;/P&gt;
&lt;P&gt;NOTE: PROCEDURE GPLOT used (Total process time):&lt;/P&gt;
&lt;P&gt;real time 7:41.89&lt;/P&gt;
&lt;P&gt;cpu time 3.16 seconds&lt;/P&gt;
&lt;P&gt;　&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable J resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable INVAR1 resolves to unemp&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable PRODUCT1 resolves to 1st_mtg&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable START_DATE resolves to 20635&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable END_DATE resolves to 21427&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): proc gplot data = sasdb.impact_unemp_1st_mtg (where=( 20635 &amp;lt;= end_effective_date &amp;lt;= 21427)) ;&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): format end_effective_date monyy7.;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Unable to resolve the macro variable reference &amp;amp;gvar&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable K resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Unable to resolve the macro variable reference &amp;amp;invar&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable GVAR1 resolves to exp_m_EL&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable INVAR1 resolves to unemp&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable INVAR1 resolves to unemp&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable UNEMP_PERC1 resolves to _down5&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Unable to resolve the macro variable reference &amp;amp;invar&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable GVAR1 resolves to exp_m_EL&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable INVAR1 resolves to unemp&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable INVAR1 resolves to unemp&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable UNEMP_PERC2 resolves to _down2&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable GVAR1 resolves to exp_m_EL&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Unable to resolve the macro variable reference &amp;amp;invar&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable GVAR1 resolves to exp_m_EL&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable INVAR1 resolves to unemp&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable INVAR1 resolves to unemp&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable UNEMP_PERC3 resolves to _up2&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Unable to resolve the macro variable reference &amp;amp;invar&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable GVAR1 resolves to exp_m_EL&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable INVAR1 resolves to unemp&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: &amp;amp;&amp;amp; resolves to &amp;amp;.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable INVAR1 resolves to unemp&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable UNEMP_PERC4 resolves to _up5&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): plot exp_m_EL_unemp_down5 * end_effective_date exp_m_EL_unemp_down2 * end_effective_date exp_m_EL *&lt;/P&gt;
&lt;P&gt;end_effective_date exp_m_EL_unemp_up2 * end_effective_date exp_m_EL_unemp_up5 * end_effective_date / vzero overlay haxis =&lt;/P&gt;
&lt;P&gt;axis1 autovref autohref ;&lt;/P&gt;
&lt;P&gt;MPRINT(PLOTIT): run ;&lt;/P&gt;
&lt;P&gt;WARNING: AXIS statement 1 not found. The default axis description will be used.&lt;/P&gt;
&lt;P&gt;NOTE: 71709 bytes written to C:\grezek\proj\sensitivity\graphout\unemp_1st_mtg_exp_m_EL.png.&lt;/P&gt;
&lt;P&gt;WARNING: AXIS statement 1 not found. The default axis description will be used.&lt;/P&gt;
&lt;P&gt;NOTE: 71709 bytes written to C:\grezek\proj\sensitivity\graphout\unemp_1st_mtg_exp_m_EL.png.&lt;/P&gt;
&lt;P&gt;2773 run ;&lt;/P&gt;
&lt;P&gt;WARNING: AXIS statement 1 not found. The default axis description will be used.&lt;/P&gt;
&lt;P&gt;NOTE: 71709 bytes written to C:\grezek\proj\sensitivity\graphout\unemp_1st_mtg_exp_m_EL.png.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="SAS Monospace" size="2" color="#000080"&gt;run&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="SAS Monospace" size="2"&gt; ;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 20 May 2017 22:20:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360234#M84762</guid>
      <dc:creator>grezek</dc:creator>
      <dc:date>2017-05-20T22:20:56Z</dc:date>
    </item>
    <item>
      <title>Re: proc gplot in a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360235#M84763</link>
      <description>&lt;P&gt;What happens if you add a RUN; and QUIT; statement before the macro call?&lt;/P&gt;
&lt;P&gt;From your SAS log it looks like PROC GPLOT is already running before you submitted your macro call.&lt;/P&gt;
&lt;PRE&gt;MPRINT(PLOTIT): goptions reset = all border gunit = pct cback = white device = png300 gsfname=graphout gsfmode=replace target                                   
= png300 ;                                                                                                                                                      
NOTE: There were 27 observations read from the data set SASDB.IMPACT_UNEMP_1ST_MTG.                                                                             
WHERE (end_effective_date&amp;gt;=20635 and end_effective_date&amp;lt;=21427);                                                                                                
NOTE: PROCEDURE GPLOT used (Total process time):                                                                                                                
real time 7:41.89                                                                                                                                               
cpu time 3.16 seconds                                                                                                                                           
                                                                                                                                                                
MPRINT(PLOTIT): proc gplot data = sasdb.impact_unemp_1st_mtg (where=( 20635 &amp;lt;= end_effective_date &amp;lt;= 21427)) ;     &lt;/PRE&gt;</description>
      <pubDate>Sat, 20 May 2017 22:04:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360235#M84763</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2017-05-20T22:04:39Z</dc:date>
    </item>
    <item>
      <title>Re: proc gplot in a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360240#M84764</link>
      <description>&lt;P&gt;Tom,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for responding so quickly.&amp;nbsp; I added the run; and quit; statements before invoking the macro.&amp;nbsp; I get the same results.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When you said that the macro looked as though is was running, I ran the code in batch (I've been running in DMS, which I usually don't do).&amp;nbsp; I still have the same problem.&amp;nbsp; It is as though the code thinks that it should run 3 times, although I would think that the gplot in the center of three do loops would run the procedute once.&amp;nbsp; Note that it doesn't read the symbol statements either.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I appreciate your comments.&amp;nbsp; -- George&lt;/P&gt;</description>
      <pubDate>Sat, 20 May 2017 22:29:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360240#M84764</guid>
      <dc:creator>grezek</dc:creator>
      <dc:date>2017-05-20T22:29:53Z</dc:date>
    </item>
    <item>
      <title>Re: proc gplot in a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360241#M84765</link>
      <description>&lt;P&gt;So before ever creating a macro you should have working code for the graphs you want. Do you have that code handy?&lt;/P&gt;
&lt;P&gt;If so, a comparison between this and that may help. Given the amount of code it's hard to process especially when you can't see the data. Can you add some fake data so we could run to help debug?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 20 May 2017 22:42:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360241#M84765</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-05-20T22:42:10Z</dc:date>
    </item>
    <item>
      <title>Re: proc gplot in a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360242#M84766</link>
      <description>Good idea. Let me rewrite without the macro; I apologize for the amount of code - it's hard to read I know. -- George</description>
      <pubDate>Sat, 20 May 2017 22:45:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360242#M84766</guid>
      <dc:creator>grezek</dc:creator>
      <dc:date>2017-05-20T22:45:56Z</dc:date>
    </item>
    <item>
      <title>Re: proc gplot in a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360280#M84787</link>
      <description>&lt;P&gt;One thing to be careful of in macros are normal comments (* Comment; /* Comment */). In my experience they can cause the macro parser to get confused. So I'd suggest removing the comments or converting them to macro comments ( %* Macro Comment; ).&lt;/P&gt;</description>
      <pubDate>Sun, 21 May 2017 06:24:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360280#M84787</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2017-05-21T06:24:54Z</dc:date>
    </item>
    <item>
      <title>Re: proc gplot in a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360403#M84851</link>
      <description>&lt;P&gt;From what I see, your code has an unfinished proc gplot started before the macro is defined and called; that gplot complains about the missing axis statement. (It is started by the run; immediately before the %plotit call)&lt;/P&gt;
&lt;P&gt;Either make that proc gplot complete BEFORE defining and running the macro, or remove it, or move it into the macro.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You should also move the run; inside the macro to the end of the innermost %do loop, as it really belongs there.&lt;/P&gt;
&lt;P&gt;All other run; statements should then become obsolete.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 May 2017 11:03:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/360403#M84851</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2017-05-22T11:03:53Z</dc:date>
    </item>
    <item>
      <title>Re: proc gplot in a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/361148#M85132</link>
      <description>&lt;P&gt;Thank you very very -- especially the absent run statement was causing problems. -- George&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 May 2017 11:47:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/361148#M85132</guid>
      <dc:creator>grezek</dc:creator>
      <dc:date>2017-05-24T11:47:52Z</dc:date>
    </item>
    <item>
      <title>Re: proc gplot in a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/361150#M85133</link>
      <description>&lt;P&gt;Thank you very much! &amp;nbsp;I've always been a bit careless with comments in macros. &amp;nbsp;-- George&lt;/P&gt;</description>
      <pubDate>Wed, 24 May 2017 11:49:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/proc-gplot-in-a-macro/m-p/361150#M85133</guid>
      <dc:creator>grezek</dc:creator>
      <dc:date>2017-05-24T11:49:49Z</dc:date>
    </item>
  </channel>
</rss>

