R語言數(shù)據(jù)可視化包ggplot2畫圖之散點(diǎn)圖的基本畫法
前言
ggplot2的功能很強(qiáng)大,并因?yàn)槠涑錾漠媹D能力而聞名,下面來介紹一下它的基本畫圖功能,本期介紹散點(diǎn)圖的基本畫法。
在ggplot2里,所有圖片由6個基本要素組成:
1. 數(shù)據(jù)(Data)
2. 層次(Layers),包含兩種元素:幾何元素(Geometrics)與統(tǒng)計轉(zhuǎn)換(Statistical transformations)。
幾何元素指的是你想畫的圖形,如點(diǎn),線,或多邊形等。
統(tǒng)計轉(zhuǎn)換指的是你想畫的統(tǒng)計描述,如均數(shù),標(biāo)準(zhǔn)差或可信區(qū)間等。
3. 刻度(Scales), 通常指幾何元素(如點(diǎn)或者線)的大小,顏色和形狀等。
4. 坐標(biāo)系統(tǒng)(A coordinate system), 通常指的是x軸與y軸。
5. 多面化(Faceting),簡單的說,就是可以將一個圖片分成多個小的亞圖片。
6. 主題 (Theme),此要素可以控制非數(shù)據(jù)與非統(tǒng)計部分的內(nèi)容,如背景顏色,字體大小等。
下面以一個簡單的例子引入:
library(ggplot2)#導(dǎo)入ggplot包
#使用mtcars數(shù)據(jù)做一個散點(diǎn)圖
ggplot(data = mtcars, # 要素1:數(shù)據(jù)
aes(x = wt, y = mpg,
colour = factor(cyl))) + # 要素3:刻度
geom_point() + # 要素2:幾何元素(點(diǎn))
coord_cartesian() + # 要素4:坐標(biāo)軸
facet_wrap(~ cyl) + # 要素5:分面化
theme_bw() # 要素6:主題
其中mtcars數(shù)據(jù)概況如下:
首先介紹第一類常用的圖像類型:散點(diǎn)圖
#載入ggplot2 library(ggplot2) #建立數(shù)據(jù)集,橫坐標(biāo)為1:100,縱坐標(biāo)為服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù) x <- seq(1,100,length=100) y <- rnorm(100,mean=0,sd=1) data <- data.frame(x=x,y=y) #作散點(diǎn)圖 ggplot(data, aes(x=x, y=y)) + geom_point()

給原始數(shù)據(jù)加上分類標(biāo)簽:
x <- seq(1,100,length=100)
y <- rnorm(100,mean=0,sd=1)
z <- c(rep("A",30),rep("B",30),rep("C",40))
z <- sample(z,100)
data <- data.frame(x=x,y=y,z=z)數(shù)據(jù)概況如下:
按z列分類以不同的顏色在圖中畫出散點(diǎn)圖:
ggplot(data, aes(x=x, y=y,color=z)) + geom_point()

按z列分類以不同的形狀在圖中畫出散點(diǎn)圖:
ggplot(data, aes(x=x, y=y,shape=z)) + geom_point()

多面化(將ABC三類分開展示):
ggplot(data, aes(x=x, y=y,color=z)) + geom_point()+ facet_wrap(~z)+ theme(legend.position = "none")

若不加
theme(legend.position = "none")這一段代碼,顯示的圖表如下:
可以看出不加這一段代碼側(cè)邊欄顯示圖例,但顯然這個圖例是多余的,因此我們一般去掉
自定義顏色:
ggplot(data, aes(x=x, y=y,color=z)) +
geom_point()+
facet_wrap(~z)+
theme(legend.position = "none")+
scale_colour_manual(values = c("purple", "red", "black")) 
添加擬合曲線:
x <- seq(1,50,length=50)
y <- rnorm(50,mean=0,sd=5)
z <- c(rep("A",20),rep("B",15),rep("C",15))
z <- sample(z,50)
data <- data.frame(x=x,y=2*x-y,z=z)#這里構(gòu)造的數(shù)據(jù)集大致服從y=2x
ggplot(data, aes(x=x, y=y)) +
geom_point()+
geom_smooth()#添加擬合曲線,默認(rèn)的形式是局部回歸,所以擬合出的線條是曲線。
因?yàn)間eom_smooth()默認(rèn)的形式是局部回歸,所以擬合出的線條是曲線,陰影區(qū)域?yàn)橹眯艆^(qū)間。
這里也可以用其他模型擬合,如線型模型:
ggplot(data, aes(x=x, y=y)) + geom_point()+ geom_smooth(method = "lm", se = FALSE)
(se = FALSE:去除置信區(qū)間)
更換主題 :
ggplot(data, aes(x=x, y=y)) + geom_point()+ theme_test()

總結(jié)
到此這篇關(guān)于R語言數(shù)據(jù)可視化包ggplot2畫圖之散點(diǎn)圖的基本畫法的文章就介紹到這了,更多相關(guān)R語言ggplot2散點(diǎn)圖畫法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
R語言基于Keras的MLP神經(jīng)網(wǎng)絡(luò)及環(huán)境搭建
這篇文章主要介紹了R語言基于Keras的MLP神經(jīng)網(wǎng)絡(luò),我并沒有使用python去對比結(jié)果,但NSS的文章中有做對比,數(shù)據(jù)顯示R與Python相比在各方面的差別都不大,具體內(nèi)容介紹跟隨小編一起看看吧2022-01-01
R語言數(shù)據(jù)類型與相應(yīng)運(yùn)算的實(shí)現(xiàn)
本文主要介紹了R語言數(shù)據(jù)類型與相應(yīng)運(yùn)算的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
R語言讀取txt文件中的內(nèi)容實(shí)現(xiàn)
R語言提供了多種讀取文本數(shù)據(jù)的函數(shù),本文主要介紹了R語言讀取txt文件中的內(nèi)容實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-03-03
R語言中R-squared與Adjust R-squared參數(shù)的解釋
這篇文章主要給大家介紹了關(guān)于R語言中R-squared與Adjust R-squared兩個參數(shù)的相關(guān)資料,文中介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
使用R語言繪制散點(diǎn)圖結(jié)合邊際分布圖教程
這篇文章主要介紹了使用R語言利用ggplot繪制散點(diǎn)圖,并且在圖像的兩邊繪制邊際分布圖(包括邊際直方圖與邊際密度函數(shù))我們這里介紹兩種方法進(jìn)行繪制2021-11-11





