[英]R: networkD3 sankey plot - colours not displaying
我現在用的是networkd3封裝[R生產桑基圖。 我使用以下代碼來生成工作圖:
sankeyNetwork(Links = df_links, Nodes = df_nodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
units = "Cases", fontSize = 12, nodeWidth = 20)
但是,所有節點都被塗成藍色,我認為程序包的默認輸出是分別為每個節點着色。
當我嘗試添加NodeGroup函數時(文檔說應該允許顯示顏色),所有節點標簽都消失了,所有節點現在都變為黑色。
sankeyNetwork(Links = df_links, Nodes = df_nodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
NodeGroup = "ID", units = "Cases", fontSize = 12,
nodeWidth = 20)
如果有人能讓我知道我要去哪里錯,那將不勝感激。 我懷疑我誤解了NodeGroup
變量的用法-我目前正在將七個NodeID
分配給唯一組c(0,1,2,3,4,5,6,7)
,其最初目的是讓每個節點顏色不同。 這是變量的正確解釋嗎?
您遇到的問題一定是正在使用的數據,但是由於您尚未共享數據,我無法確切告訴您什么。 如果我使用結構正確的數據並將其用作輸入,則第一個精確的sankeyNetwork()
命令將按預期方式工作(帶有顏色)...
(有關NodeGroup
參數的討論,請參見下文)
library(networkD3)
URL <- paste0('https://cdn.rawgit.com/christophergandrud/networkD3/',
'master/JSONdata/energy.json')
energy <- jsonlite::fromJSON(URL)
df_links <- energy$links
df_nodes <- energy$nodes
sankeyNetwork(Links = df_links, Nodes = df_nodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
units = "Cases", fontSize = 12, nodeWidth = 20)
如果檢查幫助文件,則NodeGroup
參數被描述為“字符串,用於指定節點中的節點組。用於為網絡中的節點着色。” 如果將NodeGroup
指定為c(0,1,2,3,4,5,6,7)
,則不是字符串。 這可能就是為什么使用第二個sankeyNetwork()
命令使所有節點均為黑色的原因。 例如,請參見有關使用sankeyNetwork
組着色的問題 。
此外,在“用法”部分的幫助文件頂部,您可以看到NodeGroup
的默認值是傳遞給NodeID
。 因此,如果您沒有如第一個示例中那樣為NodeGroup
分配任何內容,則NodeID
將用作組...有效地為每個節點創建一個唯一的組,該組將根據colourScale
參數分配顏色。
幫助文件中沒有明確說明的一件事是,似乎僅使用了組名的第一個單詞,因此在上圖中,例如,“機油進口”,“機油儲備”和“機油”所有節點都被視為同一組的一部分,因此具有相同的顏色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.