美文网首页R语言做图
R语言可视化及作图8--坐标轴自定义和坐标系转换

R语言可视化及作图8--坐标轴自定义和坐标系转换

作者: Hayley笔记 | 来源:发表于2021-04-26 20:26 被阅读0次

R语言绘图系列:


1. 坐标轴自定义函数

1. 1:标度函数scale

在ggplot2中,坐标轴不是一个几何对象,而必须要由标度函数scale来进行调节。

例1:

library(ggplot2)
p1 <- ggplot(mpg,aes(displ,hwy))+geom_point()
p1

使用scale_x_continous和scale_y_continous定义x轴和y轴标签

p1 + scale_x_continuous('Engine displacement(L)')+scale_y_continuous('Highway MPG')

去掉x轴标签和y轴标签

p1+labs(x=NULL,y=NULL) #xlab和ylab也是用来定义值标签,但是功能较单一。

限制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轴刻度变成百分数形式

p2+scale_y_continuous(labels = scales::percent)

例3:
针对离散型变量的操作用scale_x_discrere函数

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+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函数

设置坐标轴的颜色和线条等

p <- ggplot(mtcars,aes(mpg,wt))+geom_point()
p+theme(axis.title = element_text(color = 'red',size = 18),
        #定义坐标轴主题
        axis.line = element_line(color = 'blue'),
        #定义坐标轴横线
        axis.text = element_text(color = 'orange',size = 12),
        #定义坐标轴刻度标签
        axis.ticks=element_line(color = 'light skyblue',size = 3))

除了标度函数可以自定义坐标轴外,theme()函数也有相应的功能。下表列出了theme()函数中关于坐标轴的一些参数及其用法

参数 用法 功能
axis.title 接受函数element_text() 定义图形坐标轴主题的样式
axis.title.x/y 接受函数element_text() 分别定义x,y轴的主题样式
axis.text 接受函数element_text() 定义坐标轴刻度标签样式
axis.text.x/y 接受函数element_text() 定义x,y轴刻度标签样式
axis.ticks 接受函数element_text() 定义坐标轴刻度样式
axis.ticks.x/y 接受函数element_text() 定义x,y轴刻度样式
axis.line 接受函数element_text() 定义坐标轴横线样式
axis.line.x/y 接受函数element_text() 定义x,y轴横线样式

2. 坐标系转换函数

2.1:极坐标转换函数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()进行极坐标转换
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()#去图形背景网格线
        )

2.2:坐标轴转换函数: coord_flip()
在笛卡尔坐标系上进行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

相关文章

网友评论

    本文标题:R语言可视化及作图8--坐标轴自定义和坐标系转换

    本文链接:https://www.haomeiwen.com/subject/rawdrltx.html