R語言 - 6 R圖形基礎

本章討論的全部內容能夠按如下的思路來講:圖形化定性或者說描述性變量(柱狀圖、脊柱圖、餅圖及扇形圖),圖形化定量型變量(直方圖及核密度圖),圖形化變量的發散趨勢(箱圖)以及在單一軸上刻畫大量數據的方法-點圖。

柱狀圖- Bar Plot

柱狀圖的主要做用是以水平條或垂直條的方式顯示Categorical變量的分佈(頻數)R提供了barplot() 函數來支持柱狀圖的建立,其最簡單的形式以下:barplot(height)。其中height是向量或矩陣,若是是向量的話顯示如左,矩陣則會描繪一個堆積柱狀圖(beside=FALSE)或組柱狀圖(beside=TRUE)html

wKiom1Q0_SeggI7mAACJEOwB8Mk052.jpg


【提示】若是Categorical變量是factor或有序factor,那麼直接用plot函數產生跟barplot同樣的效果ide

 

下面的代碼建立了一個比較全的柱狀圖:函數

barplot (m, main="Sales byRegion",col=c("red","green","grey","blue"),xlab="region",ylab="Sales")spa

wKioL1Q0_WuTUo_QAAC-FqaApG0618.jpg

spine()函數產生相似於×××S百分百堆積柱狀圖3d

wKioL1Q0_XqRAlc1AACSieUajr8580.jpg

餅圖

除了柱狀圖/條形圖外,餅圖是另一種常常用來刻畫Categorical類型變量的分佈的圖形。雖然柱狀圖比較流行可是不少統計學家包括本書的做者都不推薦使用餅圖,而是推薦使用柱狀圖或點圖,由於對於人來講判斷長度比判斷面積更準確容易。餅圖使用下面的函數建立:orm

pie(x, labels)htm

x是一個非負的數值向量來指示餅圖每一個切片的大小,lables是一個字符向量指示每一個切片的標籤。對象

 

 

餅圖有個問題,人們很難比較餅圖中不一樣的切片之間的大小,除非每一個切片上都有數值標籤,因此有了下面的扇圖:blog

wKioL1Q0_aqgVqxgAADwAzjwFac907.jpg

直方圖

直方圖用來顯示連續性變量的分佈狀況,它將連續性的數據在x軸上切分紅一段一段的小格子,並在Y軸上爲每一個小格子顯示頻率。R使用下面的函數建立直方圖:排序

                hist(x,freq=TRUE/FALSE, breaks=value, col=」red」, xlab=」annotation in x axis」,main=」title of the hist」)

其中x是一個連續性的數值向量,若是freqTRUE表示基於頻數建立的直方圖,不然表示基於頻率建立直方圖;breaks會指示直方圖會在X軸上建立幾個小盒子:

wKioL1Q0_bvyKqvtAADrkqEhEbk962.jpg

另外在執行完hist函數描繪了一個直方圖以後,咱們能夠再調用其餘繪圖函數(好比lines)來將一條線加在直方圖上,如上有圖所示即將數據集的核密度估計(KDE)描繪了出來:

核密度圖

核密度估計是一種評估連續性隨機變量的的機率密度函數的有效方法。咱們前面已經看過使用直方圖的形式表述一個連續性隨機變量的機率密度函數,核密度估計以一種更平滑的方式來描述機率密度。其函數形式爲

density(x)

下圖是使用plot(density(mtcars$mpg))來展現mtcarsmpg變量的核密度估計。本例子直接用plot來描畫,plot會建立一個新的圖形,若是是要往已經存在的圖形上附加的話要使用lines()函數:

wKioL1Q0_cXSBj86AADrY6I7IVw090.jpg

核密度估計另外一個重要的做用是能夠在不一樣的分組間比較某變量的機率分佈,sm包的sm.density.compare()函數提供了這種功能。下面的函數及圖形就是以cyl分組查看mpg的機率密度函數:

sm.density.compare(mpg, cyl, xlab="Miles PerGallon")

wKiom1Q0_ZvQDP1eAAES1KU6cJ4079.jpg

 

Box畫圖

箱圖經過圖形化某個連續性變量的5個特徵量(最小值、第一四分位、中位數、第三四分位和最大值)來描述該變量的分佈,初次以外它還有可能顯示離羣點(在正負1.5IQR以外的數)

例如boxplot(mtcars$mpg)會顯示下面的箱圖。咱們能夠使用boxplot.stats(mtcars$mpg)來打印5個特徵量的值。

wKioL1Q0_eDzgqPLAABkHuYoV0M373.jpg

正如咱們在覈密度圖中看到的分組比較,使用箱圖在不一樣組之間作比較。其函數形式爲:boxplot(formula,data=dataframe),其中data指定箱圖所基於的數據幀對象,formula是形如y~A的公式,y指箱圖所描述的變量,A是指基於該列(或多列A*B)分組變量y來作箱圖。下圖以cyl分組mpg作箱圖:boxplot(mpg~cyl,data=mtcars)。從中咱們能夠看到6缸的車的mpg數據更對稱一些:

wKiom1Q0_bPjt1RgAAB6aCmQ_a4526.jpg

點圖

http://lectures.molgen.mpg.de/Pairwise/DotPlots/index.html

點圖提供了一種方式在一個簡單的水平軸上描畫大量的有標籤的數值,R提供了dotchart()函數來實現這種能力,其最簡單的調用方式是:

dotchart(x, labels=)

其中x是數值向量,labels是一個字符向量指示了每一個數值的標籤。下圖是咱們使用dotchart(mpg,labels=row.names(mtcars),cex=0.7)所建立的點圖:

wKiom1Q0_cGxsUDMAAK0N_LgZO0692.jpg

除了上面簡單的形式意外,點圖更有意思的一種表現形式是,咱們能夠首先排序而後使用groups選項指示各個點以某個因子變量分組,以下圖所示:

wKiom1Q0_c3ycFq9AAIpTe5Rgjo457.jpg 

相關文章
相關標籤/搜索