ggplot2:數(shù)據(jù)分析與圖形藝術(shù)
定 價:46 元
- 作者:(美)威克姆 著,統(tǒng)計(jì)之都 譯
- 出版時間:2013/5/1
- ISBN:9787560549699
- 出 版 社:西安交通大學(xué)出版社
- 中圖法分類:C819
- 頁碼:231
- 紙張:膠版紙
- 版次:1
- 開本:16開
ggplot2 是R中新穎的數(shù)據(jù)可視化包,功能強(qiáng)大、靈活便捷,其靈感源自 LelandWilkison的《圖形的語法》一書。使用 ggplot2 可以輕松實(shí)現(xiàn):
高質(zhì)量圖形的繪制,自動化添加圖例。
疊加來自不同數(shù)據(jù)源的多個圖層(點(diǎn)、線、地圖、瓦片圖、箱線圖等),自適應(yīng)通用標(biāo)度。
利用 R 強(qiáng)大的建模功能添加平滑曲線,如 loess 、線性模型、廣義可加模型和穩(wěn)健回歸。
保存任意ggplot2 圖形,方便修改或重復(fù)使用。
制作主題,滿足內(nèi)部定制或雜志風(fēng)格的需求,便捷地應(yīng)用到多幅圖形上。
從視覺角度上審視你的圖形,斟酌每一部分?jǐn)?shù)據(jù)如何呈現(xiàn)在最終圖形上。
如果你想將枯燥的數(shù)據(jù)轉(zhuǎn)化為生動、形象的圖片,本書絕對大有裨益。你需要了解 R的基本知識(比如如何將數(shù)據(jù)導(dǎo)入到R),不過 ggplot2是專門為繪圖量身打造的“迷你語言”,在本書中你就可以學(xué)到你需要的所有知識。在閱讀完本書之后,你就可以針對你的問題繪制出精確定制的圖形,并且發(fā)現(xiàn)將腦海中的圖片繪制在屏幕上已經(jīng)變得輕而易舉了。譯者親切地稱之為“玩轉(zhuǎn)數(shù)據(jù)可視化的瑞士軍刀!”
每當(dāng)我們看到一個新的軟件,第一反應(yīng)會是:為什么又要發(fā)明一個新軟件?ggplot2是R世界里相對還比較年輕的一個包,在它之前,官方R已經(jīng)有自己的基礎(chǔ)圖形系統(tǒng)(graphics包) 和網(wǎng)格圖形系統(tǒng)(grid 包),并且Deepayan Sarkar也開發(fā)了lattice包,看起來R的世界對圖形的支持已經(jīng)足夠強(qiáng)大了。那么我們不禁要問,為什么還要發(fā)明一套新的系統(tǒng)? 設(shè)計(jì)理念 打個比方,想想我們小時候怎樣學(xué)中文的。最開始的時候我們要識字,不認(rèn)識字就沒法閱讀和寫作,但我們并不是一直按照一個個漢字學(xué)習(xí)的,而是通過句子和具體的場景故事學(xué)習(xí)的。為什么不在小學(xué)時背六年字典呢?那樣可能認(rèn)識所有的漢字。原因很簡單,光有單字,我們不會說話,也無法閱讀和寫作。我們?nèi)钡氖鞘裁矗看鸢甘菍ξ淖值慕M織能力,或者說語法! 的基礎(chǔ)圖形系統(tǒng)基本上是一個“紙筆模型”,即:一塊畫布擺在面前,你可以在這里畫幾個點(diǎn),在那里畫幾條線,指哪兒畫哪兒。后來lattice包的出現(xiàn)稍微改善了這種情況,你可以說,我要畫散點(diǎn)圖或直方圖,并且按照某個分類變量給圖中的元素上色,此時數(shù)據(jù)才在畫圖中扮演了一定的中心角色,我們不用去想具體這個點(diǎn)要用什么顏色(顏色會根據(jù)變量自動生成)。然而,lattice繼承了R 語言的一個糟糕特征,就是參數(shù)設(shè)置鋪天蓋地,足以讓人窒息,光是一份xyplot()函數(shù)的幫助文檔,恐怕就夠我們消磨一天時間了,更重要的是,lattice仍然面向特定的統(tǒng)計(jì)圖形,像基礎(chǔ)圖形系統(tǒng)一樣,有直方圖、箱線圖、條形圖等等,它沒有一套可以讓數(shù)據(jù)分析者說話的語法。 那么數(shù)據(jù)分析者是怎樣說話的呢?他們從來不會說這條線用#FE09BE顏色,那個點(diǎn)用三角形狀,他們只會說,把圖中的線用數(shù)據(jù)中的職業(yè)類型變量上色,或圖中點(diǎn)的形狀對應(yīng)性別變量。有時候他們畫了一幅散點(diǎn)圖,但馬上他們發(fā)現(xiàn)這幅圖太擁擠,最好是能具體看一下里面不同收入階層的特征,所以他們會說,把這幅圖拆成七幅小圖,每幅圖對應(yīng)一個收入階層。然后發(fā)現(xiàn)散點(diǎn)圖的趨勢不明顯,最好加上回歸直線,看看回歸模型反映的趨勢是什么,或者發(fā)現(xiàn)圖中離群點(diǎn)太多,最好做一下對數(shù)變換,減少大數(shù)值對圖形的主導(dǎo)性。 從始至終,數(shù)據(jù)分析者都在數(shù)據(jù)層面上思考問題,而不是拿著水彩筆和調(diào)色板在那里一筆一劃作圖,而計(jì)算機(jī)程序員則傾向于畫點(diǎn)畫線。LelandWilkinson的著作在理論 每當(dāng)我們看到一個新的軟件,第一反應(yīng)會是:為什么又要發(fā)明一個新軟件?ggplot2是R世界里相對還比較年輕的一個包,在它之前,官方R已經(jīng)有自己的基礎(chǔ)圖形系統(tǒng)(graphics包) 和網(wǎng)格圖形系統(tǒng)(grid 包),并且Deepayan Sarkar也開發(fā)了lattice包,看起來R的世界對圖形的支持已經(jīng)足夠強(qiáng)大了。那么我們不禁要問,為什么還要發(fā)明一套新的系統(tǒng)? 設(shè)計(jì)理念 打個比方,想想我們小時候怎樣學(xué)中文的。最開始的時候我們要識字,不認(rèn)識字就沒法閱讀和寫作,但我們并不是一直按照一個個漢字學(xué)習(xí)的,而是通過句子和具體的場景故事學(xué)習(xí)的。為什么不在小學(xué)時背六年字典呢?那樣可能認(rèn)識所有的漢字。原因很簡單,光有單字,我們不會說話,也無法閱讀和寫作。我們?nèi)钡氖鞘裁?答案是對文字的組織能力,或者說語法! 的基礎(chǔ)圖形系統(tǒng)基本上是一個“紙筆模型”,即:一塊畫布擺在面前,你可以在這里畫幾個點(diǎn),在那里畫幾條線,指哪兒畫哪兒。后來lattice包的出現(xiàn)稍微改善了這種情況,你可以說,我要畫散點(diǎn)圖或直方圖,并且按照某個分類變量給圖中的元素上色,此時數(shù)據(jù)才在畫圖中扮演了一定的中心角色,我們不用去想具體這個點(diǎn)要用什么顏色(顏色會根據(jù)變量自動生成)。然而,lattice繼承了R 語言的一個糟糕特征,就是參數(shù)設(shè)置鋪天蓋地,足以讓人窒息,光是一份xyplot()函數(shù)的幫助文檔,恐怕就夠我們消磨一天時間了,更重要的是,lattice仍然面向特定的統(tǒng)計(jì)圖形,像基礎(chǔ)圖形系統(tǒng)一樣,有直方圖、箱線圖、條形圖等等,它沒有一套可以讓數(shù)據(jù)分析者說話的語法! ∧敲磾(shù)據(jù)分析者是怎樣說話的呢?他們從來不會說這條線用#FE09BE顏色,那個點(diǎn)用三角形狀,他們只會說,把圖中的線用數(shù)據(jù)中的職業(yè)類型變量上色,或圖中點(diǎn)的形狀對應(yīng)性別變量。有時候他們畫了一幅散點(diǎn)圖,但馬上他們發(fā)現(xiàn)這幅圖太擁擠,最好是能具體看一下里面不同收入階層的特征,所以他們會說,把這幅圖拆成七幅小圖,每幅圖對應(yīng)一個收入階層。然后發(fā)現(xiàn)散點(diǎn)圖的趨勢不明顯,最好加上回歸直線,看看回歸模型反映的趨勢是什么,或者發(fā)現(xiàn)圖中離群點(diǎn)太多,最好做一下對數(shù)變換,減少大數(shù)值對圖形的主導(dǎo)性! 氖贾两K,數(shù)據(jù)分析者都在數(shù)據(jù)層面上思考問題,而不是拿著水彩筆和調(diào)色板在那里一筆一劃作圖,而計(jì)算機(jī)程序員則傾向于畫點(diǎn)畫線。LelandWilkinson的著作在理論上改善了這種狀況,他提出了一套圖形語法,讓我們在考慮如何構(gòu)建一幅圖形的時候不再陷在具體的圖形元素里面,而是把圖形拆分為一些互相獨(dú)立并且可以自由組合的成分。這套語法提出來之后他自己也做了一套軟件,但顯然這套軟件沒有被廣泛采用;幸運(yùn)的是,HadleyWickham 在R語言中把這套想法巧妙地實(shí)現(xiàn)了。 為了說明這種語法的思想,我們考慮圖形中的一個成分:坐標(biāo)系。常見的坐標(biāo)系有兩種:笛卡爾坐標(biāo)系和極坐標(biāo)系。在語法中,它們屬于一個成分,可自由拆卸替換。笛卡爾坐標(biāo)系下的條形圖實(shí)際上可以對應(yīng)極坐標(biāo)系下的餅圖,因?yàn)闂l形圖的高可以對應(yīng)餅圖的角度,本質(zhì)上沒什么區(qū)別。因此在ggplot2中,從一幅條形圖過渡到餅圖,只需要加極少量的代碼,把坐標(biāo)系換一下就可以了。如果我們用紙筆模型,則可以想象,這完全是不同的兩幅圖,一幅圖里面要畫的是矩形,另一幅圖要畫扇形。
HadleyWickham,RStudio首席科學(xué)家,美國萊斯大學(xué)統(tǒng)計(jì)學(xué)助理教授,畢業(yè)于愛荷華州立大學(xué)統(tǒng)計(jì)系。Hadley是R社區(qū)最活躍的人之一,代碼風(fēng)格獨(dú)樹一幟,致力于開發(fā)用于數(shù)據(jù)處理、分析、成像的工具,截至2012年已經(jīng)開發(fā)了超過30個高質(zhì)量的R軟件包,比如ggplot2,lubridate,plyr, reshape2, stringr, httr等。
1. 簡介
2.從qplot開始入門
3. 語法突破
4. 用圖層構(gòu)建圖像
5. 工具箱
6. 標(biāo)度、坐標(biāo)軸和圖例
7.定位
8. 精雕細(xì)琢
9. 數(shù)據(jù)操作
10. 減少重復(fù)性工作
附錄A 不同語法間的轉(zhuǎn)換
附錄B 圖形屬性的定義
附錄C 用grid操作圖形
每當(dāng)我們看到一個新的軟件,第一反應(yīng)會是:為什么又要發(fā)明一個新軟件?ggplot2是R世界里相對還比較年輕的一個包,在它之前,官方R已經(jīng)有自己的基礎(chǔ)圖形系統(tǒng)(graphics包) 和網(wǎng)格圖形系統(tǒng)(grid 包),并且Deepayan Sarkar也開發(fā)了lattice包,看起來R的世界對圖形的支持已經(jīng)足夠強(qiáng)大了。那么我們不禁要問,為什么還要發(fā)明一套新的系統(tǒng)?
設(shè)計(jì)理念
打個比方,想想我們小時候怎樣學(xué)中文的。最開始的時候我們要識字,不認(rèn)識字就沒法閱讀和寫作,但我們并不是一直按照一個個漢字學(xué)習(xí)的,而是通過句子和具體的場景故事學(xué)習(xí)的。為什么不在小學(xué)時背六年字典呢?那樣可能認(rèn)識所有的漢字。原因很簡單,光有單字,我們不會說話,也無法閱讀和寫作。我們?nèi)钡氖鞘裁矗看鸢甘菍ξ淖值慕M織能力,或者說語法。
R的基礎(chǔ)圖形系統(tǒng)基本上是一個“紙筆模型”,即:一塊畫布擺在面前,你可以在這里畫幾個點(diǎn),在那里畫幾條線,指哪兒畫哪兒。后來lattice包的出現(xiàn)稍微改善了這種情況,你可以說,我要畫散點(diǎn)圖或直方圖,并且按照某個分類變量給圖中的元素上色,此時數(shù)據(jù)才在畫圖中扮演了一定的中心角色,我們不用去想具體這個點(diǎn)要用什么顏色(顏色會根據(jù)變量自動生成)。然而,lattice繼承了R 語言的一個糟糕特征,就是參數(shù)設(shè)置鋪天蓋地,足以讓人窒息,光是一份xyplot()函數(shù)的幫助文檔,恐怕就夠我們消磨一天時間了,更重要的是,lattice仍然面向特定的統(tǒng)計(jì)圖形,像基礎(chǔ)圖形系統(tǒng)一樣,有直方圖、箱線圖、條形圖等等,它沒有一套可以讓數(shù)據(jù)分析者說話的語法。
那么數(shù)據(jù)分析者是怎樣說話的呢?他們從來不會說這條線用#FE09BE顏色,那個點(diǎn)用三角形狀,他們只會說,把圖中的線用數(shù)據(jù)中的職業(yè)類型變量上色,或圖中點(diǎn)的形狀對應(yīng)性別變量。有時候他們畫了一幅散點(diǎn)圖,但馬上他們發(fā)現(xiàn)這幅圖太擁擠,最好是能具體看一下里面不同收入階層的特征,所以他們會說,把這幅圖拆成七幅小圖,每幅圖對應(yīng)一個收入階層。然后發(fā)現(xiàn)散點(diǎn)圖的趨勢不明顯,最好加上回歸直線,看看回歸模型反映的趨勢是什么,或者發(fā)現(xiàn)圖中離群點(diǎn)太多,最好做一下對數(shù)變換,減少大數(shù)值對圖形的主導(dǎo)性。
從始至終,數(shù)據(jù)分析者都在數(shù)據(jù)層面上思考問題,而不是拿著水彩筆和調(diào)色板在那里一筆一劃作圖,而計(jì)算機(jī)程序員則傾向于畫點(diǎn)畫線。LelandWilkinson的著作在理論上改善了這種狀況,他提出了一套圖形語法,讓我們在考慮如何構(gòu)建一幅圖形的時候不再陷在具體的圖形元素里面,而是把圖形拆分為一些互相獨(dú)立并且可以自由組合的成分。這套語法提出來之后他自己也做了一套軟件,但顯然這套軟件沒有被廣泛采用;幸運(yùn)的是,HadleyWickham 在R語言中把這套想法巧妙地實(shí)現(xiàn)了。
為了說明這種語法的思想,我們考慮圖形中的一個成分:坐標(biāo)系。常見的坐標(biāo)系有兩種:笛卡爾坐標(biāo)系和極坐標(biāo)系。在語法中,它們屬于一個成分,可自由拆卸替換。笛卡爾坐標(biāo)系下的條形圖實(shí)際上可以對應(yīng)極坐標(biāo)系下的餅圖,因?yàn)闂l形圖的高可以對應(yīng)餅圖的角度,本質(zhì)上沒什么區(qū)別。因此在ggplot2中,從一幅條形圖過渡到餅圖,只需要加極少量的代碼,把坐標(biāo)系換一下就可以了。如果我們用紙筆模型,則可以想象,這完全是不同的兩幅圖,一幅圖里面要畫的是矩形,另一幅圖要畫扇形。
更多的細(xì)節(jié)在本書中會介紹,這里我們只是簡略說明用語法畫圖對用紙筆畫圖來說在思維上的優(yōu)越性;前者是說話,后者是說字。
……