介紹通常,在統(tǒng)計繪圖軟件中,我們先確定圖片類型(點(diǎn),線)和所需繪圖數(shù)據(jù)繪制某些類型的圖表。在R語言中,許多開發(fā)者已經(jīng)在基礎(chǔ)圖形之上開發(fā)了許多軟件包,例如網(wǎng)ggplot2軟件包。目前許多的可視化的軟件包建立在ggplot2之上。Plotluck的目標(biāo)是將可視化簡單化處理,用戶僅指定“(數(shù)據(jù)和變量關(guān)系),然后其他需求(例如,圖的類型的選擇)軟件會自動決定。 ggplot2我們以眾所周知的iris數(shù)據(jù)集為例。假設(shè)我們對不同物種的花瓣長度和花瓣寬度的關(guān)系感興趣。這兩個變量都是數(shù)字變量,因此散點(diǎn)圖是一個很好的選擇。數(shù)據(jù)集中只有三種不同的物種,因此我們不會使用不同的顏色來定義物種類型。ggplot2代碼如下: library(ggplot2) data(iris) ggplot(iris, aes(x=Petal.Length, y=Petal.Width, color=Species)) + geom_point() + geom_smooth() #> `geom_smooth()` using method = 'loess' and formula 'y ~ x' image.png 正如我們所見,ggplot2使得創(chuàng)建繪圖變得非常容易。 但是,我們?nèi)匀恍枰紤]表示,使用哪種類型的繪圖,以及通過它來表達(dá)變量的美學(xué)。 如果我們可以專注于我們想要想象的關(guān)系怎么辦? 以下是plotluck中的等價物: library(plotluck) plotluck(iris, Petal.Width~Petal.Length|Species) #> `geom_smooth()` using method = 'loess' and formula 'y ~ x' 正如我們所見,ggplot2繪圖非常容易。 但是,我們?nèi)匀恍枰紤]圖片類型,比如說使用哪種類型的繪圖,以及通過哪種函數(shù)來繪制。 plotluck以下是plotluck中同等作圖的代碼: library(plotluck) plotluck(iris, Petal.Width~Petal.Length|Species) #> `geom_smooth()` using method = 'loess' and formula 'y ~ x' 不可否認(rèn)的是,在這個簡單的例子中,代碼并沒有太大的減少;然而,在現(xiàn)實(shí)世界中,作者通常需要花費(fèi)時間來更多的思考和預(yù)處理。對于包括各種類型數(shù)據(jù)的混合數(shù)據(jù),確定其繪圖類型并不簡單。作者可能還希望在不知道其數(shù)據(jù)類型的情況下快速可視化兩個變量 :尤其是如果數(shù)據(jù)包含大量變量或者您創(chuàng)建所有變量的格子圖。 快速查看數(shù)據(jù)類型library(gapminder) plotluck(gapminder, .~1) #> Factor variable country has too many levels (142), truncating to 30 > gapminder # A tibble: 1,704 x 6 country continent year lifeExp pop gdpPercap <fct> <fct> <int> <dbl> <int> <dbl> 1 Afghanistan Asia 1952 28.8 8425333 779. 2 Afghanistan Asia 1957 30.3 9240934 821. 3 Afghanistan Asia 1962 32.0 10267083 853. 4 Afghanistan Asia 1967 34.0 11537966 836. 5 Afghanistan Asia 1972 36.1 13079460 740. 6 Afghanistan Asia 1977 38.4 14880372 786. 7 Afghanistan Asia 1982 39.9 12881816 978. 8 Afghanistan Asia 1987 40.8 13867957 852. 9 Afghanistan Asia 1992 41.7 16317921 649. 10 Afghanistan Asia 1997 41.8 22227415 635. # ... with 1,694 more rows 在上面這個網(wǎng)格視圖中,每列都用縮略圖來表示。 但是我們大體知道了數(shù)據(jù)的分布:有2個分類變量和4個連續(xù)變量; pop和gdpPercap偏態(tài)分布,因此需要對其應(yīng)用對數(shù)變換。 變量相關(guān)性假設(shè)我們現(xiàn)在對目標(biāo)lifeExp與其他變量關(guān)系感興趣。 opts <- plotluck.options(verbose=TRUE) plotluck(gapminder, lifeExp~., opts=opts) 圖片的排序有一定含義。我們看到lifeExp與gdpPercap,year和continent的明確關(guān)聯(lián)。 plotluck(gapminder, lifeExp~continent, weights=pop, opts=opts) #> Ordering continent levels by lifeExp #> Not applying logarithmic axis scaling for lifeExp; expansion ratio is 0.801001, trans.log.thresh = 2.000000 #> Choosing geom='violin' out of possible options: 'violin, box, scatter' Plotluck為通用的繪圖而設(shè)計,以支持探索性數(shù)據(jù)分析。 雖然其設(shè)計目標(biāo)是要求盡可能少的代碼和時間然而,plotluck不適合產(chǎn)生在某些應(yīng)用領(lǐng)域中出現(xiàn)的特殊類型的圖(例如,關(guān)聯(lián),莖葉,星圖,地理圖等)。 它最多限制在三個變量中。 不支持在不同尺度上具有變量的并行圖(例如多個相關(guān)信號的時間序列)。 |
|