首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ggplot到ggplot对象

从ggplot到ggplot对象
EN

Stack Overflow用户
提问于 2019-01-29 13:22:12
回答 1查看 1.7K关注 0票数 0

我已经用图形和照片建立了一个树状图。

代码语言:javascript
复制
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,但是它返回一个错误:

代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

发布于 2019-01-30 04:19:26

一个布局告诉igraph,每个节点的xy位置都是一个地块的位置。ig2ggplot要求将布局存储为图形属性。你需要这样做

代码语言:javascript
复制
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')

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54422076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档