【发布时间】:2018-06-20 12:56:02
【问题描述】:
我正在使用igraph 包来绘制我在 yEd 中创建的图表。这是一个应该覆盖在地理地图上的图表,所以我想做的第一件事就是改变顶点坐标,使它们与它们所代表的经度/纬度相匹配。 (简单的线性变换)
我尝试使用 GraphML 格式,但 iGraph 无法读取 yEd 创建的 GraphML 文件,因此我将图形保存为 GML 文件。顶点信息的结构如下:
node [
id 0
label ""
graphics [
x 2181.0043222386603
y 1463.6747524664843
w 5.2609883750396875
h 5.1510372122625085
type "ellipse"
raisedBorder 0
fill "#FFCC00"
outline "#000000"
]
]
如您所见,坐标保存在graphics 属性中。这是有效的 GML 语法(至少 AFAIK)。但是,load_graph 未正确处理此属性,并且 iGraph 不保存坐标。当我尝试提取顶点属性时,我得到了这个:
> vertex_attr(g) %>% glimpse()
# List of 3
# $ id : num [1:73] 0 1 2 3 4 5 6 7 8 9 ...
# $ label : chr [1:73] "" "" "" "" ...
# $ graphics: chr [1:73] "qÑÜ\020#8" "qÑÜ\020#8" "qÑÜ\020#8" "qÑÜ\020#8" ...
如何正确加载图形,包括 x 和 y 坐标?
【问题讨论】:
标签: r igraph graph-theory