根据R中的频率表在单个图上创建4个是/否条形图

qojgxg4l  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(108)

我的数据集中有四个变量作为列:
1.该人年轻时是否享受过免费校餐
1.此人的父母是否上过大学
1.此人是否在学校学习过A级戏剧
1.他们学校是否提供高级戏剧课程
列中的每个值为“是”、“否”或“不适用”。
我想把四组条形图放在一个图上(然后保存为.png格式),每个条形图都有一个是柱和一个否柱,我使用下面的公式为每个变量创建了一个频率表,这里我使用了一个例子,即一个人在年轻时是否接受过免费学校餐(FSM):

FSM_df <- champions %>% count(FSM, sort = TRUE) %>% mutate(pct = prop.table(n))
percentage = label_percent()(FSM_df$pct)
FSM_df$percentage = percentage

我可以使用下面的代码创建一个条形图,但我不确定如何为多个图创建条形图:

ggplot(FSM_df, aes(x = FSM, y = n, fill = "#fe8080")) + geom_bar(stat = "identity", show.legend = FALSE) + coord_flip() + labs(x = "FSM", y = "Number of Champions") + geom_text(aes(label = percentage), color = "#662483")
eoigrqb6

eoigrqb61#

生成随机数据

lunch <- sample(0:1, 100, replace = TRUE, prob = c(0.7,0.3))
parents <- sample(0:1, 100, replace = TRUE, prob = c(0.5,0.5))
drama_major <- sample(0:1, 100, replace = TRUE, prob = c(0.9,0.1))
drama_offered <- sample(0:1, 100, replace = TRUE, prob = c(0.8,0.1))

创建碎片

df <- tibble(lunch = lunch,
       parents = parents,
       drama_major = drama_major,
       drama_offered)

枢轴_更长

df %>% 
  pivot_longer(cols = 1:4,
               names_to = "measure",
               values_to = "measure_is_true_1") %>% 
  mutate(is_true = if_else(measure_is_true_1 == 0, "no", "yes")) %>% 
  ggplot(aes(x = measure)) +
  geom_bar(aes(fill = is_true), position = "dodge", alpha = 0.7) +
  coord_flip() +
  theme_bw()

^在本例中,您应该将数据转换为长格式,然后使用填充参数设置分组美观性。ggplot逻辑应该是:我沿着x轴画出我的小组,并计算每次在回答栏中出现0或1的频率(无论他们是否在吃免费午餐或看免费戏剧等)。这就是你如何在同一张图上实现这一切的方法。
Simple Bar Chart Plot

相关问题