【问题标题】:"Elevator Plot" in R - plotting inflow and outflowR中的“电梯图” - 绘制流入和流出
【发布时间】:2019-03-12 15:58:10
【问题描述】:

我对 R 中的情节有疑问。 我已经成功评估了我的数据,现在我有来自不同楼层的数据。对于每一层和每一部电梯,我都想创建一个情节。 您可以在附图中看到一个示例。

不幸的是,我完全错过了这种方法。这在R中甚至可能吗?我的替代方法是在 PowerPoint 中手动完成...

input <- c(320, 300, 170, 210, 300, 200, 400)
out <- c(255, 220, 300, 225, 400, 300, 200)
level <- c(2, 1, 0, -01, 3, 1, 0)
elevator <- c(A, A, A, A, B, B, B)
df <- data.frame(input, out, level, elevator)

【问题讨论】:

    标签: r plot graph


    【解决方案1】:

    这将完成这项工作,使用 ggplot2:

    ggplot(df) +
      # Split per elevator and floor
      facet_grid(level~elevator, as.table=FALSE, labeller=label_both) + 
      # Add arrow "in" and its text
      geom_segment(x=0, y=0, xend=2, yend=0, size=10, color="#A0C080", 
                   lineend="butt", linejoin="mitre", 
                   arrow=arrow(length=unit(.02, "native"), type="closed")) +
      geom_text(aes(label=input), x=1, y=0, hjust=.5, size=8) +
      # Add arrow "out" and its text
      geom_segment(x=2, y=8, xend=0, yend=8, size=10, color="#C0B0B0", 
                   lineend="butt", linejoin="mitre",
                   arrow=arrow(length=unit(.02, "native"), type="closed")) +
      geom_text(aes(label=out), x=1, y=8, hjust=.5, size=8) +
      # Draw floors
      geom_rect(xmin=2.5, xmax=4, ymin=-4, ymax=12) +
      # Graphical tweaks
      theme_light() + theme(panel.grid=element_blank()) + ylim(-4,12) + xlim(-.5,3.5)
    

    PS:如果您真的想包含计数为 0 的箭头,请将它们包含在您的数据框中或使用 tidyr::complete(...)(参见文档)

    【讨论】:

    • 非常感谢您的努力。这几乎就是我所需要的。我的优势更多在于分析和处理数据。您的示例再次向我展示了 R 在可视化结果方面也非常有效。
    • 不客气!对于下一个问题,建议解释/展示您已经尝试解决的问题以及您遇到的问题......尽管我承认当您不知道如何开始时很难
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2012-10-18
    • 2020-02-06
    • 2018-05-31
    • 2022-08-23
    • 2020-04-25
    相关资源
    最近更新 更多