從列中的 URL 新增圖像你好親愛的社區,
我有一個資料表,我想根據另一列(“路徑”)中的 URL 路徑添加圖像列。
URL 列(「路徑」)是根據前一列(名稱+編號)建構的,以便為每行提供正確的 URL。 路徑公式位於玩具資料集中或此處:
Char( "https://bulbapedia.bulbagarden.net/wiki/File:" ) || Char( :"#"n ) ||
Char( :Name ) || Char( ".png" )
其中開頭是網站名稱,「#」是 URL 中的數字,「Name」是 Pokemon 的名稱,以「.png」結尾。 總之,URL 可以重定向到特定的 Pokemon 影像(例如: https://bulbapedia.bulbagarden.net/wiki/File:002Ivysaur.png )
我在基於此 URL 創建圖像列時遇到問題,我嘗試使用公式,但顯然我的公式不正確(我嘗試在社區和索引腳本中查找,但無法成功)。
我想要一個列(如螢幕截圖或資料集中的第 2 列),其中公式查看路徑列並從網站檢索圖像(如果可能,能夠控制該圖像的大小!)。
這可能嗎?有人知道怎麼做嗎?
請尋找附件中的玩具資料集的子集。
預先感謝您的回答!
消費者與市場研究資料混合與清理大規模客製化回覆:從列中的 URL 新增圖像這很酷:
資料表和相關 JSL 工具中的影像 (2020-US-30MP-585)
回覆:從列中的 URL 新增圖像你好@Craige_Hales ,
非常感謝您的寶貴意見,並對我的答覆延遲表示歉意。
解決方案正如您所提到的,是列公式(根據其他列值建立URL)、表達式列(顯示短圖像)和列事件處理程序(透過單擊單元格來獲得包含統計資訊的更大圖片)的組合)。
我有很多關於 jsl 腳本和特殊列格式/類型的知識,我很驚訝地看到所有的可能性(現在更好奇地發現新的可能性!)。 我將深入研究 jsl 腳本課程以掌握基礎知識。
非常感謝您的興趣和回答。回覆:從列中的 URL 新增圖像你好@jthi !
驚人的 ! 非常感謝您的建議! 我可能會更新 jsl 程式碼以使 Windows 提供更多資訊。
但我必須小心,這個 Pokémon 玩具資料集有 800 個條目,所以我選擇 URL 圖像的最小尺寸,並且我必須注意檔案大小不要太大。
非常感謝你的幫忙 !回覆:從列中的 URL 新增圖像如果需要,您還可以在事件處理程序中修改新窗口,以使新窗口提供更多資訊(這也是縮放圖像的可能位置之一)
這不是事件處理程序,而是一個範例腳本,可以做什麼
Names Default To Here(1);
img = New Image(
New HTTP Request(
url("https://archives.bulbagarden.net/media/upload/2/21/001Bulbasaur.png"),
Method("GET")
) << send
);
img << scale(0.5);
New Window("001 - Bulbasaur", << Show Toolbars(0), << Show Menu(0),
V List Box(
align("center"),
Text Box("001 - Bulbasaur", <<SET font="" style=""></SET>回覆:從列中的 URL 新增圖像你好@jthi ,
在解析了一些 URL(如您在文件中顯示的 URL)後,列屬性集就像一個魅力! 非常感謝您的快速答覆和完整指南!
我必須處理一些格式不正確的“名稱”,並且僅在小數據集上提取圖像一次(然後將它們合併),否則 JMP 開始失敗......
誰知道我們可以用 JMP 製作圖鑑? :p
非常感謝您的解決方案!
回覆:從列中的 URL 新增圖像可以以各種組合使用的三個正交想法:
- 列公式 - 根據另一個儲存格計算一個儲存格的值
- 表達式列 - 包含不限於數字或字串的值的儲存格(圖片、矩陣、JSL)
- 列事件處理程序 - 列的額外公式用於處理單元格單擊(以及工具提示和顏色)
你可能想要這三個。 列公式可以從其他單元格建立 URL 字串,從 URL 獲取圖像,調整圖像大小,如果該列也是表達式列,則使用圖像作為表達式。 open() 或 newimage() 將取得 .jpg 的 URL 並傳回圖片物件。
然後,事件處理程序可以使圖像/單元格可點擊;如果該列也是公式列,則按一下處理程序可能會使用建置 URL 的其他儲存格。 不要手動編寫事件處理程序。 使用 GUI 建立和測試它們,然後如果您需要 JSL 來製作它們,請使用紅色三角形擷取資料表的腳本並對其進行修改。 預設事件處理程序有一些樣板 JSL,您需要研究它們,然後進行更改。
回覆:從列中的 URL 新增圖像範例資料中的 URL 不是圖像的直接連結。 您必須從頁面獲取它們還是能夠獲得圖像的直接連結? 例如對於燈泡(取決於大小) https://bulbapedia.bulbagarden.net/wiki/File:001Bulbasaur.png -> https://archives.bulbagarden.net/media/upload/thumb/2/21/001Bulbasaur.png/240px-001Bulbasaur.png 。 如果您無法獲得直接鏈接,那麼首先要做的可能是編寫一個從頁面解析圖像 URL 的函數。
格式很可能總是非常相似,因此編寫解析函數應該不會太困難

這可能有效,但不確定效果如何以及持續多久:
看更多...
我已附加資料表,其中直接連結到一些圖像,這些圖像會將它們加載到資料表中,並且它還有單擊事件處理程序以在新視窗中開啟圖像:

它使用具有此類公式的表達式列:
New Image(New HTTP Request(url(:Column 1), Method("GET")) << send)
根據資料表的使用/建構方式,最好刪除公式/抑制評估(或使用 << 設定每個值),這樣影像就不會被下載太多次。
圖片載入到資料表後,按一下 Even thandler 開啟映像,如下所示:
Function({thisTable, thisColumn, iRow},
{},
New Window("IMG", New Image(thisTable:thisColumn[iRow]))
);
回覆:從列中的 URL 新增圖像非常感謝您的快速答复@jthi !
這已經對我有很大幫助,我會檢查什麼是可能的。 由於我顯然是 JSL/腳本編寫的新手,如果您有時間為事件處理程序表達式提供腳本,我將非常感激:)
我希望在列中包含小圖像(而不僅僅是單擊 URL 或打開瀏覽器),就像示例資料庫中的資料集 SAS Offices.jmp 中一樣(已解決:jmp 是否允許單元格內容成為超連結 - 第 2 頁 - JMP 使用者社群)
多謝 !
回覆:從列中的 URL 新增圖像事件處理程序應該能夠處理這個問題。 一些例子可以從2022_Q1 MakeOverChallenge:以各種方式點選滑鼠的操作。 當我有更多時間時,我應該能夠使用提供的範例表(如果需要)製作一個範例。