R語言與醫學統計圖形-【11】ggplot2幾何對象之散點圖


ggplot2繪圖系統——幾何對象之散點圖

以geom開頭的函數超過30個。幾何對象和標度函數scale密不可分。只有在aes中傳入某個變量,scale才能發揮作用。

所謂標度scale,就是圖形遙控器,用於控制元素屬性。相對於color/shape等參數而言,可以進行更多、更精確的設置。

顏色標度設置

顏色梯度(gradient)標度(scale)函數。

#雙色梯度函數
scale_color_gradient(...,high='#56B1F7',low='#132B43',...)
scale_fill_gradient

#三色梯度函數
scale_color_gradient2(...,low=muted('red'),mid='white',high=muted('blue'),...)
scale_fill_gradient2

#自定義n色梯度函數,接受顏色向量
scale_color_gradientn(...,colors,...)
scale_color_gradientn

#手動設置顏色標度函數(對已有設置顏色不滿意時)
scale_color_mauual(..,values)
scale_fill_mauual

示例。

df <- data.frame(x=runif(100),y=runif(100),
                 z1=rnorm(100),z2=abs(rnorm(100)))

#color后接連續型變量也可做到顏色梯度展示,但只是映射,沒那么精細。
ggplot(df,aes(x,y))+geom_point(aes(color=z2))

ggplot(df,aes(x,y)) +geom_point(aes(color=z1))+
  scale_color_gradient2() #默認的三色梯度

image.png

ggplot(df,aes(x,y)) +geom_point(aes(color=z1))+
  scale_color_gradient(low='green',high = 'blue') 

ggplot(df,aes(x,y)) +geom_point(aes(color=z1))+
  scale_color_gradientn(colors = RColorBrewer::brewer.pal(5,'Set3')) 

image.png

ggplot(mtcars,aes(mpg,wt))+geom_point(aes(color=factor(cyl)))+
  scale_color_manual(values = c("red","blue","green"))
#注意傳入的顏色向量長度必須和顏色映射變量因子水平一致

image.png

點的形狀標度

標度函數中形狀函數。

scale_shape(...,solid=TRUE) 
#默認實心點

#自定義點型
scale_shape_manual(...,values)

示例。

ggplot(dsmall,aes(carat,price))+geom_point(aes(shape=cut))+
  scale_shape_manual(name='diamonds',values = c(1:5))
#注意此處1:5和基礎繪圖包中的點形狀代號是一樣的

image.png

點的大小標度

點的大小標度函數有:

scale_radus(name,breaks,labels,limits,range,trans,guide)

scale_size(name,breaks,labels,limits,range,trans,guide)

scale_size_area(...,max_size)

scale_size_manual

示例。

ggplot(mpg,aes(displ,hwy,size=hwy))+
  geom_point()+
  scale_size(name = 'hwy size',breaks = c(12,24,44),
             labels = c('low','middle','high'))


ggplot(mpg,aes(displ,hwy,size=hwy))+
  geom_point()+
  scale_radius() #將hwy大小傳至圓點半徑

image.png

df <- data.frame(x=c(0:10),y=c(20:30))
ggplot(df,aes(x=x,y=y,size=x))+
  geom_point()+
  scale_size_area()

image.png


免責聲明!

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



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