使用 ggplot 在 R 中为预算创建单行饼图

Creating single row pie chart for budget in R with ggplot

首先,这是我的输出:

structure(list(Income = 18000, Rent = 7300, Wifi = 477, Gas = 900, 
MTR_Bus = 600, Food = 3000, Total_Expenses = 12277, Remaining_Income = 5723), class = "data.frame", row.names = c(NA, -1L))

得出这样的数据框:

我正在尝试使用此预算在 R 中创建一个简单的饼图,尽管我只需要支出和收入(换句话说,我不需要变量“总支出”或“剩余收入” ).

我的问题是我能想到的最好的是这样的:

bar <- ggplot(data = Budget) + geom_bar(mapping = aes(x = Total_Expenses, fill = row))+coord_polar()

我想我的问题有两个方面:1) 这是我代码的正确结构吗 2) 我应该为 x 或 fill 使用什么?我在使用的书中并没有真正得到很好的答案。

感谢您的帮助!

重塑您的数据,例如使用tidyr::pivot_longer():

library(tidyr)
library(dplyr)
library(ggplot2)

budget_pie <- Budget %>% 
  pivot_longer(everything()) %>% 
  filter(!grepl("^(Total|Remaining)", name))

ggplot(data = budget_pie, aes(x = "", y = value, fill = name)) +
  geom_col() +
  coord_polar("y", start = 0)