我正在尝试做什么:
我正在使用下面的代码创建绘图。 PERIOD有3个不同的值,因此plot和plot2语句通过x * y = z类型的绘图请求在绘图上创建3个系列。我希望plot语句中的3个系列具有连接的符号,并且我希望plot2语句中的3个系列具有未连接的符号。无论我想出什么解决方案,都需要在宏中工作。
问题
无论我尝试什么,每张图表上的所有6个系列最终都使用相同的符号。我在proc gplot调用之外定义的所有其他绘图选项都被正确选取,那么我对符号定义的错误是什么?如果有人能发布正确语法的示例,我将不胜感激。
参考
我找到了这个链接,它为plot和plot2系列生成了一个非常类似的不同符号的绘图,但是它没有使用x * y = z绘图请求:
http://support.sas.com/techsup/technote/ts422.html
我还发现了这个链接,其中包含一些使用x * y = z请求但没有plot2语句的代码:
http://www.sfu.ca/sasdoc/sashtml/ets/chap2/sect27.htm
此页面声称可以同时执行这两个操作,并使用符号状态为每个系列获取不同的符号,但实际上并未提供必要的代码来执行此操作:
http://support.sas.com/documentation/cdl/en/graphref/63022/HTML/default/gplot-plot2.htm#gplot-fig5
代码示例
如果我运行此代码,则所有6个系列都使用interpol = none:
绘制%macro sr_elas_plots(VAR);
goptions reset = all;
axis1 label=(angle = 90);
legend1 label=('Obs. elasticity');
legend2 label=('Quote volume');
proc gplot data = _p_&VAR;
symbol1 interpol=join value=dot height=3;
symbol2 interpol=join value=dot height=3;
symbol3 interpol=join value=dot height=3;
plot Elasticity*&VAR = PERIOD / legend = legend1 vaxis=axis1;
symbol1 interpol=none value = dot height=3;
symbol2 interpol=none value = dot height=3;
symbol3 interpol=none value = dot height=3;
plot2 QUOTES*&VAR = PERIOD / legend = legend2;
by NBIND CHANNEL;
run;
quit;
%mend sr_elas_plots;
但是,如果我运行此代码,则所有6个都使用interpol = join:
绘制%macro sr_elas_plots(VAR);
goptions reset = all;
axis1 label=(angle = 90);
legend1 label=('Obs. elasticity');
legend2 label=('Quote volume');
proc gplot data = _p_&VAR;
symbol1 interpol=join value=dot height=3;
symbol2 interpol=join value=dot height=3;
symbol3 interpol=join value=dot height=3;
plot Elasticity*&VAR = PERIOD / legend = legend1 vaxis=axis1;
symbol4 interpol=none value = dot height=3;
symbol5 interpol=none value = dot height=3;
symbol6 interpol=none value = dot height=3;
plot2 QUOTES*&VAR = PERIOD / legend = legend2;
by NBIND CHANNEL;
run;
quit;
%mend sr_elas_plots;
我尝试过的其他事情
当我在情节和 plot2语句中有x * y = z绘图请求时,如何获得每种类型的3个系列?
答案 0 :(得分:3)
固定!从符号声明的文档深处:
控制连续的SYMBOL语句
如果指定连续编号的SYMBOL语句,则需要 SAS / GRAPH仅使用每个定义一次,使用颜色规范 确保每个SYMBOL语句只生成一个符号定义。
我所要做的就是为6个符号语句中的每一个添加一个color =选项,然后每个符号按照我预期的顺序使用一次。这当然是我遇到的SAS不那么直观的一个方面,温和地说。