設定を使用しますか?ファイル/環境設定から、Jmp の標準設定を変更できます。
Jmpをニーズに合わせて調整できるのはとても便利です:)
しかし、JSL コードを自動的に生成する機能 (スクリプトへの保存、高度なログ、ダッシュボード、ログ、ワークフロー ビルダーなど) との組み合わせで、微妙な問題が見つかりました。
以下のコードは設定を変更するので、試してみる場合はよく考えてください。
物語:
ユーザーは、ファイル/環境設定からいくつかの設定(条件と列スイッチャーの軸保持設定)を調整します。
- 次に、デフォルト設定でレポートを生成します (これを手動で行う必要があり、拡張ログを介してコードを生成する機会はありません)。
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Set Preferences(
Data Filter Conditional( 1 ),
Column Switcher Retain Axis Setting( 1 )
);
Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Conditional(0),
Add Filter(
columns( :sex, :name )
)
),
Column Switcher( :weight, {:age, :weight}, Retain Axis Settings( 0 ) )
)次に、GUI を介してレポートをインタラクティブに調整し、スクリプトを保存します (JMP の拡張ログ機能を使用)。
生成されたスクリプトは次のようになります。
Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Add Filter(
columns( :sex, :name ),
Display( :name, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
Column Switcher( :weight, {:age, :weight} )
)ご注意ください:
条件(0) ->自動的に削除されます!
Retain Axis Settings( 0 ) -> removed automatically!
The finding:
Default settings are automatically removed from the code - "標準システムには影響がないため".
ダッシュボード内でレポートを使用する場合も同様のことが起こります (!) - デフォルト設定は追加されません。
ここで、ユーザーはコードを再度実行します。レポートがどのように表示されるか想像してみてください...
なぜそうなるのかは理解できます。これはバグではなく、Jmp がコードを自動的にクリーンアップして不要な行を削除するという優れた機能です。
しかし、ユーザーがあえて設定を変えようとすると、間違いなくバグのように動作します。深刻なバグです。
私の現在の回避策:デフォルト設定を絶対に (!!!) 使用しないことが確実な場合は、設定を変更するだけです。
このルールは、特に 99% のケースで調整された設定を使用し、1% のケースでデフォルト設定を使用する場合に、大きな問題となります。
次に、ルールにより設定を調整できなくなります。デフォルト設定のまま使用せざるを得なくなり、99% のケースで手動で設定を調整する必要があります。
もっと良い解決策はあるでしょうか?あなたは日々の仕事の中でこの問題をどのように解決しますか?
自動化とスクリプトRe: 環境設定を使用していますか?Jmp サポート (TS-00061254) によると:
これは設計どおりに機能しています。
それで:
設定が変更されていると、ユーザーはダッシュボード ビルダーを使用して、標準設定でシステム上のプラットフォームを開くダッシュボードを生成する機会を失います:(
回避策:
ダッシュボードのソース スクリプトを開き、標準設定のコードを手動で追加します。
Re: 環境設定を使用していますか?Jmp サポートは、ウィッシュリストに投稿することを提案しました。
ここにあります:
環境設定の設定を変更 -> 問題を修正
Re: 環境設定を使用していますか?@hogi 、あなたのコードを試してみて、あなたが何を意味するのかを確認しました。フィルターと列スイッチャーの設定を変更し、(現在の設定ではなく) 設定のデフォルトと一致する選択肢を使用してレポートを作成します。そうすれば、スクリプトを保存する際に、デフォルトと一致する設定をわざわざ含めることがなくなるため、スクリプトによってレポートが再現されなくなります。そして、あなたは、これは、システムをデフォルトの設定のままにしていた場合に不要になるものを意図的に削除することを意図していると解釈していますか(そしてサポートは主張していますか?)?つまり。 Conditional(0) が含まれていないのは、現在は関連しているにもかかわらず、デフォルト設定があれば必要ないからですか?
しかし、それはグラフ ビルダー自体の設定に見られるものではありません。たとえば、タイトルを表示しないようにグラフ ビルダーの設定を変更し、グラフ ビルダーを作成して (JSL または事後手動で) タイトルを表示するように要求すると、showtitle(1) が含まれたスクリプトが取得されます。 。 Conditional(0) は一種の冗長な設定であり、デフォルトの環境設定を使用している場合には不要な設定と見なすことができます。一般的に、現在の設定では必要のない設定が含まれていないことがわかります。環境設定でタイトルの表示をオフにしたので、showtitle(0) を要求しても、スクリプト内でそれを言及する必要はありません。
したがって、2つの問題があるようです: (1) 好みに一致するかどうかに関係なく、すべてのオプションをキャプチャしたいかもしれません。(2) 「スクリプトを取得」タイプのオプションは、フィルターとコルスイッチャーを異なる方法で処理しているように見えます。彼らはプラットフォームの残りの部分を扱います。プラットフォーム設定の場合のように、現在の設定で動作するスクリプトを提供することはできません。不要な句の削除が意図的であることは理解できますが、不要の定義がフィルターと settitle() で異なるというわけではありません。
2. 現在の設定と同じではなく、デフォルトと同じであるものを削除しているのはバグのように思えます。
1. これは確かに、千単位区切り記号の使用に関する私のウィッシュ リスト項目 ( JSL を使用した千単位区切り記号の使用に関する質問 - JMP ユーザー コミュニティ) に似ているようです。おそらく 1 つの解決策は、より冗長なスクリプトが返されるオプションである可能性があります。 「好みと同じ」というだけで何も排除しないでください。
素晴らしい、私の好みはすべて台無しになりました... 
Re: 環境設定を使用していますか?100%同意します:)
特に
-不要な条項を削除するのは意図的であることは理解できます
- しかし、不要の定義がフィルターと settitle() で異なるわけではありません。
列スイッチャーやデータ フィルターのように動作する設定は他にもたくさんあります。グラフ ビルダーに直接影響する設定も含まれます。
環境設定で要約統計量、グラフ間隔などのデフォルト設定を変更すると、自動生成されたすべての JSL コードには次のセクションが含まれます。
要約統計量( "中央値" )、
グラフ間隔( 4 )
...デフォルト値に戻そうとするまでは。デフォルト設定に達した場合、その設定は生成された JSL スクリプトに表示されません。条件付き: デフォルト設定では JSL コードを自動的に生成できないという同様の問題が発生します。
Re: 設定を使用しますか?間には大きな余地があるので
- 「不必要な」条項を削除する
- 現在の設定に関係なく、どのシステムでも同じ結果になるようにすべての設定を書き込みます。
では、verbose(0)、verbose(0.3)、verbose(0.5)、verbose(0.7)、verbose(1)はどうでしょうか。
- 0: 現在のように「不要な」コードをすべて削除します - 互換モード
- 0.3:このシステムで同じ結果を生成するために必要なすべての JSL コードを生成します。[条件付きの問題を修正]
- 0.5:デフォルトのシステムで同じ結果を生成するために必要なすべての JSL コードを生成します。[ユーザー定義のグラデーション設定に関する問題を修正]
- 0.7: 過去 6 か月間に生成されたグラフ/レポートに基づいて、3 回以上変更されたすべての設定を含めます。すべての設定に対して堅牢なコードを生成します。
- 1: 環境設定のあらゆる設定に対して堅牢な JSL コード。
0.7: 非常に便利 - 私のお気に入り!
同僚のシステムでより堅牢な結果が生成されるのであれば、5 行の追加コードなど誰が気にするでしょうか。
-連結を生成した後で、メインテーブル(1)への追加の正確な文言について疑問に思ったことはどのくらいありましたか?
Re: 設定を使用していますか?同僚が、グラフ ビルダーのさまざまな設定の競合によって発生した同様のバグを示す良い例を見つけました。
上位レベルで非標準設定が適用されている場合、ユーザーは設定を STANDARD として定義することはできません。
グラフ ビルダーには軸設定のコントロールがあり、軸設定内に参照線のコントロールがあります。
参照線は軸設定からフォント設定を継承するようです。
継承された設定を「削除」する唯一の方法は、非標準の設定を適用して、継承された設定を上書きすることです。
説明するのは難しいですが、「体験」するのは簡単です。
ラベル「standard」のテキストは太字ではなく「standard」である必要があります。コードを実行して運試しをしてください。

dt = new table("test", new column ("X"));
Graph Builder(
Size( 469, 260 ),
Graph Spacing( 4 ),
Variables( X( :X ) ),
Elements( Points( X, Legend( 2 ) ) ),
SendToReport(
Dispatch( {}, {:X}, ScaleBox,
{Min( 0 ), Max( 50 ), Inc( 10 ), Minor Ticks( 1 ),
Add Ref Line(
20,
"Solid",
"Black",
"italic",
1,
1,
Label Settings( {Set Font Style( "Italic" )} )
), Add Ref Line( 30, "Solid", "Black", "standard", 1 ),
Label Row( Set Font Style( "Bold" ) )}
)
)
);
同様の問題は、環境設定やカスタム設定でも発生します。環境設定内の設定が標準設定と異なる場合、ユーザーはその設定を強制的に使用しなければなりません。特にレポートを変更してスクリプトを保存した後では、レポートを強制的に標準設定にすることはほとんど不可能です。「標準にリセット」が機能しなくなるのは、まさにこの時です。
参照線の場合はさらに悪く、設定をリセットする機会がまったくないのでしょうか?
Re: 設定を使用していますか?グラフ ビルダーのマーカーと色の設定にも同様の競合が存在します。
マーカーの設定を調整するには、いくつかの方法があります。
- 個々の行の行状態
- グラフビルダーの凡例メニューからマーカー設定
- 設定メニューのグローバルマーカー設定
[JMP 19 では、列プロパティ「値マーカー」を介してマーカー設定を制御することはできません -> リンクをたどって投票してください。]
問題点:
凡例メニュー経由の設定は、行状態からの設定よりも優先されます。
例外はデフォルトマーカーです。凡例メニューで標準マーカーが選択されている場合、JMPはユーザーが設定を「リセット」したいと想定し、コマンドは「無視」され、行ステートのマーカー設定が再び有効になります。行ステートに「対抗」する唯一の方法は、特別なマーカーを割り当てることです。「デフォルトマーカー」で行ステートを無効にすることはできません。
Similarly, settings via the legend menu override the settings in the 好み.
The exception is again the default marker. If the setting is switched to the standard marker, JMP assumes that the user wants to 'reset' the settings, so the preferences will be activated again. Consequently, one must assign a 非標準マーカー to override the settings in the preferences. It is not possible to overrule marker settings from the preferences with a 'default marker': In the vide, the user selects "dot" - and Graph Builder uses "FilledSquare" (from the preferences).
My recommendation: don't touch the marker setting in the preferences!!
色についても同様です。
行状態の色を黒(デフォルトの色) で上書きすることはできません。
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 10 ), Marker Drawing Mode( "Outlined" )} ),
Dispatch( {}, "400", LegendBox, {Legend Position( {1, [2, 3], 2, [0, 1]} )} )
)
);
wait(2);
// Set selected rows' markers
dt << Clear Select << Select Rows( [5] ) << Markers( "Circle" );
wait(2);
// please go to the preferences and set it back after running this code:
Set Preferences( Graph Marker( "FilledSquare" ));