[英]DiagrammeR creates “wrong” diagram in R
我有用R中的图表库生成图表的代码。对于数据源,我使用xlsx文件,您可以在此链接下载
library("xlsx")
df <-xlsx::read.xlsx("animals.xlsx", sheetIndex = 1, header = TRUE, encoding = "UTF-8")
首先,我将文件导入R。然后使用col1
和col2
创建图
uniquenodes <- unique(c(df$col1, df$col2))
library(DiagrammeR)
nodes <- create_nodes(nodes=seq(uniquenodes), type="number", label=uniquenodes)
edges <- create_edges(from=match(df$col1, uniquenodes), to=match(df$col2, uniquenodes), rel="related")
g <- create_graph(nodes_df=nodes, edges_df=edges)
render_graph(g)
使用代码后,我得到以下图片:
何时应如下所示:
将数据导入代码更改为:
df <-xlsx::read.xlsx("animals.xlsx",
sheetIndex = 1,
header = TRUE,
encoding = "UTF-8",
stringsAsFactors = FALSE)
看来您的专栏实际上是因素,而不是字符。 我将在此处重新创建您的数据框(我不使用xlsx
包,因为我太懒了,无法进行必要的系统更改来安装它)
df <- data.frame(col1 = c("Cat", "Dog", "Bird"),
col2 = c("Feline", "Canis", "Avis"))
uniquenodes <- unique(c(df$col1, df$col2))
uniquenodes
[1] 2 3 1
当列为要素时使用代码将获得所获得的图形。 如果列是字符串,您的代码将按需要工作。 注意这里的区别:
df <- data.frame(col1 = c("Cat", "Dog", "Bird"),
col2 = c("Feline", "Canis", "Avis"),
stringsAsFactors = FALSE)
uniquenodes <- unique(c(df$col1, df$col2))
uniquenodes
library(DiagrammeR)
nodes <- create_nodes(nodes=seq(uniquenodes), type="number", label=uniquenodes)
edges <- create_edges(from=match(df$col1, uniquenodes), to=match(df$col2, uniquenodes), rel="related")
g <- create_graph(nodes_df=nodes, edges_df=edges)
render_graph(g)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.