R语言入门第四集 实验三:数据可视化

R语言入门第四集 实验三:数据可视化



一、资源

【R语言】R语言数据可视化——东北大学大数据班R实训第三次作业

在r中rowsums_R语言初级教程(15): 矩阵(下篇)

R语言环境变量的设置 环境设置函数为options()

R语言绘图基础篇-散点图(geom_point)

箱形图

ggplot2绘图去除图例

R:使用ggplot2画散点图时出现错误: Continuous value supplied to discrete scale

3.3 R中内置的散点图的所有样式/shape(重要)



二、答案更新纠正

  1. 1.2绘制散点图,分别展示年龄与男性的死亡率(对数即取log)的关系。

    答案:

    plot(df$Age,log(df$q_male))
    
    

    应该为:

    1.2绘制散点图,分别展示年龄、年份与男性的死亡率(对数即取log)的关系。

    plot(df$Age,log(df$q_male))
    plot(df$Year,log(df$q_male))
    
    
  2. 1.3绘制年龄与对数生存人数的散点图,分析这2个量的关系。

    答案:

    应该为:

    1.3绘制年龄与对数生存人数的散点图,分析这2个量的关系。

    df$L_exp <- df$L_female_exp+df$L_male_exp
    plot(df$Age,df$L_exp)
    
    
  3. 1.5绘制男性的对数死亡人数即(Male_death的对数)的直方图,来观察男性的对数死亡人口数的分布情况。

    答案:

    应该为:

    1.5绘制男性的对数死亡人数即(Male_death的对数)的直方图,来观察男性的对数死亡人口数的分布情况。

    hist(log(df$Male_death),breaks=100)
    
    
  4. 2.2数据探索,绘制一张图表来展示1990到2011年的HPI的变化情况,横轴是时间
    (可以是数据的第一列),纵轴是HPI值。

    答案:

    Sys.setlocale("LC_TIME","English")
    # 最初的date数据类型是factor
    class(houseIndex$date)
    head(houseIndex$date)
    # 然后转化为character
    houseIndex$date <- as.character(houseIndex$date)
    class(houseIndex$date)
    head(houseIndex$date)
    # 然后转化为Date
    houseIndex$date <- as.Date(houseIndex$date, "%d-%b-%y")
    class(houseIndex$date)
    head(houseIndex$date)
    plot(houseIndex$date,houseIndex$index,type = "l",main = "HIP(Canberra)-since 1990")
    
    

    应该为:

    2.2数据探索,绘制一张图表来展示1990到2011年的HPI的变化情况,横轴是时间(可以是数据的第一列),纵轴是HPI值。

    Sys.setlocale("LC_TIME","English")
    houseIndex$date <- as.character(houseIndex$date)
    houseIndex$date <- as.Date(houseIndex$date, "%d-%b-%y")
    plot(houseIndex$date,houseIndex$index,type = "l",main = "HIP(Canberra) - from 1990 to 2011")
    
  5. 2.4为了进一步了解HPI的波动,计算其每个月的增长率。绘图时,增长率为正数的月份由加号(“+”)表示,为负的用(“o”)表示。

    答案:

    应该为:

    2.4为了进一步了解HPI的波动,计算其每个月的增长率。绘图时,增长率为正数的月份由加号(“+”)表示,为负的用(“o”)表示。

    houseIndex$rates <- houseIndex$delta/houseIndex$index[houseIndex$rates]
    houseIndex$rates[1] <- (houseIndex$index[1]-1)/1
    houseIndex$cyl <- houseIndex$rates
    houseIndex$cyl[houseIndex$cyl>0]<- 3
    houseIndex$cyl[houseIndex$cyl<0]<- 1
    library(ggplot2)
    ggplot(houseIndex, aes(date, rates))+
      geom_point(shape=houseIndex$cyl)
    
    
  6. 2.6绘制一个箱线图,来查看HPI的增长率的分布情况。

    答案:

    boxplot(rateMatrix,ylab="HPI Increase Rate")
    
    

    应该为:

    2.6绘制一个箱线图,来查看HPI的增长率的分布情况。

    boxplot(houseIndex$rates,ylab="HPI Increase Rate")
    
    


三、答案

实验三 数据可视化

题目1:
1.1通过读取文件death rate.csv获取数据保存到df中,简单分析数据,获取共有数据多少条,是否有缺失值或是异常值,若存在这样的数据,将这些数据剔除;对于死亡率来说,它的值域是0<q<=1 。【注:1-6题中的死亡率,只考虑男性的死亡率】

