美文网首页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