清潔數(shù)據(jù): 每列都是一個(gè)變量 每行都是一個(gè)觀測(cè)
tidyverse:ggplot2 tibble readr purrr dplyr
更新:tidyverse_update()(別老瞎更新)
第一章:使用ggplot2 進(jìn)行數(shù)據(jù)可視化
package::function()可明確指出某個(gè)函數(shù)或數(shù)據(jù)集的來(lái)源
如 ggplot2::ggplot()
創(chuàng)建ggplot2圖形
data(mpg)
ggplot(data = mpg)+ ### ggplot 創(chuàng)建一個(gè)坐標(biāo)系
geom_point(mapping = aes(x=displ,y=hwy))#### 向上加一個(gè)散點(diǎn)圖圖層
模板:
ggplot(data=<DATA>)+
<GEOM_FUNCTION>(mapping=aes<MAPPINGS>)
規(guī)則:ggplot(data=)用數(shù)據(jù)集創(chuàng)建一個(gè)坐標(biāo)系,然后利用其它函數(shù)向上添加圖層 tips:+必須放在上一行代碼的末尾而不是開(kāi)頭
mapping(): 定義了如何將數(shù)據(jù)集中的變量映射為圖形屬性
ase():x和y參數(shù)分別制定了映射到x軸的變量與映射到y(tǒng)軸的變量
標(biāo)度變換
ggplot2會(huì)自動(dòng)為每個(gè)變量分配唯一的圖形屬性水平,如荐虐,給上圖加上顏色
ggplot(data = mpg)+
geom_point(mapping = aes(x=displ,y=hwy,color=class))
ggplot(data = mpg)+
geom_point(mapping = aes(x=displ,y=hwy,color=displ<5))
還可以添加 size shape(最多同時(shí)使用6種圖形,多了就變點(diǎn)兒了) alpha(透明度)stroke等
分面
將圖形分割成多個(gè)分面海洼,顯示數(shù)據(jù)子集的子圖,特別適合添加分類(lèi)變量
函數(shù) facet_wrap(),在~后添加變量,變量應(yīng)為離散型
ggplot(data = mpg)+
geom_point(mapping = aes(x=displ,y=hwy))+
facet_wrap(~class, nrow = 2)
通過(guò)兩個(gè)變量進(jìn)行分面
ggplot(data = mpg)+
geom_point(mapping = aes(x=displ,y=hwy))+
facet_grid(drv~cyl)
ggplot(data = mpg)+
geom_point(mapping = aes(x=displ,y=hwy))+
facet_grid(.~cyl) 不想再行或列分面涕烧,可用. 代替
幾何對(duì)象 用來(lái)表示數(shù)據(jù)的幾何圖形對(duì)象. 可添加多個(gè)幾何對(duì)象。而且只要將一個(gè)圖形屬性映射為一個(gè)離散型變量擅这,ggplot2就會(huì)自動(dòng)對(duì)數(shù)據(jù)進(jìn)行分組來(lái)繪制多個(gè)幾何對(duì)象澈魄。
ggplot(data = mpg)+
geom_smooth(mapping = aes(x=displ,y=hwy))+
geom_point(mapping = aes(x=displ,y=hwy)) 局部映射景鼠,僅對(duì)該圖層有效
或者
ggplot(data = mpg,mapping = aes(x=displ,y=hwy))+
geom_smooth()+
geom_point(mapping=aes(color=class))
統(tǒng)計(jì)變換
很多圖形繪制的是數(shù)據(jù)集的原始數(shù)據(jù)仲翎,比如散點(diǎn)圖,另外一些圖形可以繪制那些計(jì)算出的新數(shù)據(jù)铛漓,比如條形圖溯香。
繪圖時(shí)用來(lái)計(jì)算新數(shù)據(jù)的算法稱(chēng)為stat(statistical transformation,統(tǒng)計(jì)變換)浓恶,計(jì)算出的新數(shù)據(jù)為computed variables
ggplot(data=diamonds)+
geom_bar(mapping = aes(x=cut))
ggplot(data=diamonds)+
stat_count(mapping = aes(x=cut))
每個(gè)幾何對(duì)象函數(shù)都有一個(gè)默認(rèn)統(tǒng)計(jì)變換玫坛,每個(gè)統(tǒng)計(jì)變換函數(shù)都有一個(gè)默認(rèn)幾何對(duì)象
ggplot(data=diamonds)+
stat_summary(mapping = aes(x=cut,y=depth),fun.ymin = min,
fun.ymax = max,fun.y = median)
stat_summary()為x的每一個(gè)唯一值計(jì)算y值的摘要統(tǒng)計(jì)
位置調(diào)整
條形圖 color 邊框,fill 填充
position="identity" 將每個(gè)對(duì)象直接顯示再圖中包晰,為了避免重疊湿镀,可以alpha設(shè)置透明度,或者fill=NA
ggplot(data=diamonds,mapping = aes(x=cut,color=clarity))+
+ geom_bar(fill=NA,position="identity")
ggplot(data=diamonds,mapping = aes(x=cut,fill=clarity))+
+ geom_bar(alpha=1/5,position="identity")
position = "fill",效果與堆疊相似伐憾,但每組堆疊條形具有同樣高度勉痴,可以輕松比較各組間的比例,position = "dodge"將每組中的條形依次并列放置树肃,可以用于比較各組間的數(shù)值蒸矛。點(diǎn)圖中,position="jitter",將每個(gè)點(diǎn)添加一個(gè)很小的隨機(jī)抖動(dòng)雏掠,可以將重疊的點(diǎn)散開(kāi)
ggplot(data=diamonds)+
geom_bar(mapping = aes(x=cut,fill=clarity),position = "fill")
ggplot(data=diamonds)+
geom_bar(mapping = aes(x=cut,fill=clarity),position = "dodge")
坐標(biāo)系
coord_flip()斩祭,可以用來(lái)交換x和y軸
coord_quickmap()為地圖設(shè)置合適的橫縱比
coord_polar() 極地坐標(biāo)
條形圖變餅圖
bar=ggplot(data=diamonds)+
geom_bar(mapping = aes(x=cut,fill=cut),
show.legend = F,
width = 1)+
theme(aspect.ratio = 1)+
labs(x=NULL,y=NULL)
bar+coord_flip()
bar+coord_polar()
模板
ggplot(data=<DATA>)+
<GEOM_FUNCTION>(mapping=aes<MAPPINGS>,
stat =<STAT>,
position = <POSITION>)+
<COORDINATE_FUCTION>+
<FACET_FUNCTION>
然后乡话,你就可以畫(huà)各種亂七八糟的圖啦
啦啦啦啦啦個(gè)屁