過去の投稿に画像リンク切れ多数ありご迷惑おかけしています.

グラフの話は続くよ

JMP
ここ暫くグラフの話が続いていて,そろそろ飽きてきました.違う話題に切り替えたいのですが,前回のお話で訂正しなければならないことがあるので,今週もグラフ背景の続きです.グラフビルダーでグラフ背景に画像を貼り付ける方法をお話しした際,分析プラットフォームのグラフでは貼り付けることはできるけれど,グラフサイズ一杯に引き延ばすコマンドがないので工夫が必要だと書きました.具体的には先に画像サイズを調整するなどの工夫をすれば良いわけです.ですが,JSLを使うとこのようにできることが判明しました.

このヒストグラムは「一変量の分布」で作成したものです.参考までコードを以下に示します.あくまでも機能検証用で良いコードではないことご容赦ください.お試しいただくならば自己責任でお願いします.

dt =Open(“$SAMPLE_DATA/Iris.jmp”);
pfm =Distribution(
Stack( 1 ),
Continuous Distribution(
Column( :Sepal length ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Outlier Box Plot( 0 )
),
SendToReport(
Dispatch(
{“がくの長さ”},
“Distrib Histogram”,
FrameBox,
{Frame Size( 300, 300 ), Transparency( 0.5 ),
DispatchSeg(
Hist Seg( 1 ),
{Line Color( {87, 56, 112} ), Fill Color( “Light Blue” )}
)}
)
)
);
img =Open(“$SAMPLE_IMAGES/***.png”, png );
Report(pfm)[FrameBox(1)] << Add Image( Image( img ) );
imgseg = Report(pfm)[FrameBox(1)] << FindSeg( PictSeg( 1 ) );

imgseg << FillGraph;


注意として画像はサンプルデータライブラリと同じ階層に「イメージ」というフォルダがあるのでそこに入れておきます.画像のファイル名は「***.png」になっているのでここを書き換えてください.他の画像形式でもOKです.このスクリプトでは「iris.jpg」の「がくの長さ」のヒストグラムを描いています.また,JMPくんが見えるように棒の色を変えて透明度も下げています.

実は,この挙動はプラットフォームで異なるようです.というのも,「二変量の関係」では,グラフビルダーと同じくグラフ背景の右クリックメニューに「イメージ」メニューがあるのを見つけました.その下にちゃんと「グラフサイズに合わせる」というコマンドもあります.試しに実行したのがこの図です.因みに,手元にIrisの写真がなかったので水仙の写真で代用しています.かなり見にくいので全くおすすめしませんが,機能検証用ということでご容赦ください.

 
他のプラトフォームではどうなのかと調べると「多変量の相関」の「散布図行列」でも同様にできました.この場合,個々の散布図に独立に画像を貼れますので,アイデア次第では面白いグラフが書けそうです.「一変量の分布」で同じことができないことの理由がわかりませんが,プラットフォームによってメニューが異なる方がプログラムとしては複雑なので,わざとこういう仕様にしているのかもしれません.再描画で内部的に問題が起こるのを回避しているとか,そんな理由でしょうか.

可視化のグラフではこのようなチャートジャンクは排除すべきで,視覚化のグラフでもお勧めしないとは書きました.ですが,この建前に捕らわれないのがJMP流ではありませんか.言っていることが矛盾しているかもしれませんが,JMPは使って楽しくあるべきで,グラフも描いて楽しいことが一番です.使用する相手,場所,目的などに配慮すれば,例えばこのようにJMPくんに外れ値を差し棒で示してもらったりしたグラフなど効果的ですよね.

 
もちろん,パワーポイントに貼るならば,そこで加工すれば済む話ですが,JMPのテーブルを使ってデモしながら説明する場合など,こういうグラフを緑三角に格納しておけば便利です.ジャーナルに使えば相手がアッと驚く効果もあります.実務におけるデータ分析の目的はそれによって行動を起こすことにあります.そこには交渉の場があって,相手の心理をつかむことも重要です.少なくとも相手はこのグラフを覚えていてくれる可能性は高いです.やりすぎると逆効果になるので,そうならない範囲でお試しください.
それではまた.

参考までに,「二変量の分布」で「一元配置」のグラフを書く際のスクリプトも下記しておきます.

dt =Open(“$SAMPLE_DATA/Iris.jmp”);
pfm = Oneway(
Y( :Sepal width ),
X( :Species ),
Points( 0 ),
Box Plots( 1 ),
X Axis Proportional( 0 ),
Grand Mean( 0 ),
Legend( 0 ),
SendToReport(
Dispatch(
{},
“Oneway Plot”,
FrameBox,
{DispatchSeg(
Box Plot Seg(1 ),
{Confidence Diamond( 0 ), Line Color( “Red” )}
), DispatchSeg(
Box Plot Seg(2 ),
{Confidence Diamond( 0 ), Line Color( “Red” )}
), DispatchSeg(
Box Plot Seg(3 ),
{Confidence Diamond( 0 ), Line Color( “Red” )}
)}
)
)
);
img =Open(“$SAMPLE_IMAGES/***.png”, png );
Report(pfm)[FrameBox(1)] << Add Image( Image( img ) );
imgseg = Report(pfm)[FrameBox(1)] << FindSeg( PictSeg( 1 ) );

imgseg << FillGraph;

統計的問題解決研究所

コメント