df <-read.csv("death rate.csv")
dim(df)
sum(rowSums(is.na(df)) > 0) 
nrow(df) - nrow(df[df$q_male > 0 & df$q_male <= 1, ])
nrow(df)
df <- na.omit(df)
nrow(df)
df <- df[df$q_male > 0 & df$q_male <= 1, ]
nrow(df)

1.2绘制散点图,分别展示年龄、年份与男性的死亡率(对数即取log)的关系。

plot(df$Age,log(df$q_male))
plot(df$Year,log(df$q_male))

1.3绘制年龄与对数生存人数的散点图,分析这2个量的关系。

df$L_exp <- df$L_female_exp+df$L_male_exp
plot(df$Age,df$L_exp)

答:根据年龄与对数生存人数的散点图,可知这2个量的关系为随着年龄的增大,对数生存人数逐渐降低,且降低的幅度快速增大。

1.4绘制直方图来观察一下男性死亡人数的分布。

hist(df$Male_death,breaks=100)

1.5绘制男性的对数死亡人数即(Male_death的对数)的直方图,来观察男性的对数死亡人口数的分布情况。

hist(log(df$Male_death),breaks=100)

1.6计算df的各变量的相关系数,并画出相关图。【用corrgram包】

install.packages("corrgram")
library(corrgram)
options(digits=2)  
cor(df) 
corrgram(df, 
         order=TRUE,
         lower.panel=panel.shade,
         upper.panel=panel.pie,
         text.panel=panel.txt,
         main="Corrgram of df intercorrelations")

题目2:
2.1通过读取文件House-handle.csv获取数据保存到houseIndex中。

houseIndex<-read.csv("House-handle.csv")

2.2数据探索,绘制一张图表来展示1990到2011年的HPI的变化情况,横轴是时间(可以是数据的第一列),纵轴是HPI值。

Sys.setlocale("LC_TIME","English")
houseIndex$date <- as.character(houseIndex$date)
houseIndex$date <- as.Date(houseIndex$date, "%d-%b-%y")
plot(houseIndex$date,houseIndex$index,type = "l",main = "HIP(Canberra) - from 1990 to 2011")

2.3绘制一张图,展示每个月的HPI的增长量,表示为delta,在0的位置添加参考线。【注:增长量,可以用下一条减上一条来计算;第一条的上一条的HPI值可以认为是1】

houseIndex$rates <- which(houseIndex$index==houseIndex$index)-1
houseIndex$rates[1] <- 1
houseIndex$delta <-houseIndex$index-houseIndex$index[houseIndex$rates]
houseIndex$delta[1] <- houseIndex$index[1]-1
plot(houseIndex$date,
     houseIndex$delta,
     type="p", 
     main="Increase in HPI",
     xlab="时间",
     ylab="delta") 
abline(h=0,lty = 3) 

2.4为了进一步了解HPI的波动,计算其每个月的增长率。绘图时,增长率为正数的月份由加号(“+”)表示,为负的用(“o”)表示。

houseIndex$rates <- houseIndex$delta/houseIndex$index[houseIndex$rates]
houseIndex$rates[1] <- (houseIndex$index[1]-1)/1

houseIndex$cyl <- houseIndex$rates
houseIndex$cyl[houseIndex$cyl>0]<- 3
houseIndex$cyl[houseIndex$cyl<0]<- 1

houseIndex$gear <-houseIndex$rates
houseIndex$gear[houseIndex$gear>0]<- 3
houseIndex$gear[houseIndex$gear<0]<- 1

library(ggplot2)
ggplot(houseIndex, aes(date, rates))+
  geom_point(aes(shape=factor(cyl)),size=3)+
  scale_shape_manual(values = c(1,3))+
  theme(legend.position = 'none')

2.5对HPI增长率建立表格,其中每一行代表一个月份,每一列代表一个年份,显示前四年的数据(HPI增长率舍入到小数点后4位);并绘制一个HPI的平均年增长率和HPI的平均月增长率(全部年份的年增长率(列平均)和月增长率(行平均))。

rateMatrix <- xtabs(rates~month+year,data=houseIndex)
round(rateMatrix[,1:4],digits=4)
yearmean <- colMeans(rateMatrix)
barplot(yearmean,main="HPI的平均年增长率",xlab="年",ylab="平均年增长率") 
mouthmean <- rowMeans(rateMatrix)
plot(1:12,mouthmean,type="b",
     main="HPI的平均月增长率",xlab="月",ylab="平均月增长率") 

2.6绘制一个箱线图,来查看HPI的增长率的分布情况。

boxplot(houseIndex$rates,ylab="HPI Increase Rate")
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值