Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
r将igraph转换为vis网络_R_Igraph_Arules_Visnetwork - Fatal编程技术网

r将igraph转换为vis网络

r将igraph转换为vis网络,r,igraph,arules,visnetwork,R,Igraph,Arules,Visnetwork,我找到了一种将igraph转换为visNetwork的方法(请参阅)。假设从igraph到visNetwork的转换前后应该是相同的,但我的结果显示,转换到visNetwork后,结果是不同的 我将尝试使用Library(arules)中的示例数据data(“Groceries”)来演示这个问题 #预定义库 图书馆(阿鲁莱斯) 图书馆(阿鲁莱斯维兹) 图书馆(visNetwork) 图书馆(igraph) #获取示例数据并获取关联规则 数据(“杂货”) 规则一年后。。。但是我已经把所有的东西都打

我找到了一种将igraph转换为visNetwork的方法(请参阅)。假设从igraph到visNetwork的转换前后应该是相同的,但我的结果显示,转换到visNetwork后,结果是不同的

我将尝试使用
Library(arules)
中的示例数据
data(“Groceries”)
来演示这个问题

#预定义库
图书馆(阿鲁莱斯)
图书馆(阿鲁莱斯维兹)
图书馆(visNetwork)
图书馆(igraph)
#获取示例数据并获取关联规则
数据(“杂货”)

规则一年后。。。但是我已经把所有的东西都打好了,所以也可以

如果我理解正确,这就是你麻烦的根源-

value=ig_df$vertices$lift#可以更改为lift或confidence

最简单的解决方案是将提升值指定给
size
,因为在visNetwork中
size:Number。默认值为25。大小用于确定内部没有标签的节点形状的大小。这些形状是:图像、圆形、菱形、圆点、星形、三角形、三角形、正方形和图标
。我不确定
在这里是如何工作的,但我认为如果您还提供适当的
缩放
,您可以使用
值。

因此,解决方案是:

size=ig_df$vertices$lift#可以更改为lift或confidence

请注意,默认情况下,具有NA提升的节点的大小设置为25,而对于大小为2或3的提升,您几乎看不到节点。可以按指数增加提升大小,这将增加节点的大小并放大提升的差异

ig_df <- as_data_frame(ig, what = "both")
ig_df$vertices["lift"] <- ig_df$vertices["lift"] ** 3

ig_df我无法重现,是否缺少一些代码?我的
规则
对象中的值与显示的值不同。嗨@Esther,谢谢你的回复,这是我的错误。我已将
support=0.001
更改为
support=0.01
confidence=0.5
更改为
confidence=0.4
。现在,
规则应与所示相同:)
ig <- plot(rules, method="graph", control=list(type="items"))
tf <- tempfile( )
saveAsGraph(rules, file = tf, format = "dot" )
# clean up temp file if desired
#unlink(tf)

# Convert igraph to dataframe
ig_df <- as_data_frame(ig, what = "both")

# Plot visNetwork
visNetwork(
  nodes = data.frame(
     id = ig_df$vertices$name
 ,value = ig_df$vertices$lift # could change to lift or confidence
 ,title = ifelse(ig_df$vertices$label == "",ig_df$vertices$name, 
 ig_df$vertices$label)
 ,ig_df$vertices
 ), 
edges = ig_df$edges
) %>%
visEdges(arrows ="to") %>%  
visOptions( highlightNearest = T )
ig_df <- as_data_frame(ig, what = "both")
ig_df$vertices["lift"] <- ig_df$vertices["lift"] ** 3