JSL (グラフビルダー) で凡例名を変更するにはどうすればよいですか?CSV ファイルで大量のデータ (多数の列、多数の行) を取得し、グラフの生成を標準化するために JSL の基本テンプレートに取り組んでいます。 (軸のスケール変更、軸の名前変更、線の色の標準化など) 平均して 1 日に 1 つの CSV ファイルを取得できるので、データを JMP データ テーブルに配置し、スクリプトを実行して、グラフ出力をすべて自動化したいと考えています。
私の JMP ファイルには、デフォルトでタグ名が列ヘッダーとして含まれていますが、これはグラフの凡例としてはまったく役に立ちません。 回避策の 1 つは、すべての列の名前を変更することかもしれませんが、タグ名はそのままにして、凡例設定でテキストを直接操作したいと考えています。 (ただし、手動ではなく JSL を使用して行われます。)
たとえば、凡例ボックスに簡単にアクセスできます。
gbR = gb << Report; // gbR << Show Tree Structure;
s = gbR[legendbox(1)];
s << Set Title("new title");添付の PNG にアイデアが表示されます。
私が今行き詰まっているのは、凡例ボックス内のテキスト (タイトルを除く) にアクセスして、JSL を使用してテキストを操作したり変更したりする方法です。
グラフ ビルダーによって生成されたスクリプトには「凡例モデル」と「レベル名」が記載されていることがわかりましたが、何度試しても成功しませんでした。
これに関するご指導をいただければ幸いです。
前述したように、JSL を使用して凡例テキストにアクセスしてデフォルトから変更するにはどうすればよいでしょうか?
ありがとう。
マスカスタマイゼーションRe: JSL (グラフ ビルダー) で凡例名を変更するにはどうすればよいですか?5月これブルートフォーススクリプトから@txnelsonレベルアイテムのテキストに対して同様のことを行うのに役立つかもしれません。 このスレッドのスクリプトでは、特定のレジェンド アイテムを表示しないことについて説明していますが、レベル アイテムの式内で同様の戦略を使用することもできます。
Re: JSL (グラフ ビルダー) で凡例名を変更するにはどうすればよいですか?スクリプトで実行したい場合は、まさにその方法で (式を使用して) 実行する必要があると思います。 グラフのスクリプトを保存し、括弧内に入力されたレベル名を解析して抽出し、これらを置換することもできます。 次に、変更したスクリプトを再入力/再実行します。 こうすることで、シナリオごとに毎回手動で定義するのではなく、変更すべき内容に反応する非常に一般的なスクリプトを作成できるようになります。 ただし、やるべきことはさらに多くあります。
利用可能な凡例プロパティには、プロパティとしてテキストが含まれていないようです。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) )
);
r = Report( gb )[LegendBox( 1 )];
r << get properties();
/*
["Background Color" => 2147483647,
"Border" => {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}, "Enabled" => 1,
"Horizontal Alignment" => "Default",
"Margin" => {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}, "Padding" => {Left( 0 ),
Top( 0 ), Right( 0 ), Bottom( 0 )}, "Text Color" => 2147483647,
"Vertical Alignment" => "Default",
"Visibility" => "Visible"]
*/
そして、あなたが使用する場合
r << legend settings
OK/キャンセルボタンを押すまで、JMP でのアクションをブロックするウィンドウが表示されます。 したがって、そのウィンドウの内部にはアクセスできません。 これが可能であるかどうかという私の疑問をさらに強めているのは、凡例のツリー構造を手動で変更したかどうかに関係なく、依然として「Mean(...)」と表示されていることです。 したがって、最初のラベルの上に何かが隠されているようです。 それとも他の理由でしょうか...
を追加してくださいウィッシュリストコメントなので、凡例テキストの変更は JSL で変更可能です。さらに、テクニカル サポートにも送信することをお勧めします ( support@jmp.com )。 優先順位が高くなる可能性が高まるため、理由を説明することを忘れないでください。 ありがとう
Re: JSL (グラフ ビルダー) で凡例名を変更するにはどうすればよいですか?ごめんなさい。 これは JMP 16 の新機能です。 それが追加されたばかりで、JMP 15 では利用できないとは知りませんでした。 JMP 16 が利用可能になるまで、最初の方法を試す必要があります。 改めて、誤報についてお詫び申し上げます。
Re: JSL (グラフ ビルダー) で凡例名を変更するにはどうすればよいですか?親愛なるポール様
添付の PNG には、構文を使用した場合と使用しない場合のグラフ ビルダーの出力が表示されます。
lgnd = gb << Get Legend Display;
item1 = lgnd << Get Item( 4, 1 );
item1 << Set Label("Line 1");
item2 = lgnd << Get Item( 4, 2 );
item2 << Set Label("Line 2");凡例のテキストに違いはありません。構文のロジックに従いますが、その効果は見られません。
2 番目の PNG には、完全な構文を実行した後に表示されると考えていたものが表示されます。
まだこれを調査して方法を教えていただける場合は、大変感謝いたします。 ありがとう、スコット。
Re: JSL (グラフ ビルダー) で凡例名を変更するにはどうすればよいですか?これは別の可能性です:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) )
);
lgnd = gb << Get Legend Display;
item1 = lgnd << Get Item( 4, 1 );
item1 << Set Label("Line 1");
item2 = lgnd << Get Item( 4, 2 );
item2 << Set Label("Line 2");
Get Items の最初の数値は、グラフ ビルダーの Legend パラメーターの値です。 2 番目の数値は、その凡例へのインデックスになります。 常にすべての凡例が表示されるわけではないため、これらの数値を正しく把握するのが難しい場合があります。 凡例の完全なリストを確認したい場合は、凡例の設定に移動してください。
Re: JSL (グラフ ビルダー) で凡例名を変更するにはどうすればよいですか?ありがとう。 はい、確かに可能です。 さまざまなグラフを念頭に置いているため、凡例テキストに必要な名前を取得するには変数が必要になると思いますか?
たとえば、グラフ ビルダーの構文の例は次のとおりです。
_Legend1 = "abcd";
_Legend2 = "efgh";
その場合、変数の使用を管理するには以下を使用する必要がありますか?
Eval(
Substitute(
Expr(
最後に、このオプションは凡例テキストをより「直接」操作する唯一の方法でしょうか?
Re: JSL (グラフ ビルダー) で凡例名を変更するにはどうすればよいですか?グラフビルダースクリプトで次のようなことを行うことは可能でしょうか。
Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
4,
Level Name( 0, "abcd", Item ID( "Mean(height)", 1 ) ),
Level Name( 1, "efgh", Item ID( "Mean(weight)", 1 ) )
)}
),
Dispatch( {}, "400", LegendBox, {Set Title( "My Title" )} )
)
);Re: JSL (グラフ ビルダー) で凡例名を変更するにはどうすればよいですか?明らかなことを見逃していないことを確認していただきありがとうございます。
残念ながら、「Value Labels」が私が達成したいことをどのように実現できるのかわかりません(または理解できません)。 ある程度の私の目的は、列名を効果的に変更することであり、列タイトルの下の行にあるデータ値を操作することではありません。
テキストにいくつかの値を含む単純なテーブルを作成した場合、特定の列に「Set Name」を使用すると、たとえば「Column(dt, 1) << Set Name("New name");」のように凡例が変更されます。この 1 行の構文により、列 1 のデータのテキストが更新され、「新しい名前」になります。
実際のデータのグラフには、「Mean(…タグ名…)」というタイプの凡例テキストがあります。 実際のデータで << Set Name を使用すると、「Mean(… 列名 …)」が含まれるため、依然として問題のある凡例テキストが表示されます。
特定の列の凡例テキストを操作する方法に関するアイデアがあれば、ぜひ知っておいてください。 おそらく、そのような「自作」凡例のすべてのプロパティにアクセスして操作できるように、凡例をゼロから作成しているだけかもしれません。 新しいグラフを作成するたびに(おそらく毎日)手動で注意を払う必要があるものではなく、スクリプト化されたものであることを望みます。
Re: JSL (グラフ ビルダー) で凡例名を変更するにはどうすればよいですか?Legend Box() のスクリプト インデックスの詳細には、凡例内の実際のラベルの変更を許可するメッセージが表示されません。 ただし、凡例の値はデータ テーブルの値から直接得られるため、データ テーブルの値を変更または再コード化するか、「値ラベル」列プロパティを設定するだけで済みます。