我真的很喜欢Flexdashboards和Shinydashboards中R的valueboxes的简洁外观:

r - 类似静态报表的Valuebox函数-LMLPHP

是否有使用熟悉的工具(即ggplot2)的包装或配方可以轻松生成静态报告的类似输出?例如,在从RMarkdown编织的PDF文档中

编辑:

经过几次尝试,我使用ggplot2获得了一些有用的东西(下面的答案)。欢迎其他答案!

最佳答案

我使用Emojifont R package扩展了HAVB的答案,以使外观更像值框。

以下是从HAVB的答案中修改的代码,其中包括超酷的字体图标和表情符号。我也将文本部分分解为大(value)和小(info)文本,以便可以对它们进行不同大小调整。

library(ggplot2)
library(emojifont)
df <- data.frame(
    x = rep(seq(2, 15, 6.5), 2),
    y = c(rep(6.5, 3), rep(2,3)),
    h = rep(4.25, 6),
    w = rep(6.25, 6),
    value = c("78%",
             "+10K",
             "8/10",
             "ALL",
             "6",
             "< 0.5"),
    info = c("meaningless plots",
             "hours wasted",
             "zombies prefer brains",
             "dogs go to heaven",
             "infoboxes",
             "target pvalue"),
    shape = c(fontawesome(search_fontawesome("chart")),
              emoji("athletic_shoe")),
    font_family = c(rep("fontawesome-webfont", 5),
                    "EmojiOne"),
    color = factor(1:6)
)

ggplot(df, aes(x, y, height = h, width = w, label = info)) +
    geom_tile(aes(fill = color)) +
    geom_text(color = "white", fontface = "bold", size = 10,
              aes(label = value, x = x - 2.9, y = y + 1), hjust = 0) +
    geom_text(color = "white", fontface = "bold",
              aes(label = info, x = x - 2.9, y = y - 1), hjust = 0) +
    coord_fixed() +
    scale_fill_brewer(type = "qual",palette = "Dark2") +
    geom_text(size = 20, aes(label = shape, family = font_family,
                             x = x + 1.5, y = y + 0.5), alpha = 0.25) +
    theme_void() +
    guides(fill = FALSE)


r - 类似静态报表的Valuebox函数-LMLPHP

我认为结果是相当不错的,可以进一步改进以使其在美学上更令人愉悦。

08-16 07:10