美文网首页R语言做生信R小推车
R How to create the data neede

R How to create the data neede

作者: Liam_ml | 来源:发表于2019-01-08 15:13 被阅读49次

什么是Sankey图?

我们称他们为米格尔的Sankey图,但你可能将它们称为冲积图或Sankey图甚至Sankey图。Sankey图是一种可视化数据流的方式。Sankey图非常适合显示决策树(例如,CHART,CHAID)。Sankey图由三组元素组成: 节点, 链接和 确定其位置的 指令。继续阅读以了解如何使用R创建Sankey图。

第1步:创建整洁的数据框

创建可视化的第一步是以有用的格式获取数据。在Sankey图的情况下,诀窍是将数据转换为整洁的数据格式。这篇文章使用一个简单的例子来说明一切如何融合在一起。下面,您可以看到R代码来创建一个小数据框。我把它显示为一个表格,然后是生成的Sankey图表。

my.data = data.frame(Married = c("Yes","Yes", "Yes", "No", "No"),
    Pet = c("Yes", "Yes", "No", "Yes", "No"),
    Happy = c("Yes", "Yes", "Yes", "Yes", "No"),
    freq = 5:1)
image.png image.png
  • Sankey图与表中的数据的顺序不同,在“是”之前出现“否”。Sankey自动对类别进行排序,以最大限度地减少重叠量。
  • 如果表中的两行包含相同的信息,Sankey会自动将它们组合在一起。在我们的表中,我们可以看到前两行是相同的。我们的Sankey图已经将它们组合在一起,因此从结婚:是到宠物:是到快乐:是的重量(宽度)为5 + 4 = 9.- 如果将鼠标悬停在Sankey图上,则可以看到此值。
  • Sankey图自动将具有相同文本的节点 (块)合并在一起 。例如,虽然我们在上面的示例中有五行数据,但我们只有两个唯一的Pet值,这就是为什么只出现两个宠物所有权块。
  • 我们可以通过更改标签来拆分块,如下面的数据框和生成的Sankey图所示。我的同事Carmen正致力于修改代码,以便能够在不更改标签的情况下拆分这些代码。
image.png

第2步:安装flipPlot包

我在这篇文章中使用的Sankey图来自我们的flipPlots包(Displayr / flipPlots)。如果您不知道如何从GitHub安装,请查看如何从GitHub安装软件包

第3步:创建Sankey图

我们使用下面的代码创建了本文中显示的第一个Sankey图表。请注意,数据框作为第一个参数传入,但第四个列(包含权重的列)已被删除。我已将link.color设置为“Source”,它将从同一节点发出的颜色设置为一致。

library(flipPlots)
SankeyDiagram(my.data[, -4],
              link.color = "Source", 
              weights = my.data$freq) 

我已经提供了下面帖子中显示的第二个sankey图的代码。与前面代码的唯一区别是我使用了label.show.varname = FALSE,以防止变量名在sankey图中显示。

library(flipPlots)
SankeyDiagram(my.data.2[, -4],
              link.color = "Source",
              label.show.varname = FALSE,
              weights = my.data.2$freq)

米霖微信.PNG

添加我的微信吧

相关文章

网友评论

    本文标题:R How to create the data neede

    本文链接:https://www.haomeiwen.com/subject/wdovrqtx.html