今天學習繪制散點圖,重點是利用ggplot繪制
散點圖對于顯示兩個連續(xù)變量之間的關系最有用
1.利用最簡單的plot工具繪制
使用格式 plot(x,y,type="p",col = "dark red",……)
x為橫坐標,y為縱坐標,type為所繪制圖形類型,“p”繪點,col為點的顏色
> data(mtcars) #調(diào)取數(shù)據(jù)
> 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()參數(shù)繪制散點圖
使用基本格式 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))) #根據(jù)cyl填充顏色
p+geom_point(aes(colour ="red")) #

image.png

image.png
p + geom_point(aes(colour = factor(cyl),shape = factor(cyl))) #根據(jù)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))) #根據(jù)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
當數(shù)據(jù)缺失時,ggplot2會發(fā)出警告,不過并不影響其繪制,我們可以利用參數(shù) 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
以上便是基本的繪制散點圖的參數(shù)
下面是一些拓展的參數(shù)
通常我們會保存為pdf文件,ggplot2可以直接使用ggsave函數(shù)保存
使用格式 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
還有更多可調(diào)節(jié)參數(shù)可以參考之前的文章:
R語言繪圖——數(shù)據(jù)可視化ggplot2 介紹和主要的參數(shù)