J'essaie d'afficher les marqueurs sur mon graphique en utilisant le langage de modèles graphiques. J'ai essayé d'ajouter les définitions de marqueurs au style, à l'instruction seriesplot dans une instruction d'option markerattrs=
, et également en utilisant discreteattrmaps pour le groupe de graphiques. Je n'arrive pas à faire fonctionner ces approches.Affichage des marqueurs sur un graphique de séries à l'aide du GTL
définition Style:
proc template;
define style excel;
parent=styles.htmlblue;
class graph /attrpriority='none';
style graphdata1/contrastColor=#416FA6;
style graphdata2/contrastColor=#A8423F;
style graphdata3/contrastColor=#86A44A;
style graphdata4/contrastColor=#8064A2;
style graphdata5/contrastColor=#DA8137;
style graphdata6/contrastColor=#D7E4BD;
style graphdata7/contrastColor=#FCD5B5;
style graphdata8/contrastColor=#8EA5CB;
style graphdata9/contrastColor=#E6B9B8;
style graphdata10/contrastColor=#CCC1DA;
end;
run;
Modèle pour le tableau:
proc template;
define statgraph excel_series_trended;
dynamic _date _class _metric _title;
begingraph;
entrytitle halign=center _title;
discreteattrmap name="symbols"/ignorecase=true ;
value "IBM"/markerattrs=(color=blue symbol=diamondfilled) ;
value other/markerattrs=(color=red symbol=circlefilled) ;
enddiscreteattrmap ;
discreteattrvar attrvar=groupmarkers var=stock attrmap="symbols" ;
layout lattice/rowdatarange=data columndatarange=data rowgutter=0 columngutter=0;
layout overlay/walldisplay=(fill)
yaxisopts=(griddisplay=on gridattrs=(pattern=2 color=Cx999999) linearopts=(viewmin=0))
xaxisopts=(type=discrete );
seriesplot x=_date y=_metric/group=_class markercolorgroup=_class name='series' groupdisplay=overlay connectorder=xaxis lineattrs=(pattern=solid thickness=3);
endlayout;
sidebar/align=bottom spacefill=false;
discretelegend 'series'/opaque=true border=false halign=center valign=center displayclipped=true order=rowmajor;
endsidebar;
endlayout;
endgraph;
end;
run;
Render le graphique à l'aide du jeu de données sashelp.stocks
:
ods html style=excel;
ods graphics/antialias=on antialiasmax=999999;
proc sgrender data=sashelp.stocks template=excel_series_trended;
where date between '01jan2005'd and '01jun2005'd;
dynamic _date="date" _metric="high" _class="stock";
run;
Pour votre information, la façon dont je résolu ce problème (comme je ne l'avais pas rappelé la réponse non plus) était de courir 'sgplot' et utilisez l'option 'tmplout' pour voir ce que SGPLOT ferait. – Joe
Merci Joe. Je ne suis pas très familier avec sgplot et je n'ai pas réalisé qu'il avait cette option. Bon à savoir. –
Ouais, c'est super pratique car j'ai souvent eu du mal à trouver comment faire quelque chose en GTL que SGPLOT a fait facilement. C'est ennuyeux que l'option similaire n'existe pas dans 'SGPANEL'. – Joe