使用 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)
首先,这是我的输出:
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)