无用知识:R语言可视化入门(一)

最近接触到数据分析,觉得好玩,又有作业写了一小点R语言程序,放到这备份~~

本次使用的是网上找的一个数据集,如下:

这个是1980年美国针对学生的一个调查数据,总共有4739个样本以及14个变量,这14个变量含义如下:

无用知识:R语言可视化入门(一)_第1张图片

按照惯例首先读取数据集再看看前五行知道数据集长啥样:

CD <- read.csv("CollegeDistance.csv",header = TRUE)
head(CD)

得到的结果很简单,长这样:

 

看看数据集中男女数和占比,画个饼图:

table(CD$gender)
gender.times <- t(as.data.frame.array(table(CD$gender)))
row.names(gender.times) <- c("times")
gender.percent <-round(gender.times[1,]/sum(gender.times)*100,2) 
lbs <- paste(colnames(gender.times),gender.percent)
lbs <- paste(lbs,"%",sep = "")
pie(gender.percent,col = rainbow(length(lbs)),main = "性别分布图",
    labels = lbs)

第一行看男女数量。结果这样:

 后面画个饼图,不过要自己计算百分比通过paste结合成后面图上的标签,稍显麻烦,反而是导入ggplot2之后画图不难,都是傻瓜操作。画出的饼图长这样:

无用知识:R语言可视化入门(一)_第2张图片

一个字,艳丽!

再看看种族占比,画个饼图,过程都一样,不多说了:

#统计种族画饼图
table(CD$ethnicity)
eth.times <- t(as.data.frame.array(table(CD$ethnicity)))
row.names(eth.times) <- c("times")
eth.percent <- round(eth.times[1,]/sum(eth.times)*100,2)
lbs.eth <- paste(colnames(eth.times),eth.percent)
lbs.eth <- paste(lbs.eth,"%",sep = "")
pie(eth.percent,col = rainbow(length(lbs.eth)),main = "种族分布图",
    labels = lbs.eth)

 结果:

无用知识:R语言可视化入门(一)_第3张图片

 没啥好说的,就是视觉冲击!

下面看看种族和得分之间有啥联系没:

library(ggplot2)
ggplot(data = CD,aes(x = score,fill = ethnicity))+geom_histogram(position = "dodge")+labs(
  title = "种族-得分直方图")+theme(plot.title = element_text(hjust = 0.5,size = 10))

到这里要导入ggplot2这个包了,这段代码意思就是对score这一列画频数分布直方图,并且根据种族进行分类画,dodge就是把柱子并排放,当然还有堆叠起来放的,可以百度,lbs里面可以设置标题,坐标轴名字啥的,theme主要是设置标题位置,字体(我没用)和标题位置啥的。结果这样婶:

无用知识:R语言可视化入门(一)_第4张图片

花花绿绿~~

再看看父母受教育的情况对子女的分数有啥影响没,画个箱线图:

labs.edu <- c("both","only father","only mother","neither")
CD$pec[CD$fcollege == "yes" &CD$mcollege == "yes"] <- "both"
CD$pec[CD$fcollege == "yes" &CD$mcollege == "no"] <- "only father"
CD$pec[CD$fcollege == "no" &CD$mcollege == "yes"] <- "only mother"
CD$pec[CD$fcollege == "no" &CD$mcollege == "no"] <- "neither"
ggplot(data = CD)+geom_boxplot(
  aes(x= CD$pec,y = CD$score,fill = CD$pec))+
  labs(title = "父母受教育情况与子女成绩箱线图", x="父母受教育情况",y = "子女成绩分布")+theme(
    plot.title = element_text(hjust = 0.5,size = 10),legend.title = element_blank())

 我把父母受教育的情况分成四类,第一行没用上,后面就是我会在原始数据集上加上一列名字叫pec的列(parents education condition 瞎写的不必介意),后面就是画图过程“+”前面就告诉程序我用的是CD数据集,其实告诉程序之后后面在用到数据集的列的时候可以不必写“数据集名$列名”,写了也没错但是运行之后程序会警告你,当然可以不接受它的警告,结果:

无用知识:R语言可视化入门(一)_第5张图片

 也没啥好说的,就是分类数量有点少,可以试试其他数据集,我看人家用世界杯数据集画出来的都很好看,可以试试。

再看看失业率对工资的影响,换个花样画散点图并且再拟合一下:

ggplot(data = CD)+geom_point(
  aes(x= education,y = score,fill = CD$education))+
  labs(title = "地区-教育年数-分数", x="教育年数",y = "分数")+theme(
    plot.title = element_text(hjust = 0.5,size = 10),legend.title = element_blank())

结果差不多是这样:

无用知识:R语言可视化入门(一)_第6张图片

学艺不精,看不懂啥意思,感觉没啥关系。

就这样~~,有空再写写,整点高级的线性规划啥的。 

你可能感兴趣的:(嚯茶,r语言,开发语言)