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

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

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

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

図12.39 テキストレットの例 

Image shown here

図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 順序尺度,
			"Low", "やや濃い青",
			"Medium", "やや濃い赤",
			"High", "やや濃い緑"
		);
		// 他の列から現在の行の値を取得する
		local:progression = Column( local:_dataTable, "Y" )[local:_firstRow];
		local:BMI = Column( local:_dataTable, "BMI" )[local:_firstRow];
	),
	/* マークアップはリッチテキスト形式のテンプレートを定義する。太字、斜体などのフォントタグを含む、HTMLと同様のマークアップがサポートされる。括弧({})に囲まれた変数参照は、実際の値に置き換えられる。*/
	Markup(
		"{local:gender}患者、{local:_age}歳、BMI={local:BMI} 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 順序尺度,
			"Low", "やや濃い青",
			"Medium", "やや濃い赤",
			"High", "やや濃い緑"
		);
		// 他の列から現在の行の値を取得する
		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()を使うと、ホバーラベルの幅をピクセル数で指定することができます。

Width( 300 )

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

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