这一节笔记介绍“标度”、“缩放”、“主题”、“图形保存”。
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")
网友评论