gpt4 book ai didi

r - 如何在 R (ggplot2) 中重新创建此 excel Barchart + 数据表?

转载 作者:行者123 更新时间:2023-12-05 08:37:50 26 4
gpt4 key购买 nike

我有一个使用 mtcars 数据集在 excel 中制作的条形图,但我需要在 R 中创建它。我知道如何制作堆叠图,但是否可以像下面这样添加数据表/与图形集成?

enter image description here

谢谢,

最佳答案

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

library(tidyverse)
library(patchwork)
library(ggtext)

转换数据。使用 ggtext 我们可以在 gear 列中使用 markdown。我们将使用 符号并为其着色。

df <-
mtcars %>%
mutate(
color = case_when(
gear == 5 ~ "#F8766D",
gear == 4 ~ "#00BA38",
gear == 3 ~ "#619CFF",
),
gear = fct_reorder(as_factor(glue::glue("<b style='color:{color}'>■</b> {gear} Gears")), gear),
cyl = paste0(cyl, " Cyl")
) %>%
count(gear, cyl)
p1 <-
ggplot(df, aes(cyl, n, fill = gear)) +
geom_col() +
scale_y_continuous(breaks = seq(from = 0, to = 16, by = 2), lim = c(0, 16)) +
theme_minimal() +
theme(
legend.position = "none",
axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.grid.minor.x = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.y = element_blank(),
panel.grid.major.y = element_line(colour = "grey")
) +
labs(
title = "Gears and Cylinders - mtcars.csv"
)

p2 <-
df %>%
ggplot(aes(cyl, gear, label = n)) +
geom_text() +
geom_hline(yintercept = c(0.5, 1.5, 2.5), colour='grey') +
theme_void() +
theme(
axis.text.y = element_markdown(),
plot.title = element_blank()
)

使用patchwork将它们组合在一起。

p1 + p2 + plot_layout(ncol = 1, heights = c(7, 2))

plot

关于r - 如何在 R (ggplot2) 中重新创建此 excel Barchart + 数据表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64265093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com