我看起來最終被繪製的節點是類AgNode
。在?AgNode
幫助頁面上列出您可以設置AgNode
的屬性。一旦知道了要設置的屬性,就可以將一個列表傳遞給nodeAttrs
參數給您的繪圖命令。 (編輯:實際上是一個更好的列表可能是節點在Rgraphviz documentation屬性描述)
nodeAttrs
的參數採取一個列表,其中該列表中的每個命名的元件對應於AgNode
的屬性之一。在每個位置,存儲一個命名向量,其中向量的名稱與節點名稱(即術語矩陣中的單詞)相對應,並且該值表示該屬性的值。例如
list(
color=c(futures="blue", demand="red"),
shape=c(crude="ellipse", budget="circle"),
)
所以,當你想通過他們的頂點數來着色方面,我會假設你的意思是邊緣,因爲每個字是圖中的一個頂點。因此,使用您的tdm
對象
freqterms <- findFreqTerms(tdm, lowfreq = 6)[1:25]
vtxcnt <- rowSums(cor(as.matrix(t(tdm[freqterms,])))>.5)-1
我救你想要的條款,然後我基本上覆制繪圖命令裏面的代碼來計算你的0.5截止的相關性,看看有多少在這種換句話說每個字子集連接到。這是vtxcnt
變量。 (可能有更高效的方法來提取這個,但我找不到它)。現在,我已經準備好指定顏色
mycols<-c("#f7fbff","#deebf7","#c6dbef",
"#9ecae1","#6baed6","#4292c6",
"#2171b5", "#084594")
vc <- mycols[vtxcnt+1]
names(vc) <- names(vtxcnt)
在這裏,我抓起一些顏色ColorBrewer。我有8個值,因爲vtxcnt
的值範圍是0-8。如果您的範圍較廣或想要摺疊類別,則可以使用cut()
命令對它們進行分類。然後我創建了一個名爲矢量vc
,將每個單詞匹配到適當的顏色。 vc
應該是這樣的
head(vc)
# ability accord agreement ali also analysts
# "#084594" "#c6dbef" "#2171b5" "#9ecae1" "#f7fbff" "#4292c6"
而現在我們已經準備好,使情節
pp <- plot(tdm,
terms = freqterms,
corThreshold = 0.5,
nodeAttrs=list(fillcolor=vc))
因此,大家可以看到節點的定製是非常靈活。如果您將正確的值傳遞給nodeAttrs
,您可以根據自己的喜好爲其着色。