R語言繪圖系列:
- R語言可視化及作圖1--基礎(chǔ)繪圖(par函數(shù)僚饭,散點圖,盒形圖凌箕,條形圖枪萄,直方圖)
- R語言可視化及作圖2--低級繪圖函數(shù)
- R語言可視化及作圖3--圖形顏色選取
- R語言可視化及作圖4--qplot和ggplot2美學(xué)函數(shù)
- R語言可視化及作圖5--ggplot2基本要素和幾何對象匯總
- R語言可視化及作圖6--ggplot2之點圖、條形圖史飞、盒形圖尖昏、直方圖、線圖
- R語言可視化及作圖7--ggplot2之標(biāo)簽构资、圖例和標(biāo)題繪制
1. 坐標(biāo)軸自定義函數(shù)
1. 1:標(biāo)度函數(shù)scale
在ggplot2中抽诉,坐標(biāo)軸不是一個幾何對象,而必須要由標(biāo)度函數(shù)scale來進(jìn)行調(diào)節(jié)吐绵。
例1:
library(ggplot2)
p1 <- ggplot(mpg,aes(displ,hwy))+geom_point()
p1
使用scale_x_continous和scale_y_continous定義x軸和y軸標(biāo)簽
p1 + scale_x_continuous('Engine displacement(L)')+scale_y_continuous('Highway MPG')
去掉x軸標(biāo)簽和y軸標(biāo)簽
p1+labs(x=NULL,y=NULL) #xlab和ylab也是用來定義值標(biāo)簽迹淌,但是功能較單一河绽。
限制x軸和y軸取值范圍
p1+scale_x_continuous(limits = c(0,10))
定義x軸刻度并命名
p1+scale_x_continuous(breaks = c(2,4,6),labels = c('two','four','six'))
例2:
df <- data.frame(x=rnorm(10)*100000,y=seq(0,1,length.out=10))
p2 <- ggplot(df,aes(x,y))+geom_point()
p2
把y軸刻度變成百分?jǐn)?shù)形式
p2+scale_y_continuous(labels = scales::percent)
例3:
針對離散型變量的操作用scale_x_discrere函數(shù)
d <- ggplot(subset(diamonds,carat>1),aes(cut,clarity))+geom_jitter()
d
定義刻度
d+scale_x_discrete('Cut',labels=c('Fair'='F','Good'='G','very good'='VG','Premium'='P','Ideal'='I'))
離散型變量limits選取(相當(dāng)于取子集)
d+scale_x_discrete(limits=c('Fair','Ideal'))
例4:
ggplot(mpg,aes(reorder(manufacturer,displ),cty))+geom_point()+scale_x_discrete(labels=abbreviate)
1. 2:theme函數(shù)
設(shè)置坐標(biāo)軸的顏色和線條等
p <- ggplot(mtcars,aes(mpg,wt))+geom_point()
p+theme(axis.title = element_text(color = 'red',size = 18),
#定義坐標(biāo)軸主題
axis.line = element_line(color = 'blue'),
#定義坐標(biāo)軸橫線
axis.text = element_text(color = 'orange',size = 12),
#定義坐標(biāo)軸刻度標(biāo)簽
axis.ticks=element_line(color = 'light skyblue',size = 3))
除了標(biāo)度函數(shù)可以自定義坐標(biāo)軸外唉窃,theme()函數(shù)也有相應(yīng)的功能耙饰。下表列出了theme()函數(shù)中關(guān)于坐標(biāo)軸的一些參數(shù)及其用法
參數(shù) | 用法 | 功能 |
---|---|---|
axis.title | 接受函數(shù)element_text() | 定義圖形坐標(biāo)軸主題的樣式 |
axis.title.x/y | 接受函數(shù)element_text() | 分別定義x,y軸的主題樣式 |
axis.text | 接受函數(shù)element_text() | 定義坐標(biāo)軸刻度標(biāo)簽樣式 |
axis.text.x/y | 接受函數(shù)element_text() | 定義x纹份,y軸刻度標(biāo)簽樣式 |
axis.ticks | 接受函數(shù)element_text() | 定義坐標(biāo)軸刻度樣式 |
axis.ticks.x/y | 接受函數(shù)element_text() | 定義x苟跪,y軸刻度樣式 |
axis.line | 接受函數(shù)element_text() | 定義坐標(biāo)軸橫線樣式 |
axis.line.x/y | 接受函數(shù)element_text() | 定義x,y軸橫線樣式 |
2. 坐標(biāo)系轉(zhuǎn)換函數(shù)
2.1:極坐標(biāo)轉(zhuǎn)換函數(shù)coord_polar()
library(ggplot2)
a <- ggplot(data=subset(diamonds,color=='E'),aes(factor('E'),fill=cut))+geom_bar()
a #繪制普通的堆疊條圖
b <- ggplot(data=subset(diamonds,color=='E'),aes(factor('E'),fill=cut))+geom_bar()+
coord_polar()
b #使用 coord_polar()進(jìn)行極坐標(biāo)轉(zhuǎn)換
c <- ggplot(data=subset(diamonds,color=='E'),aes(factor('E'),fill=cut))+geom_bar()+
coord_polar(theta = 'y')
c
c+theme(axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank(),
panel.background = element_blank(),#去圖形背景
panel.grid = element_blank()#去圖形背景網(wǎng)格線
)
2.2:坐標(biāo)軸轉(zhuǎn)換函數(shù): coord_flip()
在笛卡爾坐標(biāo)系上進(jìn)行flip
dsmall <- diamonds[sample(1:nrow(diamonds),1000),]
a <- ggplot(dsmall,aes(color,price))+geom_boxplot(fill='darkgreen')+
coord_flip()
a
dsmall <- diamonds[sample(1:nrow(diamonds),1000),]
a <- ggplot(dsmall,aes(color,price))+geom_boxplot(fill='darkgreen')+
coord_flip()
a