[英]How to generate Histograms graph on time series in SAS using proc template
我有一個包含兩個時間序列數據的數據集。 一個是y,另一個是y。 我想在一張圖中繪制兩個系列的過度直方圖圖形。
data a;
input y haty;
datalines;
2 2.1
2.12 2.24
2.3 2.5
3.1 3.1
1.23 0.98
;
run;
我有一個示例代碼,用於定義覆蓋兩個直方圖的模板。
proc template;
define statgraph dualhist;
begingraph;
entrytitle "Graph"; /** optional title **/
layout overlay / xaxisopts=(label="Length");
/** first plot: a histogram **/
histogram y / name="Y"
binwidth=5;
/** second plot: a semi-transparent histogram **/
histogram haty / name="Predicted Y"
binwidth=5 datatransparency=0.7
fillattrs=(color=GraphData2:color);
/** optional: add legend by specifying names **/
discretelegend "y" "haty";
endlayout;
endgraph;
end;
run;
proc sgrender data=a template=dualhist;
run;
我需要有關狀態圖的幫助,尤其是對於x軸。 我希望y軸成為y和haty的值。
目前尚不清楚您想要什么,但是這里有一些示例可能會有所幫助。
/* SIMPLE HISTOGRAM */
/* Overlayed histogram with counts.
Custom intervals can be set with the binstart= and
binwidth= options */
proc sgplot data = a;
histogram y/ scale = count;
histogram haty / transparency = 0.7 scale = count;
run;
/* VIRTICAL HISTOGRAM */
/* Use proc univariate to bin data */
proc univariate data = a noprint;
histogram haty y / noplot outhistogram = b;
run;
/* Get the counts for each variable in a separate column */
data c;
merge
b (where = (_var_ = "y"))
b (where = (_var_ = "haty") rename = (_count_ = _count_hat));
by _midpt_;
drop _var_ _obspct_;
run;
/* Plot the histogram on its with horizontal counts */
proc sgplot data = c;
hbar _midpt_ /
response = _count_
legendlabel = "Y"
barwidth = 1;
hbar _midpt_ /
response = _count_hat
legendlabel = "Predicted Y"
barwidth = 1
transparency = 0.7;
xaxis integer;
run;
/* BAR CHART OF DATA */
/* This should be a scatter or series plot, not bars! */
/* Add an id variable */
data d;
set a;
ID = _N_;
run;
proc sgplot data = d;
vbar ID / response = y;
vbar ID / response = haty transparency = 0.7;
run;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.