您可能已經看過JMP 公共以及人們在網站上分享的報告。 您可能沒有聽說過的是JMP 直播,JMP Public 背後的支持技術。
JMP Public 是一個供世界各地的 JMP 用戶分享他們的發現並探索有趣的公共數據集的網站。 使用 JMP 14.2 及更高版本,您可以輕鬆地將交互式報告發佈到 JMP Public 並與其他人分享您的發現,即使他們沒有 JMP。
今年晚些時候,隨著 JMP 15.0 的發布,我們將在私有且安全的環境中為組織的專有數據提供類似於 JMP Public 的發布功能。 JMP Server、JMP Live 和 JMP Public 之間的關係如下圖所示。 但您不需要等到年底才開始提高您的出版技能。 以下是提高發布效率並幫助自動化日常發布任務的 10 個技巧。
聚苯乙烯 我不應該e 這是一篇 JSL 較多的博客文章……
聚苯硫醚 您可以在本博客文章末尾下載我帶註釋的已發布腳本,作為您自己的發布腳本的良好起點。
對於這 10 個技巧,我們將查看我最近向 JMP Public 發布的一份報告,該報告探討了美國食品和藥物管理局藥物評估與研究中心 (CDER) 提供的有趣數據集。 查看 JMP Public 的報告:
- 了解用於創建 Web 報告以及將 JMP 報告添加到報告集合的 JSL 功能。 發佈到 JMP 服務器的好處是,在發布初始報表後,發布類似報表所需的語法將是相同的。 因此,即使您不是 JSL 專家,您也可以使用我的代碼輕鬆自動發布報告。 下面是本文所附 JSL 腳本中的代碼片段。
// Create the web report element to hold the graphs and window.
webreport = New Web Report();
// Add title and description for the index page.
webreport << Index(
Title( "Biomarkers in Labels (CDER)" ),
description(
"Source: <A href="\!"https://www.fda.gov/drugs/scienceresearch/ucm572698.htm\!"" target="_blank" rel="nofollow noopener noreferrer">Table of Pharmacogenomic Biomarkers in Drug Labeling</A>"
)
);
// Add graphs using add report message. You can also add a description if required.
webreport << add report( graph1, title( "Number of Drugs Added Per Quarter by Therapeutic Area" ) );
webreport << add report( graph2, title( "Labeling Sections MCA" ) );
webreport << add report( graph3, title( "Therapeutic Area Packed Bar Chart" ) );
webreport << add report( win, title( "Links to Drug Detail Page (External)" ) );
- 當你看著我的發表的報告,您將在集合中看到一個索引頁和四個報告。 在報告的腳本中,以下 JSL 函數將很有用:
- 新的網絡報告() 創建一個將用於發布我的報告集合的容器。 Web 報告接受 JSL 消息來加載報告和元數據(我們將在後面討論窗口)。 我創建報告,向索引添加信息(包括標題和描述),然後向其中添加報告。 這些報告只是 JMP 中的窗口。
- 描述()可以使用 HTML href 語法鏈接到其他網站。 請注意,在上面的 JSL 中,我的描述有一個指向外部網站的鏈接。 為了在將報表發佈到 JMP Public 時使該鏈接正常工作,我只需在其周圍添加一個鏈接標題。 請注意,您需要在 href 參數中使用轉義括號“\!”。然後,該鏈接將被識別,單擊後會轉到適當的位置,甚至是另一個 JMP 公共報告。
- << 添加報告()讓我將最終發布的報告中所需的所有圖表添加到我使用構建的容器中新的網絡報告() 。 如果您決定報告需要新圖表,只需添加另一行、另一個添加報告並重新運行腳本即可。
- 您可以在第一次發布後通過複製包的唯一 ID 來輕鬆替換包。 當您發布包時,它會被賦予一個唯一的 ID。 該 ID 位於 URL 中。 如果您想將自動替換集成到腳本中,只需複制該 ID,然後將其放入發布命令中的“替換”參數腳本中,如下所示。
url = webreport << publish( prompt( ifneeded ), replace( "PASTE PACKAGE ID HERE" ), public( 1 ) );
If( !Is Empty( url ),
Web( url )
);
- 您可以通過將公眾 (1|0) 添加到您的腳本中來控制您發布的報告是“為我”還是“公開”。 請注意,在上面的腳本片段中,消息中包含“public (1)”。 這使得所有人都可以獲得該報告。 如果我只想要它,那麼將 public (0) 就可以做到這一點。
- 如果您想要其他網站的鏈接列表,可以將它們收集到新窗口中。 在 CDER 數據中,我希望能夠將所有藥物鏈接回其詳細信息頁面。 這很容易做到,因為 URL 只是基本 HTML 參數與附加到末尾的應用程序編號的組合。 下面的 JSL 代碼片段執行此操作。 基本上,我想創建一個窗口,然後循環遍歷應用程序編號列。 然後該窗口將發佈到我的報告集合中。
win = New Window( "Drug Information", V List Box() );
For Each Row(dt3,
applicationNum = Char(:Application Number);
drug = Char(:Drug Name);
link=(EvalInsert("http://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=overview.process&varApplNo=^applicationNum^"));
button_expr = EvalInsert("\[one_button = button box("^drug^", web("^link^"), <<UNDERLINESTYLE></UNDERLINESTYLE>
- 如果您希望腳本在打開時自動運行,只需添加 //!到腳本的第一行。 非常簡單,但對於發生變化的數據,這使得通過打開文件自動重新發布變得更容易,只需單擊一下即可。 如果您想按計劃自動發布(因為您的數據會定期更新,並且您始終希望發布的報告是最新的),請利用 MacOS X 上的 Automator 或 Windows 上的任務計劃程序。
- 如果數據很大,請考慮對其進行匯總。 發佈到 JMP Public 的報告對所有上傳的文件都有大小限制。 您應該將此作為模型和最佳實踐。由於將 JMP 報表發佈到 JMP 服務器時會發布整個數據集,因此如果您可以聚合,就進行聚合。 它將使報告加載速度更快並使包更加緊湊。 對於不必要的列也是如此。 如果您不需要它們,請在您發布的數據集中刪除它們。
- 如果您的交互式 HTML 報告未得到完全支持,您可以通過使用窗口 -> 登錄 JMP 來確定哪些部分不起作用。 日誌將列出報告中不支持交互式 HTML 的特定部分。 雖然我們的目標是在您發布報告時提供盡可能多的交互式信息,但我們並沒有提供完整的覆蓋範圍。 但是,通常有多種方法可以重做圖表或報告以刪除不受支持的元素。
- 使用列標籤為您發布的報告添加一些上下文。 由於已發布的報表不像 JMP 中的圖表那樣具有返回數據表的鏈接,因此適當添加標籤可以幫助圖表或報表的查看者在查看圖表時獲得更多背景信息。 通過右鍵單擊列列表中的列並打開“標籤/取消標籤”選項,可以輕鬆地將列設為標籤列。
- 儀表板很棒,但發佈時不需要依賴它們。 當您將多個交互式 HTML 報表作為報表集合發佈到 JMP 服務器時,您會自動獲得一個有用的索引頁,該索引頁在許多情況下可以起到與儀表板相同的作用。 另外,如果您願意,您還可以獲得發佈到集合中的每個單獨報告的標題和描述的優勢。 而且您對消費者可能擁有的各種屏幕尺寸(手機、平板電腦、筆記本電腦等)更加寬容。

我希望這 10 個技巧對您自己發布的腳本有所幫助。 如果您尚未嘗試使用腳本將報表或報表集合發佈到 JMP Public,我鼓勵您下載我的示例腳本和數據作為模板。 用您自己的圖表替換各個圖表非常容易。 發布語法沒有太大變化。 您可以利用自動化做更多事情,我希望在未來幾個月內進行更多探索。
好帖子丹! 有關 #7 的更多提示,請參閱在 JMP 14 中管理交互式 HTML 輸出大小