# 修改原绘图代码以满足要求
#| echo: false
# 设置图形主题(可根据需要设置)
mytheme<- theme (plot.title= element_text (size= "11" ), # 设置主标题字体大小
axis.title= element_text (size= 10 ), # 设置坐标轴标签字体大小
axis.text= element_text (size= 9 ), # 设置坐标轴刻度字体大小
legend.position= "none" ) # 移除图例
# 图(a)修改类别轴项目顺序
p1 <- ggplot (data= df, aes (x= 课程, y= 分数, fill= 课程)) +
geom_boxplot () +
scale_x_discrete (
limits = c ("Python语言" , "R语言" ),
name = "科目" # 修改轴标题
) +
mytheme +
ggtitle ("(a) 修改类别轴项目顺序 \n 默认顺序R语言、Python语言" )
# 图(b)坐标轴互换,并反转x轴元素的顺序
p2<- ggplot (data= df,aes (x= 课程,y= 分数,fill= 课程))+
geom_boxplot ()+
coord_flip ()+ # 坐标轴互换(或者设置y=分数,x=课程)
ylim (54 ,101 )+ # 设置y轴值域(数值范围)
#theme(axis.text.y=element_text(size=9,angle=90,hjust=0.5,vjust=0.5))+ # 设置y轴标角度,并进行水平和垂直位置调整
scale_x_discrete (limits= rev (levels (df$ 课程)))+ # 反转类别轴项目顺序
mytheme+ ggtitle ("(b) 坐标轴互换 \n 反转x轴元素的顺序并旋转90度" )
# 图(c)移除y轴刻度线和标签,删除x轴和y轴次网格线
p3<- ggplot (data= df,aes (x= 分数,fill= 课程,alpha= 0.2 ))+
geom_density ()+ # 绘制核密度图
xlim (50 ,105 )+ # 设置x轴值域(数值范围)
ylim (0 ,0.07 )+ # 设置y轴值域(数值范围)
theme (axis.title.y= element_blank (), # 移除y轴标签
axis.ticks.y= element_blank (), # 移除y轴刻度线
panel.grid.minor.x= element_blank (), # 去掉x轴次网格线
panel.grid.minor.y= element_blank ())+ # 去掉y轴次网格线
annotate ("text" ,x= 69 ,y= 0.015 ,label= "Python语言" ,size= 3 )+ # 添加注释文本
annotate ("text" ,x= 95 ,y= 0.015 ,label= "R语言" ,size= 3 )+
mytheme+ ggtitle ("(c) 移除y轴刻度线和y轴标签 \n 去掉x轴和y轴次网格线" )
# 图(d)移除所有刻度线,刻度标签旋转90度
p4<- ggplot (data= df,aes (x= 分数,fill= 课程,alpha= 0.2 ))+
geom_density ()+ # 绘制核密度图
scale_x_continuous (limits= c (50 ,100 ),
breaks= c (50 ,55 ,60 ,65 ,70 ,75 ,80 ,85 ,90 ,95 ,100 ))+ # 设置x轴值域和刻度线位置
scale_y_continuous (limits= c (0 ,0.07 ),
breaks= c (0 ,0.01 ,0.02 ,0.03 ,0.04 ,0.05 ,0.06 ,0.07 ))+ # 设置y轴值域和刻度线位置
ylab ("密度" )+ # 设置y轴标签
theme (axis.ticks= element_blank (), # 移除所有刻度线
axis.line= element_line (color= "blue" ,linewidth= 1.5 ), # 添加坐标轴直线
axis.text.x= element_text (size= 9 ,angle= 45 ,hjust= 1 ,vjust= 1 ))+ # 设置x轴标签角度
annotate ("text" ,x= 69 ,y= 0.015 ,label= "Python语言" ,size= 3 )+ # 添加注释文本
annotate ("text" ,x= 85 ,y= 0.015 ,label= "R语言" ,size= 3 )+
mytheme+ ggtitle ("(d) 移除所有刻度线 \n x轴刻度标签旋转45度" )
grid.arrange (p1,p2,p3,p4,ncol= 2 ) # 组合图形