【发布时间】:2019-06-22 15:23:15
【问题描述】:
我已经使用 ggraph 和 igraph 构建了一个树状图。
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$layout, xmax = 1, xmin = 0, ymin = 0, ymax = 1) 中的错误: `layout' 不是矩阵
这是否意味着我必须将 igraph 转换为矩阵?因为情节看起来和我想要的完全一样。我只是想阻止基础数据。任何有关如何将我的 igraph 变成 ggplot 的帮助将不胜感激。
编辑:带有 dput() 的数据(抱歉,之前没有使用过,所以我不知道它是否正确)
输入(EL) 结构(列表(来自 = c(“印欧语”,“阿尔巴尼亚语”,“Gheg”, “阿尔巴尼亚人”、“托斯克人”、“托斯克人”、“托斯克人”、“印欧人”、“亚美尼亚人”、 “亚美尼亚语”、“印欧语系”、“波罗的斯拉夫语系”、“波罗的海语系”、“东方语系”、 “东方”,“东方”,“东方”,“波罗的海”,“西方”,“波罗的斯拉夫”, “斯拉夫”,“东方”,“东方”,“东方”,“东方”,“斯拉夫”,“南方”, “东南”、“东南”、“东南”、“南”、“西南”、 “西南”、“西南”、“西南”、“西南”、 “斯拉夫”,“西方”,“捷克斯洛伐克”,“捷克斯洛伐克”,“西方”,“Lechitic”, “Lechitic”、“Lechitic”、“West”、“Sorbian”、“Sorbian”、“Indo-European”、 “凯尔特人”,“岛国”,“布莱斯尼克”,“布莱斯尼克”,“布莱斯尼克”,“岛国”, “Goidelic”,“Goidelic”,“Goidelic”,“印欧语”,“日耳曼语”, “北日耳曼语”,“东斯堪的纳维亚语”,“东斯堪的纳维亚语”,“丹麦-瑞典语”, “丹麦-博克马尔”、“丹麦-瑞典”、“丹麦-里克马尔”、“丹麦-瑞典”、 “北日耳曼人”,“西斯堪的纳维亚人”,“西斯堪的纳维亚人”,“日耳曼人”, “西日耳曼语”,“英语”,“英语”,“西日耳曼语”,“弗里斯兰语”, “弗里斯兰语”、“弗里斯兰语”、“西日耳曼语”、“高地德语”、“德语”、 “德语”、“中德语”、“东中德”、“东中德”、 “东中德”、“东中德”、“中德”、 “西中德”、“西中德”、“西中德”、 “西中德”、“摩泽尔法兰克”、“德”、“上德”、 “上德语”,“Alemannic”,“Alemannic”,“Alemannic”,“Alemannic”, “上德语”,“巴伐利亚-奥地利”,“巴伐利亚-奥地利”,“巴伐利亚-奥地利”, “巴伐利亚-奥地利”、“高地德语”、“意第绪语”、“意第绪语”、“西日耳曼语”、 “低撒克逊-低法兰克语”,“低法兰克语”,“低法兰克语”, “低弗兰肯”,“低弗兰肯”,“低弗兰肯”,“低撒克逊-低弗兰肯”, “低撒克逊”,“低撒克逊”,“低撒克逊”,“低撒克逊”,“低撒克逊”, “低撒克逊”,“低撒克逊”,“低撒克逊”,“低撒克逊”,“低撒克逊”, “低撒克逊语”、“印欧语”、“希腊语”、“阁楼”、“阁楼”、“阁楼”、 "阁楼", "阁楼", "希腊语", "多立克"), to = c("阿尔巴尼亚语", "Gheg", “Gheg阿尔巴尼亚人”,“Tosk”,“Arbereshe阿尔巴尼亚人”,“Arvanitika阿尔巴尼亚人”, “托斯克阿尔巴尼亚语”、“亚美尼亚语”、“亚美尼亚语(语言)”、“西亚美尼亚语”、 “Balto-Slavic”、“Balto-Slavic”、“Baltic”、“Eastern”、“Latgalian”、“Standard Latvian”、 “立陶宛语”、“萨莫吉希亚语”、“西方语”、“普鲁士语”、“斯拉夫语”、 “东方”、“白俄罗斯”、“俄罗斯”、“Rusyn”、“乌克兰”、“南方”、 “东南”,“保加利亚”,“马其顿”,“教会斯拉夫”, “西南”、“波斯尼亚”、“克罗地亚”、“黑山”、“塞尔维亚”、 “斯洛文尼亚”,“西方”,“捷克斯洛伐克”,“捷克”,“斯洛伐克”,“Lechitic”, “Kashubian”、“Polish”、“Silesian”、“Sorbian”、“Lower Sorbian”、 “上索布”、“凯尔特人”、“岛国”、“布赖顿”、“布列塔尼”、 “康沃尔语”、“威尔士语”、“Goidelic”、“爱尔兰语”、“Manx”、“苏格兰盖尔语”、 “日耳曼语”、“北日耳曼语”、“东斯堪的纳维亚语”、“Oevdalian”、 “丹麦-瑞典”、“丹麦-博克马尔”、“挪威”、“丹麦-里克马尔”、 “丹麦语”、“瑞典语”、“西斯堪的纳维亚语”、“法罗语”、“冰岛语”、 “西日耳曼语”、“英语”、“英语(语言)”、“苏格兰语”、“弗里斯兰语”、 “弗里斯兰语(语言)”、“北弗里斯兰语”、“萨特弗里斯语”、“高地德语”、 “德语”,“Hunsrik”,“中德”,“东中德”,“标准德语”, “上撒克逊”、“下西里西亚”、“怀米索里”、“西中德”、 “宾夕法尼亚德语”、“普法尔茨法兰克语”、“里普里亚语”、“摩泽尔法兰克语”、 “卢森堡语”、“上日耳曼语”、“东法兰克语”、“阿勒曼尼语”、 “Colonia Tovar German”,“瑞士德语”,“Swabian”,“Walser”, “巴伐利亚-奥地利”、“巴伐利亚”、“Cimbrian”、“Hutterisch”、“Mocheno”、 “意第绪语”、“东部意第绪语”、“西部意第绪语”、“低撒克逊-低弗兰肯语”、 “低法兰克语”、“南非荷兰语”、“荷兰语”、“林堡语”、“弗拉姆语”、 “Zeeuws”、“Low Saxon”、“Achterhoeks”、“Drents”、“Gronings”、“Plautdietsch”、 “Sallands”、“East Frisian Low Saxon”、“Low Saxon”、“Stellingwerfs”、 “Twents”、“Veluws”、“Westphalien”、“Greek”、“Attic”、“Cappadosian Greek”、 “希腊语(语言)”、“古希腊语”、“Pontic”、“Yevanic”、“Doric”、 "Tsakonian")), class= "data.frame", row.names = c(NA, -136L))
【问题讨论】:
-
请编辑您的问题并添加一些数据(使用
dput())。 -
完成。我希望这是使用 dput() 的正确方法,但如果我错了,请纠正我。