ggplot2學習筆記之標度scale

ggplot2學習筆記之標度scale

轉自:http://blog.csdn.net/songzhilian22/article/details/49006391

標度(scale),是將數據空間(標度的定義域)映射到圖形屬性空間(標度的值域) 的一個函數。 每一種圖形屬性都有一個默認的標度,當我們每一次使用這個圖形屬性時都會自動 添加到圖形中。


圖形屬性離散型連續型
顏色(colour)和填充色(fill)brewer、grey、hue、identity、manualgradient、gradient2、gradientn
位置(position)(x,y)discretecontinuous、date、datetime、log10、sqrt、reverse
形狀(shape)shape、identity、manual 
線條類型(line type)linetype、identity、manual 
大小(size)identity、manualsize

各種標度,粗體是默認


用法:以scale_開頭,接下來是圖形屬性名稱(例如,colour_、shape_或x_),最後以標度的名稱結尾(例如,gradient、hue 或manual)。比如,離散性數據的顏色圖形屬性默認標度名爲scale_colour_hue(),形狀圖形屬性標度爲scale_shape_shape()。使用?或者help()可以查看相關參數及具體用法。

  • scale_x_XXX、scale_y_XXX 是控制x、y 軸的標度,用於設置x、y 軸的顯示標籤、顯示範圍、刻度上的值等等。XXX 主要有continuous、data、datatime、discrete、log10、sqrt 等等。
  • 對於圖例的標度,如果圖例是控制着顏色屬性colour,那麼使用scale_colour_XXX 可以設置這個圖例的屬性(比如標籤、顯示的值)。類似的還有scale_size_XXX、scale_fill_XXX、scale_shape_XXX 等等,具體用法以及參數請查看幫助文檔。

1. 設置座標軸與圖例標籤

設定座標軸或者圖例的標籤:

通過運用xlab、ylab、labs 三個輔助函數,也可以設定座標軸或者圖例的標籤。以下 
三個代碼繪製的圖形是一樣的:

p <- qplot(cty,hwy,data=mpg,colour=displ)
p + scale_x_continuous('City mpg') + scale_y_continuous('Highway mpg')
p + xlab('City mpg') + ylab('Highway mpg')
p + labs(x = ('City mpg'), y = ('Highway mpg'))
  • 1
  • 2
  • 3
  • 4

這裏寫圖片描述

設置圖例顯示標籤:

p + scale_colour_gradient('Displacement')
p + labs(colour = 'Displacement')
  • 1
  • 2

這裏寫圖片描述

2. 參數limits

limits 可以用於固定標度定義域,即指定數據顯示範圍。連續型標度接受長度爲2 的數值型向量;離散型接受一個字符型向量。limits 影響的是圖形上顯示的元素。 
比如以下兩個代碼中,第一個代碼控制x 軸,只顯示(10,25)的數據(左圖);第二個控制圖例顯示範圍,只顯示(2,5)的部分圖例,而且圖中在(2,5)之外的數據沒有指定顏色(即灰色)。

p + scale_x_continuous(limits=c(10,25))
p + scale_colour_gradient(limits=c(2,5))
  • 1
  • 2

這裏寫圖片描述


3. 參數breaks 和labels

breaks 控制着顯示座標軸或圖例上的值,即座標軸上應該顯示哪些刻度線的值,或一個連續標度在一個圖例中將被如何分段。breaks 影響顯示座標軸或圖例上的元素。 
labels 指定了應在斷點處顯示的標籤。如果設置了labels,則必須同時指定breaks,只有這樣兩個參數才能正確匹配。

p + scale_x_continuous(breaks=c(10,20,30))
p + scale_colour_gradient(breaks=c(2, 3, 4, 5))
  • 1
  • 2

這裏寫圖片描述

從以上兩個圖形中可以看出,使用breaks 參數改變的僅僅是座標軸與圖例中顯示的值,圖中元素並沒有發生改變。而使用limits 參數會影響圖中元素。

p + scale_x_continuous(breaks=c(10,20,30),labels=c('A','B','C'))
p + scale_colour_gradient(breaks=c(2,3,4,5,6),labels=c('A','B','C','D',"E"))
  • 1
  • 2

這裏寫圖片描述
同樣的,參數labels 與breaks 一樣,改變的只是座標軸或圖例上的元素,而不會改變圖形中的元素。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章