library(tidyverse)
library(rio)
library(sjmisc)
library(here) # 仅是quarto文档中需要使用here()命令打开、保存文件
library(showtext) # mac电脑调整字体,wins可不用
showtext_auto() # mac电脑调整字体,wins可不用
<- import(here("files/data/cepsw2studentCN.dta"))
std
<- std %>%
std1 filter(w2upeng==100) %>%
group_by(schids) %>%
summarise(eng_mean=mean(w2eng,na.rm=TRUE)) %>%
mutate(schids=factor(schids))
%>% ggplot()+
std1 geom_col(aes(y=fct_reorder(schids, eng_mean),x=eng_mean))+
labs(x="英语成绩学校均分",y="学校序号",
title = "图1. 学生英语成绩学校均分排序图",
caption = "数据来源:CEPS2014-2015年数据")+
theme_minimal()
作业3参考答案
- 取分制是100分制的学校,计算每所学校英语成绩均分,以此均分做柱状图,且柱状图要排序和横向显示;
- 请选择样本中上海的学生,对学生身高与体重的信息进行必要清理后,做一个二者之间的散点图;
<- std %>%
std2 filter(w2frame==2) %>%
select(w2c01,w2c02) %>%
filter(between(w2c01,130,200)) %>%
filter(between(w2c02,25,100))
%>% ggplot()+
std2 geom_point(aes(w2c01,w2c02),alpha=0.4)+
labs(x="身高",y="体重",
title = "图2. 学生身高与体重之间的散点图",
caption = "数据来源:CEPS2014-2015年数据")+
theme_minimal()
- 请作学生认知能力(原始分)的密度图,并将寄宿生和非寄宿生的密度图放在一张图上;
<- std %>%
std3 select(w2cogscore,w2b15) %>%
drop_na() %>%
mutate(w2b15=to_label(w2b15))
%>% ggplot()+
std3 geom_density(aes(x=w2cogscore,fill=w2b15),alpha=0.4)+
labs(x="英语成绩",y="密度",
title = "图3.寄宿生与非寄宿生英语成绩分布图",
caption = "数据来源:CEPS2014-2015年数据",
fill="寄宿")+
theme_minimal()
- 使用”primary_teachers.xlsx”数据,作甘肃、吉林、江苏三省的小学教师人数(teacher)随年份变化的线状图。
<- import(here("files/data/primary_teachers.xlsx"))
teacher
<- teacher %>%
teacher1 filter(province=="甘肃" | province=="吉林" | province=="江苏")
%>% ggplot()+
teacher1 geom_line(aes(x=year,y=teacher,color=province))+
labs(x="年份",y="数量",color="省份",
title = "图4. 甘肃、吉林、江苏三省小学教师人数变化图",
caption = "数据来源:CEPS2014-2015年数据")+
theme_minimal()