使用ggplot2進行高級繪圖--分組、添加光滑曲線


 

使用ggplot2進行高級繪圖--分組 

為了理解數據,在一個圖中畫出兩個或更多組的觀察值通常是很有幫助的。在R中,組通常用分類變量的水平(因子)來定義。分組是通過ggplot2圖將一個或多個帶有諸如形狀、顏色、填充、尺寸和線類型的視覺特征的分組變量來完成的。ggplot()聲明中的aes()函數負責分配變量(圖形的視覺特征),所以這是一個分配分組變量的自然的地方。

用分組來探討Salaries數據集。數據框包含的信息是在2008~2009學年大學教授的薪水。變量包括rank(助理教授、副教授、教授)、sex(女性、男性)、yrs.since.phd(獲得博士學位年數)、yrs.service(工齡)和salary(以美元計的九個月薪水)。

首先查看薪水是如何隨學術等級變化的。代碼: 

data(Salaries, package="car")

library(ggplot2)

ggplot(data=Salaries, aes(x=salary, fill=rank)) +

  geom_density(alpha=.3)

 

結果分析:在同一幅圖中畫出了三條密度曲線(每條曲線代表一個學術等級)並用不同的顏色來區分。填充的設置有些透明度(alpha),使重疊曲線不掩蓋彼此。顏色也相互結合來提高加入地區的可視化。薪水隨着等級的增長而增長,但是重疊比較明顯,比如一些助理教授與副教授或教授的薪水相同。隨着學術等級的增長,薪水的范圍也在擴大。對於教授而言尤其如此,他們的收入差距很大。把這三個分布放在同一幅圖上方便了組間的比較。

接下來,我們通過性別和學術等級分組,繪制獲得博士學位年數與薪水的關系:

ggplot(Salaries, aes(x=yrs.since.phd, y=salary, color=rank,

                     shape=sex)) + geom_point()

結果分析:學術等級用點的顏色來表示(紅色代表助理教授,綠色代表副教授,藍色代表教授)。性別用點的形狀來表示(圓形代表女性,三角形代表男性)。從圖中可以看出,薪水隨着畢業年數的增加而增加,但是它們之間的關系絕對不是線性的。

你可以用一個分組的條形圖按學術等級和性別來可視化教授的人數:

ggplot(Salaries, aes(x=rank, fill=sex)) +

  geom_bar(position="stack") + labs(title='position="stack"')

 

ggplot(Salaries, aes(x=rank, fill=sex)) +

  geom_bar(position="dodge") + labs(title='position="dodge"')

 

ggplot(Salaries, aes(x=rank, fill=sex)) +

  geom_bar(position="fill") + labs(title='position="fill"')

 

結果分析:從前兩個圖中可以明顯看出教授的人數大於其他學術等級的人數。除此之外,女性教授的人數比女性助理教授和副教授的人數要多。第三個圖表示即使女性的總數更大,但是女性教授在教授中的比重遠遠小於其他兩組。

 

使用ggplot2進行高級繪圖--添加光滑曲線

我們可以使用geom_smooth()函數來添加一系列的平滑曲線和和置信區域。函數的參數參見表。

geom_smooth()函數

 

使用Salaries數據集,我們先檢驗博士畢業年數和薪水之間的關系。在這個例子中,我們可以使用帶有95%置信區間的非參數光滑曲線(loess)。暫時忽略性別和學術等級。代碼如下

library(ggplot2)

ggplot(data=Salaries, aes(x=yrs.since.phd, y=salary)) +

  geom_smooth() + geom_point()

 

結果分析:圖形顯示經驗和薪水之間不是線性的關系,至少在畢業時間很長的時候是這樣。

按性別擬合一個二次多項式回歸(一個彎曲):

ggplot(data=Salaries, aes(x=yrs.since.phd, y=salary,

                          linetype=sex, shape=sex, color=sex)) +

  geom_smooth(method=lm, formula=y~poly(x,2),

              se=FALSE, size=1) +

  geom_point(size=2)

 

結果分析:置信界限被抑制(se=FALSE)來簡化圖。性別由顏色、符號形狀和線條類型來區分。對男性來說,曲線從0增加至約30年然后下降。對女性來說,擬合曲線從040年一直呈上升趨勢。在數據集中沒有女性獲得博士學位超過40年。對於數據集中的大部分范圍,男性能拿到更高的薪水。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM