テキストレットは、グラフのホバーラベルにリッチテキスト形式のテキストを追加します。テキストレットを使うと、データを文章で説明したり、重要な情報を太字や色を使って強調したりできます。
Figure 12.39のテキストレットは、グレーのボックスを使い、テキストの一部を赤色で強調しています。
図12.39 テキストレットの例
Figure 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()は、ホバーラベルのリッチテキストに使用される変数を定義します。
...
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()は、一連のHTMLタグを使ってリッチテキスト形式の文のテンプレートを指定します。区切り文字で囲んだJSL変数参照を含めることができます。デフォルトの区切り文字は、中括弧({})です。
...
Markup(
"{local:gender}患者、{local:_age}歳、BMI={local:BMI}
の病状の進行は<font color='{local:color}'><b>{local:_Y Ordinal}</b></font>
(<i>{local:progression}</i>)"
);
インターフェースでは、Markupは「HTMLマークアップ」と呼ばれ、テキストレットの[マークアップ]タブにあります。
使用できるフォント書式タグについては、『JMPの使用法』のテキストレットでサポートされているHTMLタグを参照してください。
Delimiters()は、マークアップエリアで置換対象である変数を示す区切り文字を指定します。たとえば、スクリプトにC++コードが含まれる場合は、JMP変数に角括弧の区切り文字を使用するとよいでしょう。
Delimiters( "[]" )
インターフェースでは、Delimitersは「区切り文字」と呼ばれ、テキストレットの[その他]タブに表示されます。
Width()を使うと、ホバーラベルの幅をピクセル数で指定することができます。
Width( 300 )
インターフェースでは、Widthは「幅」と呼ばれ、テキストレットの[その他]タブにあります。