天天看點

一行R代碼實作繁瑣的可視化stats包

一行R代碼實作繁瑣的可視化stats包

ggfortify 是一個簡單易用的r軟體包,它可以僅僅使用一行代碼來對許多受歡迎的r軟體包結果進行二維可視化,這讓統計學家以及資料科學家省去了許多繁瑣和重複的過程,不用對結果進行任何處理就能以 ggplot 的風格畫出好看的圖,大大地提高了工作的效率。

ggfortify 已經可以在 cran 上下載下傳得到,但是由于最近很多的功能都還在快速增加,是以還是推薦大家從 github 上下載下傳和安裝。

接下來我将簡單介紹一下怎麼用 ggplot2 和 ggfortify 來很快地對pca、聚類以及lfda的結果進行可視化,然後将簡單介紹用 ggfortify 來對時間序列進行快速可視化的方法。

pca (主成分分析)

ggfortify 使 ggplot2 知道怎麼诠釋pca對象。加載好 ggfortify 包之後, 你可以對stats::prcomp 和 stats::princomp 對象使用 ggplot2::autoplot。

一行R代碼實作繁瑣的可視化stats包

你還可以選擇資料中的一列來給畫出的點按類别自動分顔色。輸入help(autoplot.prcomp) 可以了解到更多的其他選擇。

一行R代碼實作繁瑣的可視化stats包

比如說給定label = true 可以給每個點加上辨別(以rownames為标準),也可以調整辨別的大小。

一行R代碼實作繁瑣的可視化stats包

給定 shape = false 可以讓所有的點消失,隻留下辨別,這樣可以讓圖更清晰,辨識度更大。

一行R代碼實作繁瑣的可視化stats包

給定 loadings = true 可以很快地畫出特征向量。

一行R代碼實作繁瑣的可視化stats包

同樣的,你也可以顯示特征向量的辨別以及調整他們的大小,更多選擇請參考幫助檔案。

一行R代碼實作繁瑣的可視化stats包

因子分析

和pca類似,ggfortify 也支援 stats::factanal 對象。可調的選擇也很廣泛。以下給出了簡單的例子:

注意 當你使用 factanal 來計算分數的話,你必須給定 scores 的值。

一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包

k-均值聚類

一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包

其他聚類

ggfortify 也支援 cluster::clara, cluster::fanny, cluster::pam。

一行R代碼實作繁瑣的可視化stats包

給定 frame = true,可以把 stats::kmeans 和 cluster::* 中的每個類圈出來。

一行R代碼實作繁瑣的可視化stats包

你也可以通過 frame.type 來選擇圈的類型。更多選擇請參照 ggplot2::stat_ellipse 裡面的 frame.type 的 type 關鍵詞。

一行R代碼實作繁瑣的可視化stats包

更多關于聚類方面的可視化請參考 github 上的 vignette 或者 rpubs 上的例子。

lfda(fisher局部判别分析)

lfda 包支援一系列的 fisher 局部判别分析方法,包括半監督 lfda,非線性 lfda。你也可以使用 ggfortify 來對他們的結果進行可視化。

一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包

注意 對 iris 資料來說,不同的類之間的關系很顯然不是簡單的線性,這種情況下非線性的klfda 影響可能太強大而影響了可視化的效果,在使用前請充分了解每個算法的意義以及效果。

一行R代碼實作繁瑣的可視化stats包

用 ggfortify 可以使時間序列的可視化變得極其簡單。接下來我将給出一些簡單的例子。

一行R代碼實作繁瑣的可視化stats包

可以使用 ts.colour 和 ts.linetype 來改變線的顔色和形狀。更多的選擇請參考 help(autoplot.ts)。

一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包

使用 facets = false 可以把所有變量畫在一條軸上。

一行R代碼實作繁瑣的可視化stats包

autoplot 也可以了解其他的時間序列類别。可支援的r包有:

zoo::zooreg

xts::xts

timeseries::timseries

tseries::irts

一些例子:

一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包

你也可以通過 ts.geom 來改變幾何形狀,目前支援的有 line, bar 和 point。

一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包

forecast包

一行R代碼實作繁瑣的可視化stats包

有很多設定可供調整:

一行R代碼實作繁瑣的可視化stats包

vars包

一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包

使用 smoothing='none' 可以畫出過濾後的結果。

一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包

可支援的stats包裡的對象有:

stl, decomposed.ts

acf, pacf, ccf

spec.ar, spec.pgram

cpgram

一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包
一行R代碼實作繁瑣的可視化stats包

原文釋出時間為:2015-12-12

本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号

繼續閱讀