我已经用图形和照片建立了一个树状图。
library(ggraph)
library(igraph)
EL <- read.csv("EL2.csv", sep=";",header=TRUE, stringsAsFactors = FALSE)
ELM <-as.matrix(EL)
mygraph <- graph_from_data_frame(ELM)
ggraph(mygraph, layout = 'dendrogram', circular = TRUE) +
geom_edge_diagonal() +
geom_node_point() +
theme_void()但是,我需要节点和边缘的底层数据来在Tableau中重新创建它。
我想使用ggplot_build,但这需要一个ggplot对象。为了创建我正在尝试使用的ig2ggplot,但是它返回一个错误:
ig2ggplot(mygraph, dfOnly = FALSE, labels = FALSE, metab = TRUE)Layout.norm中的错误(g$布局,xmax = 1,xmin = 0,ymin = 0,ymax = 1):“布局”不是矩阵
这是不是意味着我必须把我的照片变成矩阵?因为情节看上去跟我想要的一模一样。我只是想阻止潜在的数据。对于如何将我的照片转换成一个图形,任何帮助都将不胜感激。
编辑:使用dput()的数据(对不起,以前没有使用过它,所以我不知道它是否正确)
dput(EL)结构(见清单(from=c)(“印欧语”、“阿尔巴尼亚语”、“盖格”、“阿尔巴尼亚语”、“托斯克”、“印欧”、“亚美尼亚”、“亚美尼亚”、“印欧语”、“巴尔托-斯拉夫维奇”、“波罗的海”、“东部”、“东方”、“波罗的海”、“西部”、“巴尔托-斯拉夫”、“斯拉夫语”,“东方”、“斯拉夫人”、“南方”、“东南”、“南方”、“西南”、“西南”、“斯拉夫”、“西”、“捷克-斯洛伐克”、“捷克-斯洛伐克”、“西”、“莱希蒂奇”、"West“、"Sorbian”、"Sorbian“、"Indo-European”、"Celtic“、"Insular”、"Brythonic“、"Insular”、"Goidelic“、"Indo-European”、"Germanic“、"North Germanic”、"East斯堪的纳维亚“、”东斯堪的纳维亚“、”丹麦-瑞典“、”丹麦-Bokmal“、”丹麦-瑞典“、”丹麦-Riksmal“,“丹麦-瑞典语”、“北日耳曼语”、“西斯堪的纳维亚语”、“西斯堪的纳维亚语”、“日耳曼语”、“西日耳曼语”、“英语”、“英语”、“西日耳曼语”、“弗里斯兰语”、“弗里森语”、“西日耳曼语”、“高级德语”、“中间德语”、“中东德语”,“中德”、“西中德文”、"Moselle Franconian“、”德语“、”上层德语“、"Alemannic”、“上部德语”、“Bavarian-奥地利”、“巴伐利亚-奥地利”、“高级德语”、"Yiddish“、"Yiddish”、“西日耳曼人”、“低撒克逊人-低弗朗索尼人”、“低弗朗索内人”、“低弗朗索内人”、“低弗兰克宁人”、“低弗兰肯人”、“低撒克逊人”、“低萨克森人”、“低撒克逊人”、“印欧人”、“希腊语”、"Attic“、”希腊语“、”Doric“、to =c(阿尔巴尼亚语、"Gheg”、Gheg阿尔巴尼亚语、"Tosk“、"Arbereshe阿尔巴尼亚语”、"Arvanitika阿尔巴尼亚语“、"Tosk阿尔巴尼亚语”、“亚美尼亚语”、“亚美尼亚语”、“西部亚美尼亚语”、“Balto-斯拉夫语”、“波罗的海”、“东方”、“拉丁语”、“标准拉脱维亚语”、“立陶宛语”、“萨摩亚语”、“西部”、“普鲁士语”、“斯拉夫语”、“东方”、“白俄罗斯语”、“俄语”、"Rusyn“、”乌克兰语“、”南方“、”东南部“、”保加利亚语“、”马其顿语“、”教堂斯拉夫语“、”西南“、”波斯尼亚“、”克罗地亚“、”黑山“、”塞尔维亚“、”斯洛文尼亚“、”西“、”捷克-斯洛伐克“,“捷克人”、“斯洛伐克人”、“莱希蒂人”、“卡舒比亚人”、“波兰人”、“西里西亚人”、“索布人”、“下索布人”、“上索布人”、“凯尔特人”、“岛屿人”、“布莱索安人”、“布雷顿人”、“康尼什人”、“威尔士人”、“戈德利奇人”、“爱尔兰人”、“曼克斯人”、“苏格兰盖尔人”、“日耳曼语”、“北日耳曼语”、“东斯堪的纳维亚人”、“奥夫达利安人”、“丹麦语-瑞典人”、“丹麦语-Bokmal”、“挪威语”、“丹麦语-Riksmal”、“丹麦语”、“瑞典语”、“西斯堪的纳维亚语”、"Faroese“、”冰岛语“、”西日耳曼语“、”英语“、”英语(语言)“、”苏格兰人“、”弗里西亚语“、”弗里西亚语(语言)“、”北弗里森语“、"Saterfrisian”、“高级德语”、“德语”、"Hunsrik“、”中间德语“、”中东德语“、”标准德语“、“上撒克逊人”、“下西里西亚人”、“怀米本斯人”、“中西德人”、“宾西法尼亚人”、“帕拉茨·弗兰科宁人”、“里普里亚人”、“莫赛尔·弗兰科宁人”、“卢森堡人”、“上德人”、“上德人”、“东弗兰克纳人”、“阿莱曼尼茨人”、“科洛尼娅·塔瓦尔·德文”、“瑞士德国人”、“斯瓦比安人”、“沃尔瑟人”、“巴伐利亚-奥地利人”、“巴伐利亚人”、“希姆布里安人”、“赫特里什人”、“莫切诺人”、“伊迪迪什人”、“东方伊德迪什”、“西伊德迪什”、“低撒克逊-低弗朗康宁”、“低弗朗索纳”、“南非荷兰人”、“林伯吉什”、"Vlaams“、"Zeeuws”、"Low Saxon“、”Achterhoek“、"Drents”、"Gronings“、"Plautdietsch”、"Sallands“、"East Frisian”、"Low Saxon“、”Stellingwer“、"Twents”、"Low“、”Westph外星人“、"Greek”、"Attic",“卡帕多西亚希腊语”、“希腊语(语言)”、“古希腊语”、“庞蒂克”、“叶瓦尼奇”、“多里克”、“萨库尼亚语”),类= "data.frame",row.names = c(NA,-136 L)
发布于 2019-01-30 04:19:26
一个布局告诉igraph,每个节点的x和y位置都是一个地块的位置。ig2ggplot要求将布局存储为图形属性。你需要这样做
mygraph <- igraph::graph_from_data_frame(ELM) #create a graph
mylayout <- igraph::layout_as_tree(mygraph, circular = T) #create a circular layout
mygraph$layout = mylayout #store layout as a graph attribute
#another gotcha is that ig2ggplot needs both vertex names and vertex labels.
#as of now you just have vertex names.
V(mygraph)$label = V(mygraph)$name #store label as a vertex attrbute
MetamapsDB::ig2ggplot(mygraph,
dfOnly = FALSE,
labels = FALSE,
metab = TRUE ) +
theme(legend.position = 'none')

https://stackoverflow.com/questions/54422076
复制相似问题