文章目录

  • 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所有颜色系列分别为

r语言人工智能代码 r语言代码实例_开发语言

display.brewer.pal(6,"OrRd")    # 展示特定颜色系列,此例把OrRd系列分割为6份

效果如下

r语言人工智能代码 r语言代码实例_r语言人工智能代码_02

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包括每个分面的最小值、最大值

原图

r语言人工智能代码 r语言代码实例_r语言人工智能代码_03

geom_blank调整后

r语言人工智能代码 r语言代码实例_r语言_04