【问题标题】:How to incresase igraph distance for each edge in R?如何增加 R 中每条边的 igraph 距离?
【发布时间】:2020-10-12 04:02:36
【问题描述】:

我有一个 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

谁能帮帮我?谢谢

【问题讨论】:

  • 我引用了你的链接,但它不起作用
  • 我用的是链接的方式,还是很拥挤。
  • 哦,那你能不能提供你的图表以便我调整?请输入 dput(df_graph) 并将输出粘贴到您的问题中,以便我可以处理您的数据。
  • 已编辑问题

标签: r igraph


【解决方案1】:

您可以通过一些简单的更改来获得漂亮的图表。首先,将顶点标签更改为第二个图中的数字。另外,请使用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,] = c(-3,14)
LOC[21,] = c(-3,18)
LOC[25,] = c(9,18)
LOC[29,] = c(-9,18)
LOC[35,] = c(-6,15)
LOC[30,] = c(-9,12)
LOC[31,] = c(-6,18)
LOC[37,] = c(1,14)
LOC[38,] = c(-9,15)
LOC[44,] = c(1,18)

plot(DFGS, layout=LOC, vertex.label=1:vcount(df_graph),
    edge.arrow.size = 0.5)

手动编辑可以完成更多工作,但我将把它留给你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    相关资源
    最近更新 更多