JSL を使用してグラフ ビルダーでスケール ボックスの y 軸を動的に参照する方法<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />さらに言えば、どこでも。
私は仕事のためにいくつかの専門的なグラフを生成する関数を書いています。 キャンバス上に追加の描画を行っているので、すべてが収まるようにグラフを Y 軸で再調整する必要があります。 これは、プロットしているすべての点の最大値と最小値を取得し、それら (+/- 5%) を上限値と下限値として設定することで実現できます。 ただし、変更を有効にするには、軸ラベルを呼び出す必要があります。 インデックス番号を試してみました。 名前を変数として保存し、その変数を呼び出してみました。 私の試みはどれもうまくいかないようで、ドキュメントはこのトピックに関して包括的ではありません。
例:
グラフビルダー内でレポートに送信すると、次のようになります。
| | 急送({}、 |
| | | "軸名", |
| | | スケールボックス、 |
| | | {Format( "Fixed Dec", 15, 0 ), Min( llim ), Max( ulim ), |
| | | Inc( 1 )、マイナー ティック( 1 )} |
| | )、 |
これを関数内で動作させるには、現在、名前をハードコーディングする必要があります。 どのようなグラフをプロットしているかに関係なく、動的に更新したいと考えています。
何かの影響で
| | 急送({}、 | |
| | | Y軸、 |
| | | スケールボックス、 |
| | | {Format( "Fixed Dec", 15, 0 ), Min( llim ), Max( ulim ), |
| | | Inc( 1 )、マイナー ティック( 1 )} |
| | )、 | |
私が探しているものです。
Re: JSL を使用してグラフ ビルダーでスケール ボックスの y 軸を動的に参照する方法Jim の例の続きとして、XPath() を使用してレポート内のすべての AxisBox のリストを取得できます。次に、リストをループして、必要に応じて必要な変更を加えることができます。以下は XPath() を示し、For ループで各軸を単純に選択します。
/* レポート内のすべての AxisBox のリストを取得します */
gb軸=報告(ギガバイト) << XPath ( "//軸ボックス" ) ;
/* それぞれをループして、それぞれがどの軸を参照しているかを確認します */
のために(私= 1 、私<= N 個のアイテム( gb軸) 、私++、
gb軸[私] <<選択する;
待って( 1 ) ;
) ;
これがお役に立てば幸いです!
ウェンディ
Re: JSL を使用してグラフ ビルダーでスケール ボックスの y 軸を動的に参照する方法これで私の問題は完全に解決されました。 ありがとうジム。 私の関数は、共有できるほど汎用的なものにするという作業がまだ進行中ですが、それがわかったら、十分に汎用的なものにしたら、ここに JMP コミュニティに投稿するつもりです。
疑問に思っている人のために言っておきますが、私の問題は、レポートが完全に生成される前に、レポート内でレポートを参照しようとしていたことだと思います(間違っているかもしれませんが)。
Re: JSL を使用してグラフ ビルダーでスケール ボックスの y 軸を動的に参照する方法グラフ ビルダーでの軸の識別に関して興味深い質問があります。グラフ ビルダーが使用する軸の構造を調べてみましたが、使用できる構成があるようです。

上記のグラフ ビルダー チャートには 1 つの Y 軸と複数の X 軸があります。私が試したグラフの構造では、常に軸 1 を最初の X 軸として使用し、軸 2 と最初の Y 軸を使用しました。そのため、以下のコードを使用すると、グラフの種類を変更しても、軸番号は変わりませんでした。
デフォルトの名前はここにあります( 1 ) ;
dt =開ける( "$SAMPLE_DATA/半導体能力.jmp" ) ;
ギガバイト=グラフビルダー(
サイズ( 593 、 526 ) 、
コントロールパネルを表示( 0 ) 、
変数( X( : PNP1) 、 Y( : NPN1) 、グループX( :サイト ) ) 、
要素( ポイント( X 、 Y 、伝説( 5 )) 、スムーサー( X 、 Y 、伝説( 6 ) ) )
) ;
報告(gb)[軸ボックス( 1 )] <<分( 150 ) ;
Axis Box(2) 参照により Y 軸が変更されます。
軸ボックス 3、4、5、6 もあり、これらは表示されている他の 5 つの X 軸です。

この例では、Y 軸に 2 番目の変数を追加していますが、軸ボックス(1) は依然として最初の X 軸であり、軸ボックス(2) は一番上の列「PNP4」の Y 軸です。一方、軸ボックス( 3) は、「NPN1」列の Y 軸です。
デフォルトの名前はここにあります( 1 ) ;
dt =開ける( "$SAMPLE_DATA/半導体能力.jmp" ) ;
GB =グラフビルダー(
サイズ( 593 、 526 ) 、
コントロールパネルを表示( 0 ) 、
変数( X( : PNP1) 、 Y( : PNP4) 、 Y( : NPN1) 、グループX( :サイト ) )) ;
RT した場合は、灰色の拡張三角形をクリックして選択します。
編集==>ツリー構造を表示
使用しているグラフの軸ボックスの構造を決定できる必要があり、正しい軸ボックスを参照する方法をプログラムで決定できるようになります。
Re: JSL を使用してグラフ ビルダーでスケール ボックスの Y 軸を動的に参照する方法個々の軸オブジェクトにアクセスした後、次のタスクは、どの軸がどの「軸」に属しているかを調べることです。
最初の軸は x 軸ですか、それとも y 軸ですか。
他のプロット タイプについてはどうでしょうか?グラフ ビルダー ボックスとグラフ ボックスでも同じロジックが当てはまりますか?
この願いを見てください:
JSL経由でレポートから結果を取得しやすくする
レポートから結果を取得するだけでなく、レポートを調整する方法も簡素化できます。
急送コマンドは十分に装備されており、 「X タイトル」などの情報を直接使用して、メッセージの送信先を制御できます。
SendToReport( Dispatch( {}, "X title", TextEditBox, {Set Text( "xxx" )} ) )
Xパスの場合、これはまだ可能ではないようです...