如何解决如何增加R中每个边的图形距离?
我有一个CSV文件,需要绘制一个图形。
图形包含节点和边。
因此,我使用以下代码进行了操作。
start.time <- Sys.time()
#Loading Packages
library(igraph)
library(readr)
library(haven)
#import data
df = read.csv('../../Pre_Draw_Graph_for_R.csv',header = TRUE,encoding = 'UTF-8')
#Creating an iGraph Style Edge List
df_Edge_List <- df
#Creating Graph
df_graph = graph.data.frame(df_Edge_List,directed = TRUE)
#df Network: First Try
#Layout Options
set.seed(3500)
layout1 <- layout.fruchterman.reingold(df_graph)
#Node or vertex Options: Color
V(df_graph)$color <- "yellow"
V(df_graph)[degree(df_graph,mode = "in") > 500]$color <- "red"
#Edge Options: Size
E(df_graph)$color <- "grey"
#Plotting
plot(df_graph,vertex.label=NA)
#plot(df_graph)
end.time <- Sys.time()
time.taken <- end.time - start.time
time.taken
我可以输出以下结果,但是结果有一些问题。它表明每个节点都非常拥挤。
我希望增加图形距离,但是我已经使用了很多方法。我无法解决问题。我希望得到以下结果,但是我现在不能做到。我想清楚地看到图表。
我使用以下内容显示了dput
的结果。
dput(df_graph,file = "G.R")
由于数据太大,我使用了Google链接进行共享 https://drive.google.com/file/d/1wdF8ZKFde8bDSrFrN9e9KfD3tm6dN_s0/view?usp=sharing
有人可以帮助我吗?谢谢
解决方法
通过一些简单的更改,您就可以通过大多数方式获得漂亮的图形。首先,将顶点标签更改为数字,如第二张图中所示。另外,请使用layout_components
,以使组件彼此分离。
library(igraph)
set.seed(1234)
LOC = layout_components(df_graph)
plot(df_graph,layout=LOC,vertex.label=1:vcount(df_graph))
可以,但是箭头很乱。这有两个原因:箭头太大,并且大多数(所有?)顶点都具有向后的环。让我们删除循环并减小箭头的大小。
这看起来很有用。如果您想要更好的东西,则需要开始手动移动放置不良的顶点。还有很多工作,但是您会得到更好的印象。
LOC[ 5,] = c(-1.5,-5)
LOC[ 9,] = c(-3,-2)
LOC[16,14)
LOC[21,18)
LOC[25,] = c(9,18)
LOC[29,] = c(-9,18)
LOC[35,] = c(-6,15)
LOC[30,12)
LOC[31,18)
LOC[37,] = c(1,14)
LOC[38,15)
LOC[44,18)
plot(DFGS,vertex.label=1:vcount(df_graph),edge.arrow.size = 0.5)
可以通过手动编辑完成更多工作,但我将留给您。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。