如何將圖形生成器中的每個圖形保存到帶有列表數組標題的圖像文件中大家好,
我試圖找到一種將結果保存到 pptx 中的方法。模板並意識到我應該首先將每個結果保存到文件中,然後編譯成模板報告。
根據以下帖子:
https://community.jmp.com/t5/Discussions/the-graph-size-exported-to-pptx-Save-Presentation/mp/72135#M35554
但是,我無法找到根據循環下創建的列表來命名我的文件的方法。 我正在使用以下大類示例:
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
win = New Window( "Graphs", lub = Lineup Box( N Col( 2 ) ) );
ages = (Associative Array( Column( dt2, "age" ) ) << Get keys);
For( i = 1, i <= N Items( ages ), i++,
dt2 << select where( :age == ages[i] );
dt = dt2 << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
lub << append(
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :age, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :age ),
Where( :age == ages[i] ),
Display( :age, Size( 224, 126 ), List Display )
)
)
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
gb<< save picture(Eval Insert("C:\....\BigClass^i^.png"));););有沒有人知道如何做到這一點?
我嘗試使用下面的方法來代替,但它不起作用。
gb << Save Picture( "C:\BigClass_" || Ages[i] ||".jpg", JPEG );
我需要為此創建一個不同的字符串/列表嗎? 非常感謝任何指導。
謝謝
回复:如何將圖形生成器中的每個圖形保存到帶有列表數組標題的圖像文件中我無法直接回答你的問題,但只是圍繞該方法提出一些想法。 在查看腳本之前,您可能希望通過點擊按鈕來探索這些內容。
1. 您可能想要在圖形生成器中使用頁面角色,因為這會為頁面中變量的每個級別創建一個帶有軸的單獨圖。
dt = Open( "$SAMPLE_DATA\Big Class.JMP" );
Graph Builder(
Size( 518, 2948 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Page( :age ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) )
);
2. 可能值得考慮如何使用另存為 powerpoint 功能。 從任何報告:文件 > 另存為 > 保存類型:Powerpoint 演示文稿。 SavePresentation() 是 JSL 函數。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = bivariate( y( :weight ), x( :height ) );
rbiv = biv << report;
rbiv << Save Presentation( "$TEMP/jmp_example.pptx" );
Open( "$TEMP/jmp_example.pptx" );
希望有幫助。
問候,
菲爾
回复:如何將圖形生成器中的每個圖形保存到帶有列表數組標題的圖像文件中@gzmorgan0
感謝您的回复。
我一直在嘗試使用 JSL,直到我需要在 pptx 中創建報告為止。 之所以根據列表名稱保存圖表是因為我需要為這個列表的每個元素創建一個報告。
我已將 JSL 腳本放在下面。 該腳本可以正常工作,但它不會保存圖形及其相應的列表名稱,它僅將每個圖形保存為sample_1;樣本_2...等 例如,我的sample_1的名稱是“EH3”,但是,名稱每個月都會改變,所以理想情況下我需要它從列表中獲取名稱。
我仍然需要為每個 Sample[i] 添加一個匯總表格,並將其與圖表一起添加到 pptx。 這可能嗎?
win = New window("Graphs", lub = Lineup Box (Ncol(3)));
//selecting the list of samples or variables for which a graph is required
Samples = (Associative Array(Column (dt4, "Sample"))<<GET keys=""></GET>
回复:如何將圖形生成器中的每個圖形保存到帶有列表數組標題的圖像文件中你的上一篇文章有
gb<< save picture(Eval Insert("C:\temp\^i^.png") ||Char(Ages[i])||".jpg",JPEG););請看看你的語法。 對於 i=1(其中 Ages[i] = 12),這將生成字符串 "C:\temp\1.png12.jpg" 。
gb<< save picture("C:\temp\Age_" ||Char(Ages[i])||".jpg",JPEG););F或 i=1,其中 Ages[i] = 12,這將生成字符串“C:\temp\Age_12.jpg”
您的原始示例使用 :age 列的唯一值作為列表。如果保存不起作用,並且不是由於語法錯誤,可能列表中的值包含不能是有效 Windows 名稱的符號。 直到現在我才打開您引用的鏈接。 如果您使用 p3icli 創建 pptx,則可以使用 p3icli 命令作為複雜名稱或註釋的標題和說明文字。 我已經使用這種方法來編寫報告來審核控制限制:
- 創建 p3icli 命令列表,我稱為 cmdlist,然後將每個 p3icli 命令插入到 cmdlist 中
- 為了插入新幻燈片或者重複模板
- 一個複雜的命令標題提供有關要顯示的圖表的上下文參數信息、數據日期等
- 使用 fid1 或 fid2 等簡單名稱插入圖片的命令
- 基於分析的標題命令,限制是否太鬆或太緊等。
我編寫此大綱是為了說明如何使用 p3icli 標題和說明文字選項,而不是使用保存的文件名。
如果您需要使用 p3icli 的替代方案,這不是合適的論壇,請發送私人消息。
查看您的列表後,您沒有在列表中找到像 @ # % ( ) - ^ 這樣的異常符號,那麼您需要提供實際 JSL 代碼的片段和錯誤消息。
回复:如何將圖形生成器中的每個圖形保存到帶有列表數組標題的圖像文件中它肯定有效,但不是我想要的。 我想要保存圖片時的圖像<<回复:如何將圖形生成器中的每個圖形保存到帶有列表數組標題的圖像文件中我正在考慮類似以下的內容,但現在我意識到這可能不是您想要的,因為它沒有捕獲軸。
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
gb = dt2 << Graph Builder(
Size(800, 600),
Variables( X( :weight ), Y( :height ), Wrap( :age ) ),
Elements( Points( X, Y ), Smoother( X, Y ) )
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
dt = gb << make into data table();
for each row(dt,
img = :graph;
img << save image(Eval Insert("$DOCUMENTS/BigClass^char(:age)^.png"));
);
回复:如何將圖形生成器中的每個圖形保存到帶有列表數組標題的圖像文件中@XanGregg
那麼您將如何引用每個表? 那麼如何將每個表保存到帶有列表名稱的圖片中呢?
你能展示一下在這個大類示例中你將如何做到這一點嗎?
謝謝
回复:如何將圖形生成器中的每個圖形保存到帶有列表數組標題的圖像文件中@gzmorgan0
謝謝你的提示。 在本例中,它適用於 Big Class。 但是,它在我的 scrypt 上不起作用。
我已經嘗試了這兩個命令,但只有第一個命令適用於我的腳本,但僅將 ^i^ 替換為數字,而不是我作為列表的名稱/字符。 第二個命令適用於 Big Class 示例,因此 Char() 可能不適用於名稱?
gb<< save picture(Eval Insert("C:\temp\BigClass^i^.png"));
//and also
gb << Save Picture( "C:\temp\BigClass_" || char(Ages[i]) ||".jpg", JPEG );
);
我也嘗試過在第一行命令下使用 Char() 函數,但它不能像“||”一樣工作似乎不適用於 Eval Insert()。
C:\temp\^i^.png") ||Char(Ages[i])||".jpg",JPEG););gb<< save picture(Eval Insert("
你知道如何解決這個問題嗎?
回复:如何將圖形生成器中的每個圖形保存到帶有列表數組標題的圖像文件中您需要一個圍繞 Ages[i] 的 Char() 函數。 關聯數組 Ages 的值是數字。請注意,下面的腳本正在寫入 c:\temp\ 目錄。 註釋的語句也將起作用。您應該在保存語句之前關閉 Append() 語句。
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
win = New Window( "Graphs", lub = Lineup Box( N Col( 2 ) ) );
ages = (Associative Array( Column( dt2, "age" ) ) << Get keys);
For( i = 1, i <= N Items( ages ), i++,
dt2 << select where( :age == ages[i] );
dt = dt2 << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
lub << append(
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :age, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :age ),
Where( :age == ages[i] ),
Display( :age, Size( 224, 126 ), List Display )
)
)
);
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
//gb<< save picture(Eval Insert("C:\temp\BigClass^i^.png"));<BR />
gb << Save Picture( "C:\temp\BigClass_" || char(Ages[i]) ||".jpg", JPEG );
);
回复:如何將圖形生成器中的每個圖形保存到帶有列表數組標題的圖像文件中“gb << Make Into Data Table()”有幫助嗎? 它創建一個包含一列圖像的新數據表。