保存圖片的 JSL 代碼導致我的繪圖格式顏色/標記/圖例等鬆動。請幫助你好,
我正在使用以下代碼來嘗試保存可變性和時間趨勢圖的圖片,它可以工作,但由於某種原因我丟失了繪圖格式、顏色/標記/圖例等。在這種情況下Flagging_Charts_Data_Var 和 Flagging_Charts_Data_Bivar 是我的變異性和時間趨勢圖的句柄。這可能是我所缺少的簡單內容,請幫忙,謝謝!
//嘗試將我的繪圖保存為 png 的代碼
Summary_Data_Flagging_Window = HListBox(Flagging_Charts_Data_Var,Flagging_Charts_Data_Bivar);
Summary_Data_Flagging_Window << 保存圖片(file_name,png);
回复:保存圖片的 JSL 代碼導致我失去了繪圖格式顏色/標記/圖例等。請恭喜!
回复:保存圖片的 JSL 代碼導致我失去了繪圖格式顏色/標記/圖例等。請沒關係弄清楚,再次感謝!
回复:保存圖片的 JSL 代碼導致我失去了繪圖格式顏色/標記/圖例等。請感謝您出色的解釋和幫助,當我運行您附加的腳本時,它工作正常,但是當我更新代碼時,它創建的 .png 文件是空白的,也許我仍然缺少一些東西?我不應該使用outlinebox[1]嗎? 我在 Win8 上使用 JMP Pro 11.1.1。我還將整個代碼放入循環中以創建多個 .png 圖片,是否需要每次通過循環或摘要窗口更新 varpic 或 bivpic 變量?再次非常感謝,我想它已經越來越近了。
回复:保存圖片的 JSL 代碼導致我失去了繪圖格式顏色/標記/圖例等。請馬特,
嘗試附加的腳本。如果您沒有 ac:/temp/ 驅動器,則需要更改路徑。檢查保存的顏色是否被刪除。
根據經驗,我只看到過以下有關顏色的問題:
- 運行腳本,在保存圖片之前,調用一個數據表清除行狀態。 在腳本中,您將看到語句 varpic = report(varchart)[OutlineBox(2)] 和 bivpic = report(biv)[OutlineBox(1)]。 通常,剛接觸 JSL 的人認為這是按原樣捕獲圖形,但實際上它只是創建活動(實時)窗口的句柄。 因此,在保存時,對數據表行狀態的任何更改都將反映在圖表上。
- 使用變量對框架框進行圖形定制。 這些變量(而不是它們的值)被存儲。 如果變量在保存圖片之前發生更改或被刪除,它們將不會顯示在圖片中。
- 大約 8 年前有一個例子,JMP 輸出以及其他統計圖形輸出總是黑白的。它位於尚未定義默認打印機或圖形卡的服務器上。 我只見過一次。
因此,如果附加的腳本保存顏色,並且您在關閉或更改行狀態之前保存圖片,那麼這可能是您引用圖形的方式。如果從twopics.png 中去除顏色,那麼它是一個系統問題。
您應該記下您的操作系統和 JMP 版本。祝你好運
回复:保存圖片的 JSL 代碼導致我失去了繪圖格式顏色/標記/圖例等。請感謝您的回复,我不認為速度是問題,我認為您必須將繪圖發送到 save picture() 命令的方式有些問題,但我對 JMP 不太熟悉,不知道答案,請問還有其他人可以幫忙嗎?謝謝,馬特
回复:保存圖片的 JSL 代碼導致我失去了繪圖格式顏色/標記/圖例等。請我的第一個想法是,在保存圖片之前,繪圖可能無法使用您的自定義格式完成繪製。我沒有花時間確切地了解何時有必要,但為了安全起見,我特意在每次圖像捕獲或保存之前發送“<<更新窗口”。
這是一個過於復雜的例子,但是這個 3D 繪圖工具插件使用更新窗口。您可以直接跳轉到源代碼GitHub;搜索“更新窗口”以查找相關行(當前為 145-148)。在這種情況下,更新窗口消息會先發送到“Scatterplot 3D”窗口,然後再將窗口內的圖形捕獲為圖像。
//rotate the scatterplot
sp[1] << Frame3d( Set Rotation( x, y, z ) );
//make sure the plot is redrawn
sp[1] << update window;
//take a picture
img = (sp[1] << Find( Picture Box(1) )) << Get Picture;