將圖像從目錄新增到資料表朋友們,我正在運行 JMP12,我想將一系列 PNG 圖像添加到我的資料表中。我想這樣做,以便我可以將它們用作統計均值匹配標誌散點圖上的標籤,並通過將滑鼠懸停在每個標誌的值上來調用 PNG(控制極限圖的圖像)。我發現了 Gail Massari 製作的一段 SAS 視頻,該視頻從維基百科 URL 導入州鳥圖片;與他不同的是,我的圖像位於本地硬碟上的一個資料夾中。
我已經嘗試過該指令:
{"",{ newimage(open( "drive:\file path\filename.png",png))}" 作為每個對應行中的條目,但我得到的只是一個「Empty()」輸出。
我是 JSL 腳本新手,我已經沒有想法了。
回覆:將圖像從目錄新增到資料表打開前,使用函數If(File Exits(), Open();等; );
For( i = 1, i <= nr, i++,
If ( File Exists( :PNG_URL[i]|| ".png" ),
// do this only of the file is found
tp = Open( :PNG_URL[i], "png" );
Latest_Report:PNGs[i] = New Image( tp );
) // end if
);
Latest_Report:PNGs << label( 1 );
回覆:將圖像從目錄新增到資料表基於此主題,使用圖片(即 *.png)作為圖表上的標籤,同時使用以下循環:
對於( i = 1, i <= nr, i++,
tp = 開啟(:PNG_URL[i], "png");
Latest_Report:PNGs[i] = 新映像( tp )
);
Latest_Report:PNGs << 標籤 (1);
我了解到,每當OPEN 命令無法找到其中一個PNG 檔案時,腳本就會停止,從那時起,顯示資料夾位址的任何其他行都將被忽略,JMP 在每個檔案上提供的結果是“ (空)”表的剩餘單元格。這意味著我最終無法顯示有價值的訊息,因為一行觸發了循環中的失敗。
覆蓋這個的最好方法是什麼?
再次執行循環只會新增另一列(在本例中為:PNG_URL 2)並提供(如預期的)相同的結果。
回覆:將圖像從目錄新增到資料表再次感謝您抽出時間。
在這個社群中互動是一次愉快的學習經驗。
回覆:將圖像從目錄新增到資料表日誌是您顯示器的快照。一種選擇是另存為帶有嵌入表格的 .JRP。 然後,當另一個人打開它時,基礎表和報告將處於活動狀態。
在 JMP 13 和 14 中另存為互動式 HTM儲存顯示並嵌入標籤。
回覆:將圖像從目錄新增到資料表gzmorgan,這太棒了,而且很有魅力。 非常感謝!!
最後一個問題,
當您選擇圖表中的資料點或將滑鼠懸停在圖表中的資料點上時,JMP.12 中的日誌是否無法顯示標籤?回覆:將圖像從目錄新增到資料表完整路徑是否在單獨的列中,或者是否有路徑列和檔案名列?
假設它是一個名為:Path 的欄位。 由於它們都是png檔那麼
tp = Open( :Path[i], "png" );
如果您有兩列 :Dir 和 :Name 使用類似這樣的內容,目錄名稱沒有尾部斜杠
tp = Open( :Dir[i] || "\" || :Name[i], "png" );
舊版的 JMP 需要 eval()
tp = Open( eval( :Dir[i] || "\" || :Name[i] ) , "png" );
在運行腳本之前先嘗試一下,只需運行一行,將 i 替換為數字,以確保檔案路徑名稱正確。
回覆:將圖像從目錄新增到資料表這正是我所需要的,而且解決方案非常優雅;我非常感謝您的時間和幫助。
現在挑戰...
我的 PNG 檔案位於 46 個單獨的資料夾中,而這些 PNG 檔案共用相同的名稱;例如我有“ graph30.png " 重複 20-30 次,但每個檔案都保存在不同的資料夾中,因為它是不同控制限圖的圖像。我已經將每個路徑\檔案名稱作為資料表中的離散列。
尋找每個人的最佳方式是什麼圖XX.png基於連續列中已有的特定路徑\檔名?
回覆:將圖像從目錄新增到資料表RSantana,Gail 的影片示範如何從 URL 取得圖片,而不是嵌入圖片。
嘗試使用預設名稱為 Here(1) 的 startw 腳本。 它是在 JMP 12 中創建的。
請注意,如果所有圖片都屬於同一類型,那麼您可以簡化第 11 行和第 12 行。 假設你所有的圖片都是png,那你不需要第11行:_typ = word()和第12行你可以刪除Eval( EvalExpr() )函數。 我在本範例中需要它,因為範例影像具有不同的類型,並且在 JMP 12 中,open 不會評估變數 _ext;它要求先替換表達式然後求值。
這將是簡化的第 12 行tp = Open("$Sample_images/"||_fid[i], "png" );
將其複製並貼上到 JMP 腳本視窗中,運行它,然後將滑鼠懸停在這些點上。 最後一條評論是將每張圖片的「代碼」嵌入到您的表格列中。
Names Default to Here(1);
_fid = Files in Directory("$sample_images");
nr = nitems(_fid);
//Create a table
dt = New Table("demo",add rows(nr),
New Column("X", <<SET values=""></SET>