R语言绘图——散点图
2021-09-13 本文已影响0人
忙碌的dog
今天学习绘制散点图,重点是利用ggplot绘制
散点图对于显示两个连续变量之间的关系最有用
1.利用最简单的plot工具绘制
使用格式 plot(x,y,type="p",col = "dark red",……)
x为横坐标,y为纵坐标,type为所绘制图形类型,“p”绘点,col为点的颜色
> data(mtcars) #调取数据
> head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
> plot(mtcars$mpg,mtcars$cyl,type="p") #以mpg为横坐标,cyl为纵坐标
image.png
2.利用ggplot2绘制,最常用的工具
使用 geom_point()参数绘制散点图
使用基本格式 ggplot(data,aes(x,y))+geom_point(),
利用aes(colour=,shape=)改变颜色和形状
x为横坐标,y为纵坐标
> library(ggplot2)
> p <- ggplot(mtcars, aes(wt, mpg))
> p + geom_point()
image.png
p+geom_point(aes(colour = factor(cyl))) #根据cyl填充颜色
p+geom_point(aes(colour ="red")) #
image.png
image.png
p + geom_point(aes(colour = factor(cyl),shape = factor(cyl))) #根据cyl绘制不同形状
image.png
p + geom_point(aes(colour = factor(cyl),shape = factor(cyl)),size=5) #定义每个点的大小,
image.png
p + geom_point(aes(colour = factor(cyl),shape = factor(cyl),size= factor(qsec))) #根据qsec绘制点大小
image.png
由于ggplot的图是以叠加的形式,为了达到一个边框的效果,我们可以再绘制一个图层
p + geom_point(aes(colour = factor(cyl),shape = factor(cyl)),size=5) +
geom_point(colour = "grey90", size = 1.5)
image.png
当数据缺失时,ggplot2会发出警告,不过并不影响其绘制,我们可以利用参数 na.rm = TRUE进行绘制
mtcars2 <- transform(mtcars, mpg = ifelse(runif(32) < 0.2, NA, mpg))
head(mtcars2)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 NA 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
> ggplot(mtcars2, aes(wt, mpg)) +
+ geom_point()
Warning message:
Removed 6 rows containing missing values (geom_point).
> ggplot(mtcars2, aes(wt, mpg)) +
+ geom_point(na.rm = TRUE)
>
image.png
以上便是基本的绘制散点图的参数
下面是一些拓展的参数
通常我们会保存为pdf文件,ggplot2可以直接使用ggsave函数保存
使用格式 ggsave("file.pdf",width=n,height=n) ,自定义保存图形大小的宽度长度,这样就能保存我们想要的图
> p + geom_point(aes(colour = factor(cyl),shape = factor(cyl)))
> ggsave("plot.pdf",height=5,width=5)
image.png
一般在文献使用图片中,其背景都是白色的,这时候我们可以直接使用
theme_bw() #改变背景
> p + geom_point(aes(colour = factor(cyl),shape = factor(cyl))) +
theme_bw()
image.png
或者使用theme_classic()
p + geom_point(aes(colour = factor(cyl),shape = factor(cyl))) +
theme_classic()
image.png
还有更多可调节参数可以参考之前的文章:
R语言绘图——数据可视化ggplot2 介绍和主要的参数