R語(yǔ)言繪圖系列:
- R語(yǔ)言可視化及作圖1--基礎(chǔ)繪圖(par函數(shù),散點(diǎn)圖纽哥,盒形圖钠乏,條形圖,直方圖)
- R語(yǔ)言可視化及作圖2--低級(jí)繪圖函數(shù)
- R語(yǔ)言可視化及作圖3--圖形顏色選取
- R語(yǔ)言可視化及作圖4--qplot和ggplot2美學(xué)函數(shù)
ggplot2基本要素
- “+”和“%+%”
- 數(shù)據(jù)(data)和映射(mapping):想要可視化的數(shù)據(jù)(data)以及一系列將數(shù)據(jù)中的變量對(duì)應(yīng)到圖形屬性的映射(mapping)春塌;ggplot2的數(shù)據(jù)(data)必須是一個(gè)數(shù)據(jù)框(dataframe)晓避。
- 幾何對(duì)象(geometric):幾何對(duì)象(geom)代表你在圖中實(shí)際看到的元素,如點(diǎn)只壳、線俏拱、多邊形等。
- 統(tǒng)計(jì)變換(statistics):統(tǒng)計(jì)變換(stat)是對(duì)數(shù)據(jù)進(jìn)行的某種匯總吼句。例如將數(shù)據(jù)分組計(jì)數(shù)以創(chuàng)建直方圖锅必,或?qū)⒁粋€(gè)二維的關(guān)系用線性模型進(jìn)行解釋。統(tǒng)計(jì)變換是可選的惕艳,但通常非常有用搞隐。
- 標(biāo)度(Scale):標(biāo)度(scale)的作用是將數(shù)據(jù)的取值映射到圖形空間驹愚,例如用顏色、大小或形狀來表示不同的取值劣纲。展現(xiàn)標(biāo)度的常見做法是繪制圖例和坐標(biāo)軸——它們實(shí)際上是從圖形到數(shù)據(jù)的一個(gè)映射逢捺,使你可以從圖形中讀取原始的數(shù)據(jù)。標(biāo)度包括位置癞季、顏色蒸甜、大小、形狀余佛、線型柠新。
- 坐標(biāo)系統(tǒng)(Coordinate):坐標(biāo)系(coord)描述了數(shù)據(jù)是如何映射到圖形所在的平面的,它同時(shí)提供了看圖所需的坐標(biāo)軸和網(wǎng)格線辉巡。我們通常使用的是笛卡爾坐標(biāo)系恨憎,但也可以將其變換為其它類型,如極坐標(biāo)和地圖投影郊楣。
- 圖層(Layer):圖層的作用是生成在圖像上可以被人感知的圖形憔恳。一個(gè)圖層由4部分組成:數(shù)據(jù)和圖形屬性映射;一種統(tǒng)計(jì)變換净蚤;一種幾何對(duì)象钥组;一種位置調(diào)整方式。
- 分面(Facet):分面(facet)描述了如何將數(shù)據(jù)分解為各個(gè)子集今瀑,以及如何對(duì)子集作圖并聯(lián)合進(jìn)行展示程梦。分面也叫作條件作圖或網(wǎng)格作圖。
其中各要素通過“+”以圖層(layer)的方式來粘合構(gòu)圖(可以簡(jiǎn)單理解為要素/圖層疊加符號(hào))橘荠;另外在ggplot2中屿附,數(shù)據(jù)集必須為數(shù)據(jù)框(data.frame)格式,并且可以通過%+%符號(hào)調(diào)整已有數(shù)據(jù)集(ggplot2指導(dǎo)文檔中明確寫出“To override the data, you must use %+%”哥童,也就是覆蓋數(shù)據(jù)必須通過%+%)挺份。
完整ggplot2繪圖模板?? :
ggplot(data = <DATA>) +
<GEOM_FUNCTION>(
mapping = aes(<MAPPINGS>),
stat = <STAT>,
position = <POSITION>
)+ <COORDINATE_FUNCTION> + <FACET_FUNCTION>
幾何對(duì)象匯總
幾何對(duì)象 | 功能 | 屬性 |
---|---|---|
abline | 繪制有斜率的直線 | color, linetype, size |
area | 繪制面積圖 | color, fill, linetype, size,x,y |
bar | 繪制條形圖 | color, fill, linetype, size, weight, x |
bin2d | 繪制二維熱圖 | color, fill, linetype, size, weight, xmax, ymax, xmin, ymin |
boxplot | 繪制盒形圖 | color, fill, lower, middle, size, upper, weight, x, ymax, ymin |
contour | 繪制等高線圖 | color, linetype, size, weight, x, y |
crossbar | 繪制盒子圖(不是boxplot) | color, fill, linetype, size, x, y, ymax, ymin |
density | 繪制密度曲線 | color, fill, linetype, size, weight, x, y |
density2d | 二維等高密度曲線 | color, linetype, size, weight, x, y |
dotplot | 繪制點(diǎn)直方圖 | color, fill, x, y |
errorbar | 繪制誤差條 | color, linetype, size, weight, x, ymax, ymin |
errorbarh | 繪制水平誤差條 | color, linetype, size, weight, x, ymax, ymin |
freqpoly | 繪制頻率多邊形 | color, linetype, size |
hex | 繪制六邊形熱圖 | color, fill, size, x, y |
histogram | 繪制直方圖 | color, fill, linetype, size, weight, x, y |
hline | 繪制水平線 | color, linetype, size |
vline | 繪制豎直線 | color, linetype, size |
jitter | 繪制擾動(dòng)點(diǎn)圖 | color, fill, shape, size, x, y |
lable | 繪制標(biāo)簽 | angle, color, hjust, label, size, vjust, x, y |
line | 繪制線條 | color, linetype, size, x, y |
linerange | 繪制區(qū)間線條 | color, linetype, size, x, ymax, ymin |
point | 繪制散點(diǎn) | color, fill, shape, size, x, y |
pointrange | 繪制區(qū)間點(diǎn)豎線 | color, linetype, fill, shape, size, x, y, ymax, ymin |
polygon | 繪制多邊形 | color, fill, linetype, size, x, y |
quantile | 添加分位數(shù)回歸線 | color, linetype, size, weight, x, y |
raster | 繪制光柵圖 | color, fill, linetype, size, x, y |
rect(tile) | 繪制矩形(瓦片圖) | color, fill, linetype, size, xmax, xmin, ymax, ymin |
ribbon | 繪制色帶圖 | color, fill, linetype, size, x, ymax, ymin |
rug | 繪制邊際地毯圖 | color, linetype, size |
segment | 添加線段或箭頭 | color, linetype, size, x, xend, y, yend |
smooth | 繪制平滑曲線 | color, alpha, fill, linetype, size, weight, x, y |
text | 添加文本 | angle, color, hjust, label, size, vjust, x, y |
violin | 繪制小提琴圖 | weight, color, fill, size, linetype, x, y |
path | 繪制路線圖 | color, linetype, size, x,y |
數(shù)據(jù)轉(zhuǎn)換函數(shù)
繪制幾何對(duì)象的各個(gè)函數(shù)中,數(shù)據(jù)轉(zhuǎn)換函數(shù)均是以參數(shù)“stat”形式出現(xiàn)贮懈,但是也存在其他數(shù)據(jù)轉(zhuǎn)換函數(shù)匀泊。
不同的幾何對(duì)象,其默認(rèn)的數(shù)據(jù)轉(zhuǎn)換函數(shù)是有區(qū)別的朵你,尤其是功能迥異的幾個(gè)幾何對(duì)象各聘,比如geom_point()和geom_bar()。
ggplot2中常見的統(tǒng)計(jì)變換及其應(yīng)用的場(chǎng)景總結(jié):
統(tǒng)計(jì)變換 | 功能 | 應(yīng)用場(chǎng)景 |
---|---|---|
abline | 繪制直線 | geom_abline() |
bin | 計(jì)算封箱數(shù)據(jù)撬呢,繪制直方圖或者頻率多邊形 | geom_histogram()伦吠;geom_freqpoly();stat_bin() |
bin2d | 計(jì)算矩形封箱內(nèi)的觀測(cè)值個(gè)數(shù),繪制二維熱圖 | geom_bin2d()毛仪;stat_bin_2d() |
bindot | 計(jì)算“點(diǎn)直方圖”的封箱數(shù)據(jù) | geom_dotplot() |
binhex | 計(jì)算六邊形熱圖的封箱數(shù)據(jù) | geom_hex()搁嗓;stat_bin_hex() |
boxplot | 計(jì)算箱線圖的各個(gè)元素,繪制箱線圖 | geom_bonplot()箱靴;stat_boxplot() |
contour | 繪制三維等高線 | geom_contour()腺逛;stat_contour() |
density | 一維密度估計(jì),繪制密度曲線 | geom_density()衡怀;stat_density() |
density2d | 二維密度估計(jì)棍矛,繪制二維密度線圖 | geom_density2d();stat_density2d() |
function | 調(diào)用新函數(shù)進(jìn)行統(tǒng)計(jì)變換 | stat_function() |
count | 對(duì)觀測(cè)值進(jìn)行計(jì)數(shù) | geom_bar()抛杨;stat_count() |
identity | 不對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)變換 | geom_area()够委;geom_point();geom_errorbar() |
計(jì)算qq圖指標(biāo)怖现,繪制qq圖 | geom_qq()茁帽;stat_qq() | |
quantile | 計(jì)算分位數(shù) | geom_quantile();stat_quantile() |
smooth | 添加平滑曲線 | geom_smooth()屈嗤;stat_smooth() |