簡體   English   中英

在劇情和圖例之間同步顏色

[英]Synchronise colors between plot and legend

我有此命令可以從igraph生成網絡圖:

plot(ig, layout=layout.fruchterman.reingold(ig),vertex.label=NA,vertex.label.color="black",vertex.frame.color="black",edge.color="black", vertex.color=rainbow(9)[data2$Group], main="MB Network")

data2是另一個對象,其中包含有關igraph對象ig中的頂點分組的信息。 我想按頂點分組為頂點着色,然后為圖例的組顏色准則添加圖例,因此我使用了以下命令:

legend("topleft",legend=unique(data2$Group),col=rainbow(9)[data2$Group])

但是,圖例中使用的顏色與圖的顏色不匹配。 我該如何糾正?

我過去使用過一個名為RColorBrewer的軟件包,它可以為您創建顏色托盤。 你看過了嗎?

一旦顏色匹配或相同,則圖例也將具有相同的顏色。

希望這可以幫助。

我同意@Resh的觀點, RColorBrewer提供了出色的調色板!

這是著名的立方圖上的示例

require(igraph)
require(RColorBrewer)

我先從外部定義調色板,然后在調色板中選擇了“ Accent”四種顏色。 然后,根據稱為“組”的因子,將每種顏色與八個頂點相關聯。 由於顏色是綠色,紫色,橙色和黃色,因此特意將因子級別設置為G,P,O和Y。 這將幫助我們知道圖形和圖例中的顏色是否正確。

pal <- brewer.pal(4,"Accent")
g <- make_graph("Cubical")
Group <- gl(4, 2, labels = c("G","P","O","Y"))
vertex.col <- pal[Group]

plot(g, 
     layout=layout.fruchterman.reingold(g),
     vertex.label.color="black",
     vertex.frame.color="black",
     edge.color="black", 
     vertex.color=vertex.col, 
     main="Cubical")

legend("topleft",bty = "n",
       legend=levels(Group),
       fill=pal, border=NA)

結果是...

傳說中的立體例子

謝謝大家的投入!

我以某種方式使用圖例的fill = rainbow(9)[unique(data2 $ Group)]糾正了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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