異なるスクリプトで複数のグラフをエクスポートするJmpユーザーの皆さん、
Jmp で複数のグラフをエクスポートしようとしています。対応するスクリプトを選択して、すべてのグラフをまとめてエクスポートする方法はありますか。
どうもありがとう !
I
自動化とスクリプトマスカスタマイゼーションRe: 異なるスクリプトで複数のグラフをエクスポートするpmroz、
「グラフ」を開こうとすると、まだ空白のウィンドウが表示されます。 含める必要がある基本的なものはありますか? 私の目的は、3 つのプロット (Graphs、Graphs2、Graphs3) すべてを 1 つのウィンドウに配置して、Powerpoint にコピー アンド ペーストできるようにすることです。
ご意見をお寄せいただきありがとうございます。
ニール
Re: 異なるスクリプトで複数のグラフをエクスポートするpmroz、
ご意見ありがとうございます。 初心者なので、まだ JSL フローと機能に慣れていないので、専門家のアドバイスをいただければ幸いです。 全体的な流れを示すために、スクリプト全体を (簡略化して) 含めました。 メイン マクロとサブルーチンを考慮した以前のコーディング経験に基づいて、後でプログラムで呼び出すことができるように、ルーチンを式にカプセル化しようとしていました ("Files()"、"Join_files"、および "Con")。
「Graphs = Eval Expr」を「Graphs = Expr」に変更すると、すべてが機能します。 別の式 (Join_files) で呼び出されたため、これに Eval が必要かどうかはわかりませんでした。
新しいウィンドウでグラフを使用していましたが、まだ空のウィンドウが表示されます。
貴重なお時間をいただき、重ねて御礼申し上げます。
ニール
Files = Expr(
SD1 = "C:\Users\";
path = {};
f1 = Files In Directory( SD1, recursive(1));
For( i = 1, i <= N Items( f1 ), i++,
If(Ends With( f1[i], ".csv" ),
f1[i] = Convert File Path(SD1) || f1[i];
b= f1[i];
Insert Into(path, b)
);
);
);
Join_files = Expr(
For( i = 1, i <= N Items( path ), i+=2,
/*area, %area, and pore pixel count*/
jointable1 = Open( path[i] );
//jointable1 << Get Name;
samplename = Substr( jointable1 << Get Name, 1, 18 ); //sample replicate name //
samplename2 = Word(1,q, "_"); // only sample name, no replicate suffix
jointable1 << New Column( "Sample",
Character,
Nominal,
Set Each Value( samplename ) // setting each row in column 1 to samp rep name //
);
jointable2 = Open( path[i + 1] );
dt = Data Table( jointable1 ) << Join(
With( Data Table( jointable2 ) ),
Select( :Sample, :Area, :Name( "%Area" ),:scale,:thick),
SelectWith( :pixD1, :count1),
Cartesian Join
);
Close( jointable1, no save );
Close( jointable2, no save );
Columns();
Graphs();
Graphs2();
Graphs3();
dt << Set Name(samplename);
po = dt << get name;
dt << Save(SD1 || po);
);
nw = new window("Example Export Multiple Platforms",
chart_output = vlistbox(
graphs,
);
);
);
Columns = Eval Expr(
dt << New Column( "Sample 2",
Character,
"Nominal",
Set Each Value(samplename2),
Set Display Width( 150 ),
);
);
Graphs = Eval Expr(
/*set graphs*/
dt << New Table Property( "Cumulative Resistivity",
Graph Builder(
Size( 591, 496 ),
Show Control Panel( 0 ),
Grid Color( "Black" ),
Graph Spacing( 2 ),
Variables(
X( :Name( "Diameter (um)" ) ),
Y( :Name( "flow resistivity (Pa*s/m^2)") ),
Overlay( :Sample )
),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 20 ) ) ),
SendToReport(
Dispatch(
{},
"Diameter (um)",
ScaleBox,
{Min( 0 ), Max( 80 ), Inc( 1 ), Minor Ticks( 1 ),
Label Row(
{Show Major Grid( 1 ), Show Minor Grid( 1 )}
)}
),
Dispatch(
{},
"flow resistivity (Pa*s/m^2)",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 100000 ),
Max( 10000000000000 ), Inc( 1 ), Minor Ticks( 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
)
)
)
);
Con = Expr(
dt = {};
// Sort list ascending (sample replicates) //
For( i = 1, i <= N Table(), i++,
table = data table(i);
insert into(dt, table);
sort list into(dt)
);
// Concatenate each file (sample replicates) //
dt_all= Data Table( dt[1] ) << Concatenate(
Data Table( dt[2] ),
Data Table( dt[3] ),
Output Table( "Concatenated Table" )
);
// Rename file to sample name and Save //
dt_all << set name(samplename2);
dt_all:Sample << Set Display Width( 150 ); // Widen to include entire title
p = dt_all << get name;
dt_all << Save(SD1 || p);
close(dt_all, no save);
close(dt[1], no save);
close(dt[2], no save);
close(dt[3], no save);
);
Files();
Join_files();
Con();
Re: 異なるスクリプトで複数のグラフをエクスポートするこんにちは NRW - あなたはややこしすぎていると思います。結合ロジックを式に入れる必要はありません。周囲の expr() なしでそのまま実行するだけです。
のグラフあなたの投稿でロジックが途切れましたが、私はそうしますexpr() 、 それよりもeval expr() .
最後に、新しいウィンドウに置くだけです
graphs,
そしてそうではない
graphs("Cumulative Resistivity"),
Re: 異なるスクリプトで複数のグラフをエクスポートする皆さん、
私はちょうどこのスレッドに出くわしました。それが私が求めていたものだと思います。 しかし、私はまだJSL学習のハンプを乗り越えようとしており、結果を得ることができません.
簡単な要約:
- CSV データ セットを 1 つの JMP シートにマージ
- プロット スクリプトを作成してデータ テーブルに保存
- 後で表を開くときは、3 つのプロット スクリプトを実行し、各プロットをコピーして 1 つの Powerpoint スライドに貼り付けます (プロットに対応する画像は、同じスライドに既に貼り付けられています)。
少なくとも 3 つのグラフをすべてプールして、3 つすべてを同時にエクスポートできる形式にすることで、クリックとコピーの手順を最小限に抑えたいと考えています。 私は、何らかの方法でグループ化し、プルできるファイルとして保存するダッシュボードまたはジャーナルでこれを行う必要があるかどうかを調査してきました。 至高の目標は、私の jpg 画像を私の JMP プロットと組み合わせてから、PP に引き継ぐことです。
Vlistコマンドを試しましたしかし、空のウィンドウを取得しますスクリプトとして保存されたプロットを取得しようとしたとき。 関連するスクリプト部分の一部が表示されます。
どんな考えや意見も歓迎します。
ニール
Join_files = Expr(
For( i = 1, i <= N Items( path ), i+=2,
/*area, %area, and pore pixel count*/
jointable1 = Open( path[i] );
//jointable1 << Get Name;
samplename = Substr( jointable1 << Get Name, 1, 18 ); //sample replicate name //
samplename2 = Word(1,q, "_"); // only sample name, no replicate suffix
jointable1 << New Column( "Sample",
Character,
Nominal,
Set Each Value( samplename ) // setting each row in column 1 to samp rep name //
);
/*diameter and pore pixel count*/
jointable2 = Open( path[i + 1] );
dt = Data Table( jointable1 ) << Join(
With( Data Table( jointable2 ) ),
Select( :Sample, :Area, :Name( "%Area" ),:scale,:thick),
SelectWith( :pixD1, :count1),
Cartesian Join
);
Close( jointable1, no save );<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="report summ_.JPG" style="width: 829px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="report summ_.JPG" style="width: 829px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="report summ_.JPG" style="width: 829px;"><span class="lia-inline-image-display-wrapper" image-alt="report summ_.JPG" style="width: 829px;"><img src="https://us.v-cdn.net/6038925/uploads/images/32980i018D050D35ACCDD9/report%20summ_.JPG" role="button" title="report summ_.JPG" alt="report summ_.JPG" /></span></SPAN></SPAN></SPAN>
Close( jointable2, no save );
Columns();
Graphs();
Graphs2();
Graphs3();
dt << Set Name(samplename);
po = dt << get name;
dt << Save(SD1 || po);
);
<BR />Graphs = Eval Expr(<BR />/*set graphs*/<BR />dt << New Table Property( "Cumulative Resistivity",<BR />Graph Builder(<BR />Size( 591, 496 ),<BR />Show Control Panel( 0 ),<BR />Grid Color( "Black" ),<BR />Graph Spacing( 2 ),<BR />Variables(<BR />X( :Name( "Pore Diameter (um)" ) ),<BR />Y( :Name( "Cumulative flow resistivity (Pa*s/m^2)") ),<BR />Y( :Pore Size Dist ),<BR />Y( :Name( "Cumulative Pore fraction (pore+solid)" ) ),<BR />Overlay( :Sample )<BR />),<BR />Elements( Position( 1, 1 ), Line( X, Y, Legend( 20 ) ) ),<BR />Elements( Position( 1, 2 ), Line( X, Y, Legend( 18 ) ) ),<BR />Elements( Position( 1, 3 ), Line( X, Y, Legend( 19 ) ) ),<BR />SendToReport(<BR />Dispatch(<BR />...<BR />
nw = new window("Example Export Multiple Platforms",
chart_output = vlistbox(
graphs("Cumulative Resistivity"),
);
);
);
Re: 異なるスクリプトで複数のグラフをエクスポートするやあ@JMP発見者、
私は同様の解決策を考え出していました@pmroz 、そして私は彼らがしたことが好きです。
これは私が考えていたことですが、Word文書などを作成するほどではありません.PPTファイルに直接保存することもできます. 便利なように JSL でレポートを作成しましたが、既に開いている場合は for ループが機能します。 ただし、レポートを生成するスクリプトを作成すると、ウィンドウのリストを検索する代わりに、変数名でレポートを参照できます。
Names Default To Here( 1 );
dt = open("$sample_data\Big Class.jmp");
rpt1 = dt << Bivariate( Y( :weight ), X( :height ) );
rpt2 = dt << Oneway( Y( :height ), X( :age ), X Axis Proportional( 0 ) );
rpt3 = dt << Fit Group(
Oneway( Y( :weight ), X( :age ), X Axis Proportional( 0 ) ),
Bivariate( Y( :weight ), X( :height ) ),
<<{Arrange in Rows( 2 )}
);
reportlist = {};
For( i = 0, i <= N Items( Window() ), i++,
If(
!Is Missing( Regex( Window( i ) << getwindow title, "Fit" ) ) == 1 | !Is Missing(
Regex( Window( i ) << getwindow title, "Oneway" )
) == 1 | !Is Missing( Regex( Window( i ) << getwindow title, "Bivariate" ) ) == 1,
Insert Into( reportlist, Window( i ) << get window title )
)
);
For( i = 1, i <= N Items( reportlist ), i++,
picbox = Window( reportlist[i] ) << getPicture;
picbox << SaveImage(
"whatever your local directory to save is\pic" || Char( i ) || ".png"
);
);これらは、あなたのやり方でうまくいくはずです。
幸運を!、
DS
Re: 異なるスクリプトで複数のグラフをエクスポートするBig Class からワード doc に 3 つのグラフィカル出力をエクスポートする例を次に示します。
dt = open("$sample_data\Big Class.jmp");
dist = expr(dt << Distribution(
Continuous Distribution( Column( :weight ) ),
Nominal Distribution( Column( :age ) )
));
gb1 = expr(dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( :sex ) ),
Elements( Heatmap( X, Y, Legend( 2 ) ) )
));
gb2 = expr(dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
));
nw = new window("Example Export Multiple Platforms",
chart_output = vlistbox(
dist,
page break box(),
gb1,
page break box(),
gb2
);
);
chart_output << save msword("c:\temp\SampleCharts.doc", Native);