https://www.cnblogs.com/xiaojikuaipao/p/11478780.html
http://blog.sina.com.cn/s/blog_15ff3b88f0102we75.html
一:ggplot基本語法
ggplot2的核心理念是將繪圖與數(shù)據(jù)分離躬厌,數(shù)據(jù)相關(guān)的繪圖與數(shù)據(jù)無關(guān)的繪圖分離。按圖層作圖竞帽,保有命令式作圖的調(diào)整函數(shù)扛施,使其更具靈活性,并將常見的統(tǒng)計(jì)變換融入到了繪圖中屹篓。
ggplot的繪圖有以下幾個(gè)特點(diǎn):第一疙渣,有明確的起始(以ggplot函數(shù)開始)與終止(一句語句一幅圖);其二抱虐,圖層之間的疊加是靠“+”號實(shí)現(xiàn)的昌阿,越后面其圖層越高。
ggplot2里的所有函數(shù)可以分為以下幾類:
- 用于運(yùn)算(我們在此不講,如fortify_懦冰,mean_等)
- 初始化灶轰、展示繪圖等命令(ggplot,plot刷钢,print等)
- 按變量組圖(facet_等)
- 真正的繪圖命令(stat_笋颤,geom_,annotate)内地,這三類就是實(shí)現(xiàn)一個(gè)函數(shù)一個(gè)圖層的核心函數(shù)伴澄。
- 微調(diào)圖型:嚴(yán)格意義上說,這一類函數(shù)不是再實(shí)現(xiàn)圖層阱缓,而是在做局部調(diào)整非凌。
- aes : 同樣適用于修改geom_XXX() aes參數(shù)控制了對哪些變量進(jìn)行圖形映射,以及映射方式
- 圖形屬性(aes) 橫縱坐標(biāo)荆针、點(diǎn)的大小敞嗡、顏色,填充色等航背。
完整公式總結(jié):
ggplot(data = , aes(x = , y = )) +
geom_XXX(...) + ... + stat_XXX(...) + ... +
annotate(...) + ... + labs(...) +
scale_XXX(...) + coord_XXX(...) + guides(...) + theme(...) +
facet_XXX(...)
一個(gè)完整ggplot實(shí)例:
library(ggplot2)
attach(iris)
p <- ggplot(data=iris,aes(x = Sepal.Length,y = Sepal.Width))
p + geom_point(aes(colour = Species)) + stat_smooth() +
labs(title = "Iris of Sepal.length \n According to the Sepal.Width") +
theme_classic() + theme_bw() +annotate("text",x=7,y=4,parse = T,label = "x[1]==x[2]",size=6, family="serif",fontface="italic", colour="darkred")
- geom :表示幾何對象喉悴,它是ggplot中重要的圖層控制對象,因?yàn)樗?fù)責(zé)圖形渲染的類型玖媚。
幾何對象(geom_) 上面指定的圖形屬性需要呈現(xiàn)在一定的幾何對象上才能被我們看到箕肃,這些承載圖形屬性的對象可能是點(diǎn),可能是線今魔,可能是bar - stat :統(tǒng)計(jì)變換 比如求均值勺像,求方差等,當(dāng)我們需要展示出某個(gè)變量的某種統(tǒng)計(jì)特征的時(shí)候涡贱,需要用到統(tǒng)計(jì)變換.
- annotate:添加注釋 #由于設(shè)置的文本會覆蓋原來的圖中對應(yīng)的位置咏删,可以改變文本的透明度或者顏色 例: annotate(geom='text')會向圖形添加一個(gè)單獨(dú)的文本對象 annotate("text",x=23,y=200,parse=T,label = "x[1]==x[2]")
- labs : labs(x = "這是 X 軸", y = "這是 Y 軸", title = "這是標(biāo)題") ## 修改文字
- scale_: 標(biāo)度是一種函數(shù)惹想,它控制了數(shù)學(xué)空間到圖形元素空間的映射问词。一組連續(xù)數(shù)據(jù)可以映射到X軸坐標(biāo),也可以映射到一組連續(xù)的漸變色彩嘀粱。一組分類數(shù)據(jù)可以映射成為不同的形狀激挪,也可以映射成為不同的大小,這就是與aes內(nèi)的各種美學(xué)(shape锋叨、color垄分、fill、alpha)調(diào)整有關(guān)的函數(shù)娃磺。
- coord_:調(diào)整坐標(biāo)薄湿,控制了圖形的坐標(biāo)軸并影響所有圖形元素. 調(diào)整坐標(biāo) coord_flip()來翻轉(zhuǎn)坐標(biāo)軸。使用xlim()和ylim()來設(shè)置連續(xù)型坐標(biāo)軸的最小值和最大值 coord_cartesian(xlim=c(0,100),ylim=c(0,100))
- guides:調(diào)整所有的text。
- theme:調(diào)整不與數(shù)據(jù)有關(guān)的圖的元素的函數(shù)豺瘤。theme函數(shù)采用了四個(gè)簡單地函數(shù)來調(diào)整所有的主題特征:element_text調(diào)整字體吆倦,element_line調(diào)整主題內(nèi)的所有線,element_rect調(diào)整所有的塊坐求,element_blank清空蚕泽。theme(panel.grid =element_blank()) ## 刪去網(wǎng)格線
- facet :控制分組繪圖的方法和排列形式
不指定數(shù)據(jù)集時(shí),data = NULL
一個(gè)圖形對象就是一個(gè)包含數(shù)據(jù)桥嗤,映射须妻,圖層,標(biāo)度泛领,坐標(biāo)和分面的列表荒吏,外加組件options
ggplot(數(shù)據(jù), 映射) geom_xxx(映射, 數(shù)據(jù)) stat_xxx(映射, 數(shù)據(jù))
通過“+”實(shí)現(xiàn)不同圖層的相應(yīng)累加,且越往后的圖層表現(xiàn)在上方
點(diǎn)(point, text):往往只有x渊鞋、y指定位置司倚,有shape但沒有fill
線(line,vline,abline,hline,stat_function等):一般是基于函數(shù)來處理位置
射(segment):特征是指定位置有xend和yend,表示射線方向
面(tile, rect):這類一般有xmax,xmin,ymax,ymin指定位置
棒(boxplot,bin,bar,histogram):往往是二維或一維變量篓像,具有width屬性
帶(ribbon,smooth):透明是特征是透明的fill
補(bǔ):包括rug圖动知,誤差棒(errorbar,errorbarh)
然后,就是按照你的需要一步步加圖層了(使用“+”)员辩。