如何在 R (ggplot2) 中重新创建此 Excel 条形图 + 数据表?

RL_*_*Pug 2 r ggplot2

我有一个使用 mtcars 数据集在 excel 中制作的条形图,但我需要在 R 中创建它。我知道如何制作堆积图,但可以添加如下所示的数据表/与图形集成吗?

在此输入图像描述

谢谢你,

Pau*_*aul 5

patchwork可用于组合两个图并可ggtext用于图例。

\n
library(tidyverse)\nlibrary(patchwork)\nlibrary(ggtext)\n
Run Code Online (Sandbox Code Playgroud)\n

转换数据。有了ggtext我们就可以在专栏中使用markdown了gear。我们将使用该\xe2\x96\xa0符号并为其着色。

\n
df <-\n  mtcars %>%\n  mutate(\n    color = case_when(\n      gear == 5 ~ "#F8766D",\n      gear == 4 ~ "#00BA38",\n      gear == 3 ~ "#619CFF",\n    ),\n    gear = fct_reorder(as_factor(glue::glue("<b style=\'color:{color}\'>\xe2\x96\xa0</b> {gear} Gears")), gear),\n    cyl = paste0(cyl, " Cyl")\n  ) %>%\n  count(gear, cyl) \n
Run Code Online (Sandbox Code Playgroud)\n
p1 <-\n  ggplot(df, aes(cyl, n, fill = gear)) +\n  geom_col() +\n  scale_y_continuous(breaks = seq(from = 0, to = 16, by = 2), lim = c(0, 16)) +\n  theme_minimal() +\n  theme(\n    legend.position = "none",\n    axis.title.x = element_blank(),\n    axis.title.y = element_blank(),\n    panel.grid.minor.x = element_blank(),\n    panel.grid.major.x = element_blank(),\n    panel.grid.minor.y = element_blank(),\n    panel.grid.major.y = element_line(colour = "grey")\n  ) +\n  labs(\n    title = "Gears and Cylinders - mtcars.csv"\n  )\n\np2 <-\n  df %>%\n  ggplot(aes(cyl, gear, label = n)) +\n  geom_text() +\n  geom_hline(yintercept = c(0.5, 1.5, 2.5), colour=\'grey\') +\n  theme_void() +\n  theme(\n    axis.text.y = element_markdown(),\n    plot.title = element_blank()\n  )\n
Run Code Online (Sandbox Code Playgroud)\n

用于patchwork将其组合在一起。

\n
p1 + p2 + plot_layout(ncol = 1, heights = c(7, 2))\n
Run Code Online (Sandbox Code Playgroud)\n

阴谋

\n