如何创建实体关系图(ERD)

ffx8fchx  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(202)

除了graphviz和/或DiagrammeR之外,有人知道在R中创建实体关系图(ERD)的简单易行的方法吗?我不太使用graphviz,而且经常花费比我想记住它的语法更多的时间来创建一个简单的图。
我想创造一些类似于哈德利·威克姆在他的“R for Data Science“中关于Relational Data的章节,具体的数字可以看到here
注:我不知道这个图是否真的是用R做的,我只是喜欢它的布局,希望能在R中轻松地复制出这样的东西。

yiytaume

yiytaume1#

是的,Jeffrey B. Arnold在他的书 *R for Data Science中对此进行了解释:练习解答 *.请参阅下面第13章练习13.3.3的摘录:

1. OmniGraffle(默认设置,如R4DS手册所示)

R for Data Science使用数据库架构图来说明表之间的关系。大多数流程图或图表软件以及某些专用数据库软件都可用于创建数据库架构图。R for Data Science中的图表是使用OmniGraffle创建的,其源代码可在其GitHub资料档案库中找到。

2. R中的datamodelr

绘制数据库架构图的另一个选项是R包datamodelr,它可以通过编程创建数据库架构图。以下代码使用datamodelr绘制BattingMasterSalaries表之间的关系图。

library(datamodelr)

dm1 <- dm_from_data_frames(list(
  Batting = Lahman::Batting,
  Master = Lahman::Master,
  Salaries = Lahman::Salaries
)) %>%
  dm_set_key("Batting", c("playerID", "yearID", "stint")) %>%
  dm_set_key("Master", "playerID") %>%
  dm_set_key("Salaries", c("yearID", "teamID", "playerID")) %>%
  dm_add_references(
    Batting$playerID == Master$playerID,
    Salaries$playerID == Master$playerID
  )

dm_create_graph(dm1, rankdir = "LR", columnArrows = TRUE) %>%
  dm_render_graph()

您将看到:

参考:https://jrnold.github.io/r4ds-exercise-solutions/relational-data.html#exercise-13.3.3

相关问题