R-网络可视化问题



我有一个相当大的数据集,其中有两个列fromto。我正在尝试产生一个简单的网络图来可视化这两列中各个元素之间的关系,因此我在下面尝试了这个简单的示例。

Source <- c("A", "A", "A", "A", "B", "B", "C", "C", "D")
Target <- c("B", "C", "D", "J", "E", "F", "G", "H", "I")
NetworkData <- data.frame(Source, Target)
library(networkD3)
simpleNetwork(NetworkData,linkColour="yellow")

上面的示例和我的数据集之间的唯一区别是,我的数据集中有1500行/观测值。但是,simpleNetwork功能正在产生各种关联的巨型向日葵类型的可视化,这不是很愉快。

[网络图输出] [2]

我的问题是1)有没有更好的方法来可视化数据2)我至少能与源节点以不同的方式给目标节点上色吗?

任何建议或建议都非常感谢。预先感谢。

通常要回答问题的第一部分,根据您要说明的内容,不同的可视化可能是有意义的。尝试获取网络的一些基本描述:边缘计数,密度,AVG。路径距离,您已经知道您正在查看哪种关系数据。正如Lukea上面指出的那样,图形可视化中的洞察力非常取决于手头网络数据的结构!

可视化不一定是毫无意义的,但是我承认使用它们而不是实际从中获得任何分析,您应该首先认为要在Grpah中可视化的内容。p>当您确定什么会带来所需的见解时,颜色的节点确实是一个关键的视觉工具:至于问题的第二部分,在networkD3中,您应该使用NodeGroup参数来彩色节点。在igraph中,您将向量分配给V(graph)$color,然后在使用gplot()绘制时的参数vertex.col中将矢量分配给参数。

以下是您的示例图,由距离Igraph的距离颜色为颜色:

Source <- c("A", "A", "A", "A", "B", "B", "C", "C", "D")
Target <- c("B", "C", "D", "J", "E", "F", "G", "H", "I")
NetworkData <- data.frame(Source, Target)
# Visualize using igraph
library(igraph)
g <- graph_from_edgelist(as.matrix(NetworkData), directed = TRUE)
# Colour by distance from first node:
heatmap <- colorRampPalette(c("red", "yellow"))(100)
distance.from.first.node <- distances(g, V(g)[1])
V(g)$color <- heatmap[1+round(distance.from.first.node / (max(distance.from.first.node)/(length(heatmap)-1)))]
# Plot
plot.igraph(g)

我无法想到绘制您提供的数据的任何要点,但是如果您需要的话,这是:

# Get the data you downloaded vvv(MAKE YOUR OWN PATH HERE)vvv
data <- read.csv(file="Downloads/Network.txt", sep="|")
# Remove your missing data
data <- data[data[,1]!="",]
data <- data[data[,2]!="",]
g2 <- graph_from_edgelist(as.matrix(data), directed = TRUE)
# Re-colour and plot:
distance.from.first.node <- distances(g2, V(g2)[1])
V(g2)$color <- heatmap[1+round(distance.from.first.node / (max(distance.from.first.node)/(length(heatmap)-1)))]
# Plot with smaller vertexes and no labels
plot.igraph(g2, vertex.size=4, vertex.label=NA)

相关内容

  • 没有找到相关文章