2020年3月1日日曜日

棒グラフをsgplotで出す話

ある日質問されて答えられなかったのでここに供養します.ピンとこなかった自分が悲しい.

sgplotで棒グラフを書く時のサンプルです.vbarステートメントを使って出力するのですが,詳細は以下のプログラムの通りです.あんまり凝ったことしてなくほんとにただの紹介なのであまり目新しいことはないですが...軸ラベルが適当ですみません

変数Yの平均値を書いているのですが,オプションでmeanを指定すればOKなのと,標準偏差のヒゲをはやしているのですがこれもオプションで書けます.わざわざ出力用データセットに平均値と標準偏差を持たなくて良いのは楽ですね.確認の具合もあるので何でもかんでもオプションで出せばいいという訳ではありませんが…データに持たせた標準偏差を使ってヒゲをannotateで書かそうとする奴は敵です.

/*以下プログラム*/

data HOGE;
    call streaminit(12);
    do i = 1 to 10 ;
        Y = int(rand('uniform') *100) ;
        if 1 <= i <= 5  then GR = 1 ;
        if 6 <= i <= 10 then GR = 2 ;
        output;
    end;
run;

ods graphics / imagename="bar" imagefmt=png ;
ods listing gpath = "hogehoge" ;
ods html close ;

proc sgplot data = hoge noautolegend nowall noborder ;
    styleattrs datacolors = (gray white) ;
    vbar GR / group = GR groupdisplay = cluster
              response = Y stat = mean nozerobars   /*Yの平均値の棒を立てる*/
              barwidth = 0.5
              limits = upper limitstat = stddev          /*Yの標準偏差のひげを生やす*/
    ;
    xaxis type=DISCRETE ;                              /*不要*/
run ;

ods graphics / reset = all ;
ods html ;

0 件のコメント:

コメントを投稿