练习6:上机题目
一:实验目的与要求
1:了解R语言中各种图形元素的添加方法,并能够灵活应用这些元素。
2:了解R语言中的各种图形函数,掌握常见图形的绘制方法。
二:实验内容
1:某银行在降低贷款拖欠率的数据 bankloan 的示例数据。
2:比较违约与不违约情形不同特征的人群分布。
3:探索不同特征的人群收入与负债的分布情况。口 探索不同特征的人群收入与负债的关系。
三:实验方法与步骤
1)数据预处理,调整数据类型,按照年龄、工龄分组。
2)绘制违约与不违约客户的年龄、教育和工龄的条形图、Cleveland 点图。
3)绘制不同年龄、教育和工龄的客户收入与负债的直方图、核密度图、箱线图、小揭琴图。
4)绘制不同年龄、教育和工龄下客户的收入与负债的散点图。
第1步:读入数据
bankloan <- read.csv(file="bankloan.csv", header=T) bankloan |
第2步:按照年龄分组
(agesort <- cut(bankloan$age,c(0,10,20,30,40,50,60))) |
第3步:按照工龄分组
(worksort <- cut(bankloan$seniority,c(0,5,10,20,30,40), include.lowest = T)) |
第4步:绘制违约与不违约客户的年龄条形图
library(ggplot2) ggplot(data=bankloan,aes(x=agesort,fill=agesort))+geom_bar()+facet_wrap(~default) |
第5步:绘制违约与不违约客户的教育条形图
ggplot(data=bankloan,aes(x=education,fill=education))+geom_bar()+facet_wrap(~default) |
第6步:绘制违约与不违约客户的工龄条形图
ggplot(data=bankloan,aes(x=worksort,fill=worksort))+geom_bar()+facet_wrap(~default) |
第7步:绘制违约与不违约客户的年龄Cleveland点图
ggplot(data=bankloan,aes(x=age,y=age))+geom_point()+facet_wrap(~default) |
第8步:绘制违约与不违约客户的教育Cleveland点图
ggplot(data=bankloan,aes(x=education,y=education))+geom_point()+facet_wrap(~default) |
第9步:绘制违约与不违约客户的工龄Cleveland点图
ggplot(data=bankloan,aes(x=seniority,y=seniority))+geom_point()+facet_wrap(~default) |
第10步:绘制不同年龄的客户收入与负债的直方图
ggplot(data=bankloan,aes(x=age,group=factor(income)))+geom_histogram() |
第11步:绘制不同教育的客户收入与负债的直方图
ggplot(data=bankloan,aes(x=education,group=factor(income)))+geom_histogram() |
第12步:绘制不同工龄的客户收入与负债的直方图
ggplot(data=bankloan,aes(x=seniority,group=factor(income)))+geom_histogram() |
第13步:绘制不同年龄的客户收入与负债的核密度图
ggplot(data=bankloan,aes(x=income,group=factor(age),colour=factor(age)))+geom_density() ggplot(data=bankloan,aes(x=debt_rate,group=factor(age),colour=factor(age)))+geom_density() |
第14步:绘制不同教育的客户收入与负债的核密度图
ggplot(data=bankloan,aes(x=income,group=factor(education),colour=factor(education)))+geom_density() ggplot(data=bankloan,aes(x=debt_rate,group=factor(education),colour=factor(education)))+geom_density() |
第15步:绘制不同工龄的客户收入与负债的核密度图
ggplot(data=bankloan,aes(x=income,group=factor(seniority),colour=factor(seniority)))+geom_density() ggplot(data=bankloan,aes(x=debt_rate,group=factor(seniority),colour=factor(seniority)))+geom_density() |
第16步:绘制不同年龄的客户收入与负债的箱线图
ggplot(bankloan,aes(x=age,y=income))+geom_boxplot() ggplot(bankloan,aes(x=age,y=debt_rate))+geom_boxplot() |
第17步:绘制不同教育的客户收入与负债的箱线图
ggplot(bankloan,aes(x=education,y=income))+geom_boxplot() ggplot(bankloan,aes(x=education,y=debt_rate))+geom_boxplot() |
第18步:绘制不同工龄的客户收入与负债的箱线图
ggplot(bankloan,aes(x=seniority,y=income))+geom_boxplot() ggplot(bankloan,aes(x=seniority,y=debt_rate))+geom_boxplot() |
第19步:绘制不同年龄的客户收入与负债的小揭琴图
ggplot(bankloan,aes(factor(age),income))+geom_violin() ggplot(bankloan,aes(factor(age),debt_rate))+geom_violin() |
第20步:绘制不同教育的客户收入与负债的小揭琴图
ggplot(bankloan,aes(factor(education),income))+geom_violin() |
第21步:绘制不同工龄的客户收入与负债的小揭琴图
ggplot(bankloan,aes(factor(seniority),income))+geom_violin() ggplot(bankloan,aes(factor(seniority),debt_rate))+geom_violin() |
第22步:绘制不同年龄下客户的收入与负债的散点图。
ggplot(bankloan,aes(income,debt_rate))+geom_point(aes(colour=factor(age))) |
第23步:绘制不同教育下客户的收入与负债的散点图。
ggplot(bankloan,aes(income,debt_rate))+geom_point(aes(colour=factor(education))) |
第24步:绘制不同工龄下客户的收入与负债的散点图。
ggplot(bankloan,aes(income,debt_rate))+geom_point(aes(colour=factor(seniority))) |
四:思考与实验总结
1)如何选择绘制的图形类型?
选择绘制的图形类型通常取决于数据的类型和分析的目的。
柱状图(Bar Plot):用于显示不同类别之间的频数或数量关系。适用于比较类别变量之间的差异。
折线图(Line Plot):用于显示连续变量随时间或其他有序变量的变化。适用于显示趋势和变化的方向。
散点图(Scatter Plot):用于显示两个连续变量之间的关系。适用于发现变量之间的相关性和观察异常值。
箱线图(Box Plot):用于显示连续变量的分布情况,包括中位数、四分位数和异常值。适用于比较多个组的分布,并识别异常值。
直方图(Histogram):用于显示连续变量的分布情况。适用于了解数据的分布形状和集中程度。
密度图(Density Plot):用于显示连续变量的分布密度估计。适用于比较两个或多个分布,并观察它们之间的重叠程度。
小提琴图(Violin Plot):结合了箱线图和密度图的特点,展示了数据的分布形状和中位数。适用于比较多个组的分布,并观察它们之间的差异。
Cleveland 点图(Cleveland Dot Plot):用于显示类别变量和连续变量之间的关系。适用于显示组内变量的分布情况和组间的差异。
2)如何向原始图形添加合适的图形元素,使图形简单明了且更能表达数据含义?
添加合适的图形元素可以帮助图形更加清晰地传达数据的含义。常见的图形元素如下:
标题(Title):描述图形内容和目的,使读者可以快速理解图形。
坐标轴标签(Axis Labels):标明 x 轴和 y 轴的含义,提供数据的单位或范围。
图例(Legend):用于解释图形中的颜色或图案代表的含义,特别适用于多组数据的比较。
参考线(Reference Lines):在图形中添加水平线或垂直线,表示特定数值或阈值,有助于对比数据和发现模式。
数据标签(Data Labels):在图形中添加数据点的数值标签,使得读者可以直观地了解数据。
注释(Annotations):添加文字说明或箭头指向特定数据点或趋势,提供更多背景信息或关键观察。
图形形状(Geometric Shapes):在图形中添加几何形状,如矩形、圆形等,以突出或强调特定区域或数据。
背景色(Background Color):调整图形背景色,使得图形更具对比度或吸引力。