文章目录
- 1 轴标签单位上下标
- 2 图例配色
- 3 图例修改
- 4 分组累积求和
- 5 在特定位置添加一条竖线
- 6 仅对一个变量的几行赋值
- 7 改变字体大小
- 8 facet分面设定坐标轴范围
1 轴标签单位上下标
用expression参数给轴标签添加上下标,下标是[],上标是^,有上下标的字符单独写,其他字符用双引号引起来,二者逗号隔开
labs(y=expression (paste("强度/(g·",m^-2,"·",min^-1,")")))
对应标签为 产沙强度/(g·m-2·min-1)
2 图例配色
library(RColorBrewer)
display.brewer.all() # 展示工具包的所有颜色系列,type分为三类:seq连续型(单渐变)、qua定性型(区分色)、div离散型(双渐变)
RColorBrewer所有颜色系列分别为
display.brewer.pal(6,"OrRd") # 展示特定颜色系列,此例把OrRd系列分割为6份
效果如下
brewer.pal(5,"Paired") # 输出颜色的16进制编码,可以用来赋值
## [1] "#A6CEE3" "#1F78B4" "#B2DF8A" "#33A02C" "#FB9A99"
brewer.pal(5, 'Paired')[c(1, 3, 5)]
## [1] "#A6CEE3" "#B2DF8A" "#FB9A99"
3 图例修改
scale_fill_discrete( guide="none" ) #或者
theme(legend.title=element_blank()) #移除图例
# 修改图例标题及内容
scale_colour_discrete( name="图例标题",
breaks=c("export share", "pm25"),
labels=c("Export Share of GDP", "PM2.5"))
# 修改图例位置
theme(legend.position="bottom") #"none", "left", "right", "bottom", "top"
theme(legend.position=c(.95,.95))
# 修改图例配色
+scale_color_brewer(palette = 'Paired')
+scale_fill_brewer(palette = 'Paired')
+scale_colour_manual(values=c("#00BA38","#F8766D","#619CFF"),name="图例标题")
+scale_colour_manual(values = c("red", "blue"))
+scale_colour_manual(values = c(male = "yellow", female = "red")) #也可以调整level的顺序来调整颜色因子顺序
4 分组累积求和
library(data.table)
t=data.table(name=c("b","b","b","a","a"),fenshu=1:5) # 创建data.table对象
t[,cumsum(fenshu),by=name]
5 在特定位置添加一条竖线
geom_vline(xintercept=c(-3,3), linetype="dotted")
6 仅对一个变量的几行赋值
以变量a为条件,当a=1时,把对应行里的b的值赋给对应行的c
ifelse(a==1,b,c)
7 改变字体大小
+theme(text = element_text(size=20)) #改变图中所有文字大小
+theme(axis_text = element_text(size=20)) #改变坐标轴标注字体大小
+theme(axis.title = element_text(size=20)) #改变坐标轴标题字体大小
+theme(legend.text = element_text(size=20)) #改变图例标注字体大小
+theme(legend.title = element_text(size=20)) #改变图例标题字体大小
8 facet分面设定坐标轴范围
facet分面函数中有个参数scales=“free”,可以对x、y轴自动生成范围;
coord_cartesian(xlim = c(0,xxx))函数可以统一面板的坐标轴范围;
geom_blank能够自定义各分面的坐标轴范围
blank_data <- data.frame(group=c("a","a","b","b","c","c"),
x=0,y=c(2,8,10,40,20,50))
ggplot()+
geom_point(df,aes(x=x,y=y,color=group))+
geom_blank(blank_data,aes(x=x,y=y)+
facet_wrap(~group,scales="free_y")
# 注意blank_data中的group和分面的group要对应,blank_data中的y包括每个分面的最小值、最大值
原图
geom_blank调整后