R学习与可视化

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 介绍和主要的参数

上一篇下一篇

猜你喜欢

热点阅读