簡體   English   中英

R:networkD3 sankey圖-顏色未顯示

[英]R: networkD3 sankey plot - colours not displaying

我現在用的是封裝生產桑基圖。 我使用以下代碼來生成工作圖:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM