我有一个简单的data.frame,使用冲积包将其制成一个简单的冲积图。如何编辑图?按重要性顺序,我的问题是:


更改配色方案,以使流来自同一颜色
“允许的”单元是相同的颜色。
添加标题
保存此图,以便以后将其绘制到带有几个ggplots的网格中


注意:ggalluvial可能更容易,但不幸的是我无法在工作中安装它,因此该解决方案需要使用base r,ggplot或冲积软件包。

library(alluvial)
df <- structure(list(Admitted.To =
             c("UnitC", "UnitC", "UnitC", "UnitC", "UnitD", "UnitD",
               "UnitD", "UnitD", "UnitE", "UnitE", "UnitE", "UnitF",
               "UnitB", "UnitB", "UnitB", "UnitB", "UnitB", "UnitG",
               "UnitH", "UnitA", "UnitA", "UnitA", "UnitA", "UnitA"),
           Discharged.From = c("UnitC", "UnitD", "UnitE", "UnitA",
                               "UnitC", "UnitD", "UnitE", "UnitA",
                               "UnitD", "UnitE", "UnitA", "UnitF",
                               "UnitD", "UnitI", "UnitE", "UnitB",
                               "UnitA", "UnitG", "UnitH", "UnitC",
                               "UnitD", "UnitI", "UnitE", "UnitA"),
           n = c(136, 2, 1, 2, 1, 162, 2, 3, 1, 213, 1, 3, 5, 1, 7,
                 22, 23, 1, 32, 10, 9, 39, 9, 607)),
      .Names = c("Admitted.To", "Discharged.From", "n"),
      row.names = c(NA, -24L),
      class = c("tbl_df", "tbl", "data.frame"))


我一直在使用下面的颜色代码,直到弄清楚如何将颜色映射到“允许的对象”组

set.seed(8) # for nice colors
cols <- hsv(h = sample(1:8/10), s = sample(3:8)/8, v = sample(3:8)/8)


和我的冲积图代码:

alluvial(df[,1:2],
     freq = 8,
     blocks = T,
     col = cols)


我尝试将title = "SampleTitleHere"添加到我的代码中,但是它只是绘制另一列。我在此包装上找不到太多文档。

最佳答案

感谢您使用冲积包装。一一解答您的问题:


1更改配色方案,以使来自相同“ Admitted.To”单元的流的颜色相同。


例如。像那样




pal <- RColorBrewer::brewer.pal(8, "Set1") # colors to use
alluvial(
  f[,1:2],
  freq = 8,
  blocks = T,
  col = k[ match(f$Admitted.To, unique(f$Admitted.To))    ]
)




添加标题



也许我们将添加一个titlemain参数。同时使用mtext()在顶部添加“边距文本”




pal <- RColorBrewer::brewer.pal(8, "Set1")
alluvial(
  f[,1:2],
  freq = 8,
  blocks = T,
  col = k[ match(f$Admitted.To, unique(f$Admitted.To))    ]
)
mtext("A title", 3, line=3, font=2)


如果标题跨越多行,或者您希望在标题和地块之间留有较大的边距或空间,则可以(a)通过使用更多数量的传递给论点; (b)将marline参数弄乱,以调整标题应出现在距绘图多远的位置。



保存此图,以便以后将其绘制到带有几个ggplots的网格中



我对此没有一个快速的答案。如果您需要使用mtext()将其与其他基于ggplot的图形进行混合,将是更好的选择。请参阅下文,了解如何使其工作。


注意:ggalluvial可能更容易,但是不幸的是我无法在工作中安装它,因此该解决方案需要使用base r,ggplot或冲积软件包。


即使您不是系统管理员,也应该能够安装和使用任何R软件包(例如ggalluvial)。您只需要将它们安装在您有权写入文件的地方。甚至可以是您保留分析的文件夹。参见例如https://csg.sph.umich.edu/docs/R/localpackages.htmlhttp://www.stat.osu.edu/computer-support/mathstatistics-packages/installing-r-libraries-locally-your-home-directory,或Google的“ R用户库树”。

10-04 23:19