美文网首页数据-R语言-图表-决策-Linux-Python
R学习笔记(14):使用ggplot2进行图形化沟通(下)

R学习笔记(14):使用ggplot2进行图形化沟通(下)

作者: TOP生物信息 | 来源:发表于2019-06-05 15:06 被阅读0次

这一节笔记介绍“标度”、“缩放”、“主题”、“图形保存”。

1. 标度

ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = class))
##当没有额外设置标度时,会自动添加默认标度
ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = class)) + 
  scale_x_continuous() + 
  scale_y_continuous() + 
  scale_color_discrete()
##scale_图形属性_标度名称
##标度名称:连续型、离散型、日期时间型、日期型
1.1 坐标轴刻度
##主要参数breaks:坐标轴刻度位置;labels:与刻度对应的文本标签
ggplot(mpg, aes(displ, hwy)) + geom_point() + 
  scale_y_continuous(labels = NULL, breaks = NULL) + scale_x_continuous(breaks = seq(2, 7, by = 1), labels = c("二", "三", "四", "五", "六", "七"))
##图例(中的刻度和标签)
ggplot(mpg, aes(class, hwy)) + geom_point(aes(color = displ)) + 
  scale_color_continuous(breaks = seq(2, 6, by = 2), labels = c("二", "四", "六"))
1.2 图例布局

如何设置图例的位置:使用主题函数theme()中的legend.position参数, 可取left, right, top, bottom, none

ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = class)) + theme(legend.position = "top")

设置图例的行数和大小

ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = class)) + theme(legend.position = "bottom") + 
  guides(color = guide_legend(
    nrow = 1,
    override.aes = list(size = 4)
    )
  )
1.3 定制颜色标度
library(RColorBrewer) #颜色库
library(scales) #显示颜色
display.brewer.all(type = "all")
display.brewer.all(type = "seq")
display.brewer.all(type = "div")
display.brewer.all(type = "qual") 
display.brewer.pal(9, "Set3")
#提取加显示
mycolors<-brewer.pal(9, "Set3")
show_col(mycolors)
#查看颜色的表示码
a<-brewer.pal(9, "BuGn")
show_col(a[c(3,5,7,9,1)],labels=F)
show_col(a[c(3,5,7,9,1)],labels=T)
#通过向量合并,你还可以自己从色彩包中自定义色彩方案
b1<-brewer.pal(9, "BuGn")
b2<-brewer.pal(9,"Blues")
c<-c(b1[c(1,3,5,7,9)],b2[c(2,4,6,8)])
show_col(c,labels=F)
1.3.1 ColorBrewer中的颜色
ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = drv, shape = drv)) + 
scale_color_brewer(palette = "Set1") #颜色集名称好像只能是RColorBrewer中的颜色集名称
1.3.2 自定义颜色
ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = drv)) + 
scale_color_manual(values = mycolors) #自定义颜色集
ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = drv)) + 
scale_color_manual(values = c(f = "blue", r = "green", "4" = "red")) #离散变量与颜色一一对应, 注意这里的"4" = "red"
1.3.3 如果是连续型颜色标度呢?

以下两种皆可

ggplot(mpg, aes(class, hwy)) + geom_point(aes(color = displ)) + 
  viridis::scale_color_viridis()
ggplot(mpg, aes(class, hwy)) + geom_point(aes(color = displ)) + 
  scale_color_gradient(low = "green", high = "red")

2. 缩放

2.1 放大图形的某一区域
ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = class)) + geom_smooth() + 
  coord_cartesian(xlim = c(5, 7), ylim = c(10, 30))
2.2 不同图形使用相同的标度
x_scale <- scale_x_continuous(limits = range(mpg$displ))
y_scale <- scale_y_continuous(limits = range(mpg$hwy))
col_scale <- scale_color_discrete(limits = unique(mpg$drv))

suv <- mpg %>% filter(class == "suv")
compact <- mpg %>% filter(class == "compact")

ggplot(suv, aes(displ, hwy, color = drv)) + geom_point() + 
  x_scale + 
  y_scale + 
  col_scale
ggplot(compact, aes(displ, hwy, color = drv)) + geom_point() + 
  x_scale + 
  y_scale + 
  col_scale

3. 主题

ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = class)) + theme_dark()

4. 图形保存

ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = class)) + theme_dark()
ggplot2::ggsave("plot1.pdf")

相关文章

网友评论

    本文标题:R学习笔记(14):使用ggplot2进行图形化沟通(下)

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