首页 > 解决方案 > 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"))

谢谢!!!

标签: rggplot2

解决方案


推荐阅读