R语言可视化入门到精通(持续更新)

作者: ls_本性
专题简介:本文章是关于R语言可视化的内容。从简单到复杂,将持续更
😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍
本文末尾有惊喜哦!

散点图

 x1 = c(171,175,159,155,152,158,154,164,168,166,159,164)  #身高
 x2 = c(57,64,41,38,35,44,41,51,57,49,47,46)   #体重
x3=c(rep('male',7),rep('female',5))         #性别
 data=data.frame(x1,x2,x3)
 plot(data$x1,data$x2,
         type="p",    #p是点,l是线,b既有点也有线, n得到一张空画布
         main="height vs weight",   #图上方的主题
         ylab="weight(kg)",    #y轴名称
         xlab="height(cm)" ,  #x轴名称
         ylim=c(30,70),  #y轴范围
         xlim=c(150,180),  #x轴范围
         col="blue",  #颜色
        pch=19 #点的形状
 )

下面是pch参数为不同值时对应的形状
在这里插入图片描述
下图是体重和身高的散点图在这里插入图片描述

折线图

若将type参数设定为type=“b”,就会出现折线图,结果如下图所示:
在这里插入图片描述
可以看出此图非常乱,我们可以对其排序进行改善

 x1 = c(171,175,159,155,152,158,154,164,168,166,159,164)  #身高
 x2 = c(57,64,41,38,35,44,41,51,57,49,47,46)   #体重
 x3=c(rep('male',7),rep('female',5))         #性别
 data=data.frame(x1,x2,x3)
 index=order(x1)  #对身高进行排序
 data=data[index,]  #对整个数据进行排序
 plot(data$x1,data$x2,
         type="b",    #p是点,l是线,b既有点也有线
         main="height vs weight",   #图上方的主题
         ylab="weight(kg)",    #y轴名称
         xlab="height(cm)" ,  #x轴名称
         ylim=c(30,70),  #y轴范围
         xlim=c(150,180),  #x轴范围
         col="blue",  #颜色
        pch=19 #点的形状
 )

在这里插入图片描述
排序后再画图便不会出现之前的线段折返情况,使图看起来比较有序、整洁。

加折线
法一:
 x1 = c(171,175,159,155,152,158,154,164,168,166,159,164)  #身高
 x2 = c(57,64,41,38,35,44,41,51,57,49,47,46)   #体重
 x3=c(rep('male',7),rep('female',5))         #性别
 data=data.frame(x1,x2,x3)
 index=order(x1)  #对身高进行排序
 data=data[index,]  #对整个数据进行排序
 male=data[data$x3=='male',]  #取出男性数据
 female=data[data$x3=='female',]   #取出女性数据
 plot(male$x1,male$x2,
         type="b",    #p是点,l是线,b既有点也有线
         main="height vs weight",   #图上方的主题
         ylab="weight(kg)",    #y轴名称
         xlab="height(cm)" ,  #x轴名称
         ylim=c(30,70),  #y轴范围
         xlim=c(150,180),  #x轴范围
         col="blue",  #颜色
        pch=19 #点的形状
 )
 lines(female$height,female$weight,col='red',type='b')
 法二:让type='n'  #展现空画布
  lines(female$height,female$weight,col='red',type='b')
  lines(male$height,male$weight,col='red',type='b')
 法三:通过ifelse让col 和 pch 在不同情况下对应不同值
 color=ifelse(data$x3=='male','blue','red')
 shape=ifelse(data$x2=='male',19,21)
 plot(male$x1,male$x2,
         type="b",    #p是点,l是线,b既有点也有线
         main="height vs weight",   #图上方的主题
         ylab="weight(kg)",    #y轴名称
         xlab="height(cm)" ,  #x轴名称
         ylim=c(30,70),  #y轴范围
         xlim=c(150,180),  #x轴范围
         col=color,  #颜色
        pch=shape #点的形状
 )

在这里插入图片描述

图像的完善
#加图标(可指定x,y位置放图标,也可大至指定访问)
legend(x=155,y=65,legend = c("male","female"),col=c('blue','red'),pch=c(4,21))
legend("top",legend = c("male","female"),col=c('blue','red'),pch=c(4,21))
#加文字
text(x=171,y=57,"xxx")
#加直线
abline(v=160,col='red',lty=3,lwd=3)  #v加垂直线,lty线的类型,lwd线的宽度
abline(h=50,col='red',lty=4,lwd=7)  #h加水平线,lty线的类型,lwd线的宽度
#线性拟合直线
result=lm(x2~x1,data)   #result里面含有斜率和截距
abline(result,col='black')

在这里插入图片描述
lty和lwd参数表
在这里插入图片描述

柱形图

普通柱形图
### 柱形图
par(mar=c(10,10,10,10))   
#par调用画图的各种参数,mar参数是用来控制图像四边的留白
barplot(data$height,
        names.arg =rownames(data),  #给每个矩形柱条下加名字
        ylim = c(0,200),
        xlab = 'name',
        ylab='height',
        las=2 )   #柱条下名字放置的方式,默认1水平放,2垂直放

在这里插入图片描述

par(mfrow=c(2,1))   #mfrow分割画布
barplot(data$height)
barplot(data$weight)

在这里插入图片描述

#每个柱形上面加长度
p=barplot(data$height)   #返回每个柱形正中![间的X坐标
text(p,data$height,data$height,srt=45,col='red']

在这里插入图片描述

#将每个柱形下面的名字旋转 
p=parplot(data$height)
text(p,0,
    lables=rownames(data),
    srt=30
    adj=c(-2,2)   #对文字进行上下左右微调
    col='blue'
    xpd=TRUE    #一定要带这个参数,否者文字超出ylim范围,将不会显示
    )
堆积柱形图
data1 <-as.matrix(t(data[,-3]))  #堆积柱形图需要将数据转置,且需要为matrix类型,让每个人成为变量
barplot(data1,
        col=c('red','blue'),
        ylim=c(0,300)
        )
legend('top',
       horiz=T,  #图标横着放
       bty='n',  #去掉方格
       legend=c('height','weight'),
       col = c('red','blue'),
       pch=c(10,15),
        )

在这里插入图片描述

并排柱形图
data1 <-as.matrix(t(data[,-3]))  #堆积柱形图需要将数据转置,且需要为matrix类型,让每个人成为变量
barplot(data1,
        beside='T'   #使不同颜色的柱形并排
        col=c('red','blue'),
        ylim=c(0,300)
        )
legend('top',
       horiz=T,  #图标横着放
       bty='n',  #去掉方格
       legend=c('height','weight'),
       col = c('red','blue'),
       pch=c(10,15),
        )

在这里插入图片描述

箱型图

name=c('aa','bb','cc','dd','ee','ff')
height= c(178,183,160,158,174,168)  #身高
weight= c(70,75,50,48,68,52)   #体重
gender=factor(c('m','m','f','f','m','f'),levels = c('m','f'),labels = c('male','female'))
data <- data.frame(height,weight,gender) 
rownames(data) <- name
boxplot(height~gender,data = data,col=c('red','blue')) #第一个参数为formula(公式),需要因子变量

在这里插入图片描述

小提琴图

install.packages('plotrix')
library(plotrix)
violin_plot(unstack(data[,c('weight','gender')]),
            col=c('red','green'))

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值