r - R ggplot2人口金字塔x和y轴消失
问题描述
我尝试创建一个人口金字塔,x 和 y 轴消失了。
我的问题是如何让 x 和 y 轴返回?例如,y 轴显示年龄组,x 轴显示性别数量。
我的代码如下
3.4 数据网陵
data <- data %>% mutate(agegroup = case_when(DAYS_BIRTH >= 60 ~ '60-100',
DAYS_BIRTH >= 55 & DAYS_BIRTH <= 59 ~ '55-59',
DAYS_BIRTH >= 50 & DAYS_BIRTH <= 55 ~ '50-55',
DAYS_BIRTH >= 45 & DAYS_BIRTH <= 49 ~ '45-49',
DAYS_BIRTH >= 40 & DAYS_BIRTH <= 45 ~ '40-45',
DAYS_BIRTH >= 35 & DAYS_BIRTH <= 39 ~ '35-39',
DAYS_BIRTH >= 30 & DAYS_BIRTH <= 35 ~ '30-35',
DAYS_BIRTH >= 25 & DAYS_BIRTH <= 29 ~ '25-29',
DAYS_BIRTH >= 20 & DAYS_BIRTH <= 25 ~ '20-25'
))
3.5 人口金字塔
ggplot(data,aes(x=agegroup, fill = CODE_GENDER)) +
geom_bar(data=subset(data,CODE_GENDER=="F")) +
geom_bar(data=subset(data,CODE_GENDER=="M"),aes(y=..count..*(-1)))+
scale_y_continuous(breaks=seq(-400000,400000,100000),labels=abs(seq(-400000,400000,100000)))+
coord_flip()
100 个数据样本(原始数据为 500k):
> dput(out)
structure(list(ID = c(5065438, 5142753, 5111146, 5010310, 5010835,
5067057, 5095635, 5096402, 5061372, 5026464, 5026032, 5096494,
5058466, 5088843, 5149050, 5023566, 5095306, 5022248, 5023934,
5105886, 5022044, 5095735, 5021445, 5095851, 5050878, 5116121,
5117760, 5135918, 5117163, 5050562, 5061121, 5036943, 5054192,
5054384, 5148650, 5048416, 5085793, 5054311, 5021709, 5028530,
5086055, 5117403, 5095009, 5090155, 5117461, 5105584, 5149940,
5145821, 5086037, 5088919, 5050594, 5023870, 5009603, 5125666,
5010817, 5069051, 5067456, 5053876, 5115642, 5143360, 5089485,
5066499, 5028239, 5085896, 5053301, 5021648, 5023339, 5010099,
5105746, 5143631, 5029097, 5115510, 5091194, 5142806, 5115796,
5046028, 5042319, 5112626, 5090400, 5022808, 5038881, 5095632,
5126330, 5025114, 5065348, 5066495, 5021658, 5096210, 5097174,
5069030, 5022039, 5149635, 5036884, 5089398, 5142761, 5010660,
5137492, 5125902, 5088914, 5115960), CODE_GENDER = c("F", "F",
"M", "F", "M", "F", "M", "M", "F", "F", "M", "F", "F", "F", "F",
"M", "F", "F", "F", "F", "F", "M", "F", "F", "F", "F", "F", "M",
"F", "M", "F", "F", "F", "M", "F", "F", "F", "F", "F", "F", "F",
"F", "M", "M", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F",
"F", "M", "F", "F", "M", "F", "F", "F", "F", "F", "M", "F", "F",
"F", "M", "M", "M", "F", "F", "F", "F", "M", "M", "F", "F", "F",
"M", "M", "F", "F", "F", "F", "M", "M", "M", "F", "M", "F", "M",
"F", "M", "M", "M", "F", "F", "M"), FLAG_OWN_CAR = c("Y", "N",
"Y", "Y", "Y", "Y", "Y", "Y", "N", "N", "Y", "N", "N", "N", "N",
"Y", "Y", "N", "N", "N", "Y", "N", "N", "N", "N", "Y", "N", "N",
"N", "N", "N", "N", "N", "Y", "Y", "N", "N", "N", "N", "N", "N",
"N", "N", "Y", "Y", "N", "N", "N", "N", "N", "Y", "N", "N", "N",
"N", "Y", "N", "Y", "Y", "N", "N", "N", "N", "N", "Y", "N", "N",
"Y", "Y", "N", "Y", "N", "N", "N", "N", "Y", "N", "N", "N", "N",
"Y", "Y", "N", "N", "Y", "N", "Y", "N", "Y", "N", "N", "N", "Y",
"Y", "Y", "Y", "Y", "N", "N", "Y"), FLAG_OWN_REALTY = c("N",
"N", "Y", "Y", "Y", "Y", "N", "N", "Y", "Y", "Y", "N", "Y", "Y",
"N", "Y", "Y", "Y", "Y", "N", "N", "N", "Y", "N", "N", "Y", "N",
"Y", "N", "N", "Y", "Y", "N", "N", "Y", "Y", "Y", "N", "Y", "Y",
"Y", "N", "Y", "Y", "N", "N", "N", "N", "Y", "Y", "N", "Y", "N",
"N", "Y", "N", "N", "Y", "Y", "Y", "N", "N", "Y", "Y", "N", "Y",
"Y", "Y", "N", "N", "Y", "N", "Y", "N", "Y", "Y", "Y", "Y", "N",
"Y", "Y", "N", "N", "Y", "Y", "N", "Y", "N", "Y", "Y", "Y", "Y",
"Y", "N", "N", "Y", "N", "Y", "Y", "Y"), CNT_CHILDREN = c(2,
0, 0, 1, 2, 0, 1, 0, 1, 1, 0, 2, 2, 0, 2, 2, 0, 0, 2, 2, 1, 0,
0, 0, 0, 1, 0, 2, 1, 2, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2,
1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 2, 0, 1, 2, 0, 0, 2, 1, 0, 0,
0, 0, 0, 2, 2, 0, 2, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0,
1, 1, 0, 2, 0, 0, 0, 0, 0, 1, 2, 0, 0, 1, 2), AMT_INCOME_TOTAL = c(270000,
81000, 270000, 112500, 139500, 144000, 180000, 405000, 135000,
270000, 99000, 103500, 225000, 171000, 135000, 270000, 225000,
202500, 135000, 67500, 225000, 405000, 121500, 225000, 270000,
560250, 74250, 90000, 135000, 225000, 324000, 391500, 135000,
292500, 202500, 229500, 157500, 112500, 202500, 171000, 202500,
94500, 180000, 225000, 148500, 171000, 450000, 202500, 90000,
157500, 121500, 180000, 112500, 45000, 67500, 225000, 121500,
157500, 382500, 126000, 315000, 112500, 157500, 112500, 157500,
292500, 135000, 306000, 112500, 247500, 135000, 81000, 67500,
180000, 135000, 247500, 202500, 675000, 36000, 180000, 112500,
180000, 157500, 112500, 202500, 112500, 270000, 81000, 180000,
157500, 180000, 157500, 180000, 562500, 337500, 270000, 360000,
103500, 157500, 135000), NAME_EDUCATION_TYPE = c("Secondary / secondary special",
"Secondary / secondary special", "Higher education", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Higher education", "Higher education", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Higher education", "Secondary / secondary special", "Higher education",
"Secondary / secondary special", "Secondary / secondary special",
"Higher education", "Secondary / secondary special", "Secondary / secondary special",
"Higher education", "Secondary / secondary special", "Higher education",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Higher education", "Higher education",
"Secondary / secondary special", "Secondary / secondary special",
"Higher education", "Secondary / secondary special", "Higher education",
"Incomplete higher", "Secondary / secondary special", "Lower secondary",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Higher education", "Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Higher education", "Higher education",
"Secondary / secondary special", "Higher education", "Higher education",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Higher education", "Secondary / secondary special",
"Higher education", "Higher education", "Higher education", "Higher education",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Incomplete higher", "Higher education",
"Secondary / secondary special", "Higher education", "Secondary / secondary special",
"Higher education", "Higher education", "Secondary / secondary special",
"Higher education", "Higher education", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special", "Secondary / secondary special",
"Higher education", "Higher education", "Secondary / secondary special",
"Higher education", "Secondary / secondary special", "Secondary / secondary special",
"Secondary / secondary special"), NAME_FAMILY_STATUS = c("Married",
"Single / not married", "Married", "Married", "Married", "Married",
"Married", "Married", "Single / not married", "Married", "Married",
"Married", "Civil marriage", "Single / not married", "Married",
"Married", "Married", "Married", "Separated", "Married", "Separated",
"Married", "Married", "Widow", "Married", "Single / not married",
"Married", "Married", "Separated", "Civil marriage", "Married",
"Single / not married", "Married", "Single / not married", "Married",
"Married", "Married", "Married", "Married", "Married", "Married",
"Married", "Married", "Married", "Married", "Married", "Married",
"Separated", "Married", "Married", "Married", "Single / not married",
"Married", "Married", "Married", "Married", "Married", "Married",
"Separated", "Married", "Married", "Civil marriage", "Married",
"Married", "Married", "Civil marriage", "Married", "Married",
"Married", "Civil marriage", "Married", "Married", "Separated",
"Married", "Single / not married", "Married", "Civil marriage",
"Married", "Married", "Married", "Civil marriage", "Married",
"Married", "Widow", "Married", "Civil marriage", "Married", "Civil marriage",
"Married", "Married", "Married", "Civil marriage", "Married",
"Married", "Separated", "Married", "Civil marriage", "Married",
"Married", "Married"), NAME_HOUSING_TYPE = c("With parents",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"Rented apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"With parents", "House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "With parents", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "With parents", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "With parents", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "With parents", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment", "House / apartment", "House / apartment",
"House / apartment"), DAYS_BIRTH = c(36, 49, 54, 41, 47, 42,
31, 51, 47, 46, 27, 36, 34, 28, 41, 34, 34, 42, 41, 34, 32, 50,
36, 57, 36, 36, 55, 44, 44, 46, 37, 38, 31, 38, 42, 46, 39, 56,
37, 43, 44, 46, 29, 35, 32, 28, 52, 40, 48, 35, 35, 52, 35, 51,
41, 49, 35, 43, 41, 62, 35, 33, 46, 40, 45, 34, 46, 37, 44, 41,
32, 35, 30, 50, 40, 33, 24, 54, 40, 33, 51, 31, 46, 62, 42, 33,
36, 39, 39, 45, 28, 38, 36, 40, 42, 37, 32, 52, 35, 40), DAYS_EMPLOYED = c(6,
1, 3, 5, 15, 8, 1, 9, 23, 7, 4, 10, 5, 6, 14, 3, 10, 23, 7, 8,
5, 6, 14, 15, 6, 6, 9, 2, 14, 8, 13, 16, 1, 10, 7, 3, 7, 5, 14,
1, 8, 4, 4, 6, 10, 3, 2, 13, 3, 16, 4, 5, 10, 10, 9, 7, 4, 2,
2, 6, 1, 15, 14, 22, 8, 15, 12, 11, 18, 1, 8, 9, 6, 12, 20, 10,
0, 12, 1, 2, 1, 1, 3, 39, 11, 15, 4, 0, 2, 4, 4, 7, 3, 8, 1,
11, 8, 9, 16, 11), JOB = c("Managers", "Private service staff",
"Laborers", "Core staff", "Drivers", "Core staff", "Drivers",
"High skill tech staff", "Laborers", "Realty agents", "Managers",
"High skill tech staff", "Laborers", "Laborers", "Laborers",
"Laborers", "Core staff", "High skill tech staff", "Core staff",
"Secretaries", "Core staff", "Managers", "Core staff", "Accountants",
"Accountants", "Sales staff", "Core staff", "Laborers", "Medicine staff",
"Laborers", "Managers", "Managers", "Sales staff", "Laborers",
"Laborers", "Core staff", "Drivers", "High skill tech staff",
"Laborers", "Sales staff", "Laborers", "Waiters/barmen staff",
"Laborers", "Core staff", "Sales staff", "Private service staff",
"Laborers", "High skill tech staff", "Laborers", "Laborers",
"Medicine staff", "Managers", "Sales staff", "Core staff", "Sales staff",
"Laborers", "Sales staff", "Managers", "Managers", "High skill tech staff",
"Managers", "Laborers", "Laborers", "Laborers", "Laborers", "Managers",
"Sales staff", "Core staff", "High skill tech staff", "Drivers",
"Managers", "Core staff", "Accountants", "Accountants", "Laborers",
"Managers", "Core staff", "Managers", "Core staff", "Sales staff",
"Laborers", "Drivers", "Laborers", "Laborers", "High skill tech staff",
"Laborers", "Low-skill Laborers", "Low-skill Laborers", "High skill tech staff",
"Sales staff", "Sales staff", "Sales staff", "High skill tech staff",
"Managers", "Managers", "Laborers", "Managers", "Cleaning staff",
"Laborers", "Laborers"), STATUS = c("C", "0", "C", "0", "0",
"0", "X", "X", "0", "0", "0", "X", "0", "X", "0", "C", "X", "C",
"0", "C", "C", "C", "C", "X", "C", "0", "0", "0", "C", "0", "X",
"X", "C", "0", "X", "X", "X", "C", "0", "0", "C", "C", "0", "C",
"0", "X", "0", "X", "0", "C", "0", "C", "0", "C", "C", "C", "0",
"0", "0", "C", "X", "C", "C", "C", "X", "X", "C", "C", "0", "0",
"C", "C", "C", "X", "0", "X", "0", "C", "C", "C", "X", "0", "0",
"0", "C", "0", "X", "C", "C", "0", "0", "X", "0", "X", "0", "X",
"0", "C", "0", "C"), TARGET = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0), agegroup = c("35-39", "45-49", "50-55", "40-45",
"45-49", "40-45", "30-35", "50-55", "45-49", "45-49", "25-29",
"35-39", "30-35", "25-29", "40-45", "30-35", "30-35", "40-45",
"40-45", "30-35", "30-35", "50-55", "35-39", "55-59", "35-39",
"35-39", "55-59", "40-45", "40-45", "45-49", "35-39", "35-39",
"30-35", "35-39", "40-45", "45-49", "35-39", "55-59", "35-39",
"40-45", "40-45", "45-49", "25-29", "35-39", "30-35", "25-29",
"50-55", "40-45", "45-49", "35-39", "35-39", "50-55", "35-39",
"50-55", "40-45", "45-49", "35-39", "40-45", "40-45", "60-100",
"35-39", "30-35", "45-49", "40-45", "45-49", "30-35", "45-49",
"35-39", "40-45", "40-45", "30-35", "35-39", "30-35", "50-55",
"40-45", "30-35", "20-25", "50-55", "40-45", "30-35", "50-55",
"30-35", "45-49", "60-100", "40-45", "30-35", "35-39", "35-39",
"35-39", "45-49", "25-29", "35-39", "35-39", "40-45", "40-45",
"35-39", "30-35", "50-55", "35-39", "40-45")), row.names = c(NA,
-100L), class = c("tbl_df", "tbl", "data.frame"))
谢谢!!!
解决方案
推荐阅读
- haskell - 未引用的提升构造函数可能会导致什么样的问题?
- python - CSV 中的吸光度和透射率转换
- javascript - 无法使用 Webpack Encore 访问 window["var_name"]
- php - 选择外观
- android - Windows 用户尝试构建为 Linux 构建的 Android NDK 项目
- sql - 如何从查询中更新表的多行?并且仅在存在时更新它
- amazon-web-services - 以非 root 用户身份在 ECS Fargate 中运行容器会引发 EACCES 错误
- python - 以全尺寸保存 matplotlib 图表
- android - 如何在每个回收站视图项上放置进度条?
- python-3.x - 使用位于另一个 python 文件中的多个参数调用函数时出错