公開日: 04/01/2021

ドリルダウングラフの作成

ドリルダウングラフとは、サムネールをクリックしたときに作成されるグラフです。ホバーラベルのグラフをクリックすると、新しいウィンドウにグラフが表示され、細かいところを確認する、データフィルタを変更するなどの操作が可能になります。たとえば、Ctrlキーを押しながらツリーマップのセルをクリックすると、データの詳細が表示されます(図12.48)。Altキーを押すと、新しいウィンドウを開くのではなく、最後に起動したウィンドウの内容を置き換えることができます。

「次の階層レベル」列プロパティを使うと、プリセットグラフでのカテゴリカルドリルダウンの動作を定義することができます。この列プロパティは、グラフレットによって起動される、現在のグラフのグループ変数のカテゴリから次のグラフのグループ変数のカテゴリへ、という1レベルのドリルダウンのみを定義します。

「次の階層レベル」列プロパティを定義しない場合は、データテーブルの中でフィルタに追加されていないカテゴリカルな列または名義尺度の列のリストが使用されます。

注:

「次の階層レベル」列プロパティは、[グラフレットの貼り付け]を使って定義したグラフレットで使用することはできません。[グラフレットの貼り付け]コマンドの詳細については、『JMPの使用法』グラフのカスタマイズを参照してください。

測定値がない場合、JMPは、データテーブルのものを取得しようとし、データテーブルに数値列がない場合は「度数」(または測定値なし)を使用します。

図12.48は、ツリーマップのセルでドリルダウンした様子を示します。

図12.48 ホバーラベルのドリルダウングラフの例 

Image shown here

次のスクリプトは、図12.48に表示されているツリーマッププリセットの単純バージョンを作成します。

Names Default To Here( 1 );
 
/* 与えられた列名のリストを調べ、ドリルダウンを可能にするチェーンを作成するような
	「次の階層レベル」列プロパティを定義する */
setHierarchy = Function( {dt, cols},
	{Default Local},
	nCols = N Items( cols );
	If( nCols < 2,
		Write( "\!NsetHierarchy:列の数が足りません!" ),
		col = Column( dt, cols[1] );
		For( i = 2, i <= nCols, i++,
			nextCol = cols[i];
			Try(
				Column( dt, nextCol ),
				Write( "無効な列名:" || nextCol );
				Throw();
			);
			// ここでEval()が必要
			col << Set Property( "次の階層レベル", Eval( nextCol ) );
			nih_name = col << Get Property( "次の階層レベル" );
col = Column( dt, "日付" );
		);
	);
);
 
// 「San Francisco Data.jmp」を開く
dt = Open( "$SAMPLE_DATA/San Francisco Crime.jmp" );
 
// データテーブルに「次の階層レベル」チェーンを追加する
setHierarchy( dt, {"警察管轄区域", "種類", "事件内容"} );
 
/* 階層の最初のレベル「警察管轄区域」に基づいたグラフビルダーツリーマップ */
gb = dt << Graph Builder(
	Size( 495, 440 ),
	Show Control Panel( 0 ),
	Variables( X( :警察管轄区域 ) ),
	Elements( Treemap( X ) )
);
 
// グラフフレームボックスへのハンドルを取得する
rpt = gb << Report;
frame = rpt[Framebox( 1 )];
 
/* グラフレット、つまりホバーラベルにグラフのサムネールを
	追加する拡張機能を構成する。サムネールをクリックすると、
	関連付けられているグラフが専用のウィンドウで表示される(Ctrlキーを押しながらクリックした場合は
	グラフがその場で置き換えられる)。*/
frame << Set Graphlet(
	// サムネールを定義し、ツリーマップを起動
	Picture(
		// 「次の階層レベル」列プロパティから次のグループレベルが取得される
		local:propColName = local:_groupings[1] << GetProperty( "次の階層レベル" );
		local:nextGrouping = Column( local:_dataTable, local:propColName );
 
		// サムネール用のグラフビルダーグラフを定義する
		Graph Builder(
			Size( 200, 250 ),
			Show Legend( 0 ),
			Show Title( 0 ),
			Show Footer( 0 ),
			Show Control Panel( 0 ),
			Variables( X( local:nextGrouping ) ),
			Elements( Treemap( X ) )
		);
	)
);
 
// グラフレットを表示する固定した注釈を追加
frame << Add Pin Annotation(
	Seg( TreeMapSeg( 1 ) ),
	Index( 2 ),
	Index Row( 7033 ),
	UniqueID( 581248018 ),
	FoundPt( {52, 248} ),
	Origin( {27.6544421487603, 200.14987244898} ),
	Tag Line( 1 )
);
より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).