スクリプトガイド > スクリプトによるグラフ作成 > ホバーラベル > テキストレットを使ってホバーラベルにリッチテキストを追加する
公開日: 11/25/2021

テキストレットを使ってホバーラベルにリッチテキストを追加する

テキストレットは、ホバーラベルにリッチテキスト形式のテキストを追加します。テキストレットを使うと、データを文章で説明したり、重要な情報を太字や色を使って強調したりできます。

図12.39のテキストレットは、グレーのボックスを使い、テキストの一部を赤色で強調しています。

図12.39 テキストレットの例 

Textlet Example

図12.39のテキストレットは、次のようなスクリプトで作成できます。

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Diabetes.jmp" );
 
// ベースとなるグラフを作成する
gb = dt << Graph Builder(
	Size( 534, 456 ),
	Show Control Panel( 0 ),
	Variables( X( :年齢 ), Y( :LDL ), Overlay( :Y 順序尺度 ) ),
	Elements( Points( X, Y, Legend( 8 ) ), Line Of Fit( X, Y, Legend( 10 ) ) )
);
 
// グラフのフレームボックスへのハンドルを取得する
rpt = gb << Report;
frame = rpt[Framebox( 1 )];
 
/*ホバーラベルの拡張機能であるテキストレットにより
	リッチテキスト形式の文章を追加する*/
frame << Set Textlet(
    /* "Setup"は、ホバーラベル実行コンテキスト変数を使って
		リッチテキスト形式の文章に組み込む
		内容を定義する。*/
	Setup(
		// 数値をテキストにマッピング
		local:gender = If( Column( local:_dataTable, "性別" )[local:_firstRow]
			== "1",
			"男性",
			"女性"
		);
		// カテゴリカルな値をテキストの色にマッピング
		local:color = Match( local:_Y Ordinal,
			"Low", "Medium Dark Blue",
			"Medium", "Medium Dark Red",
			"High",  "Medium Dark Green"
		);
		//現在の行の、他の列の値を取得する
		local:progression = Column( local:_dataTable, "Y" )[local:_firstRow];
		local:BMI = Column( local:_dataTable, "BMI" )[local:_firstRow];
	),
	/*  Markupはリッチテキスト形式のテンプレートを定義する。太字、斜体などのフォントタグを含む、HTMLと同様のマークアップがサポートされている。括弧({})に囲まれた変数への参照は、実際の値に置き換えられる*/
	Markup(
		"{local:gender}患者、{local:_age}歳、BMI={local:BMI}
		の病状の進行は<font color='{local:color}'><b>{local:_Y Ordinal}</b></font>
		(<i>{local:progression}</i>)"
	)
);
// テキストレットを使ってリッチテキスト形式の文章を挿入したホバーラベルを、表示したままにする
frame << Add Pin Annotation(
	Seg( Marker Seg( 2 ) ),
	Index( 64 ),
	Index Row( 344 ),
	UniqueID( 568154464 ),
	FoundPt( {96, 222} ),
	Origin( {18.68125, 156.93706122449} ),
	Tag Line( 1 )
);

テキストレットのコマンド

テキストレットの式の書き方は、テキストレットを使ってホバーラベルにリッチテキストを追加するの例を参照してください。

Setup(セットアップ)

Setup()は、ホバーラベルのリッチテキストに使用される変数を定義します。

...
frame << Set Textlet(
    /* "Setup"は、リッチテキスト形式の文に使うために、
		ホバーラベル実行コンテキスト変数を定義する
		内容を定義する。*/
	Setup(
		// 数値をテキストにマッピング
		local:gender = If( Column( local:_dataTable, "性別" )[local:_firstRow]
			== "1",
			"男性",
			"女性"
		);
		// カテゴリカルな値をテキストの色にマッピング
		local:color = Match( local:_Y Ordinal,
			"Low", "Medium Dark Blue",
			"Medium", "Medium Dark Red",
			"High", "Medium Dark Green"
		);
		//現在の行の、他の列の値を取得する
		local:progression = Column( local:_dataTable, "Y" )[local:_firstRow];
		local:BMI = Column( local:_dataTable, "BMI" )[local:_firstRow];
	)
...

インターフェースでは、Setupは「JSL変数」と呼ばれ、テキストレットの[マークアップ]タブにあります。

Markup(マークアップ)

Markup()は、一連のHTMLタグを使ってリッチテキスト形式の文のテンプレートを指定します。区切り文字で囲んだJSL変数参照を含めることができます。デフォルトの区切り文字は、中括弧({})です。

...
Markup(
		"{local:gender}患者、{local:_age}歳、BMI={local:BMI} BMI
		の病状の進行は<font color='{local:color}'><b>{local:_Y Ordinal}</b></font>
		(<i>{local:progression}</i>)"
	)

インターフェースでは、Markupは「HTMLマークアップ」と呼ばれ、テキストレットの[マークアップ]タブにあります。

使用できるフォント書式タグについては、『JMPの使用法』のテキストレットでサポートされているHTMLタグを参照してください。

Delimiters(区切り文字)

Delimiters()は、マークアップエリアで置換対象である変数を示す区切り文字を指定します。たとえば、スクリプトにC++コードが含まれる場合は、JMP変数に角括弧の区切り文字を使用するとよいでしょう。

Delimiters( "[]" )

インターフェースでは、Delimitersは「区切り文字」と呼ばれ、テキストレットの[その他]タブに表示されます。

桁数

Width()を使うと、ホバーラベルの幅をピクセル数で指定することができます。

Width( 300 )

インターフェースでは、Widthは「幅」と呼ばれ、テキストレットの[その他]タブにあります。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).