ggplot2 -- theme函数

29 篇文章 0 订阅
ggplot2是一个强大的R语言数据可视化库,它允许用户自定义图表的各个元素,如通过aes处理数据变量,geom函数创建图形,stat函数进行统计计算,而theme则专注于调整图表的视觉风格,包括标题、标签、线条和背景等。通过element_系列函数,可以精确控制每一部分的样式,如改变title的颜色、大小和位置,调整网格线的样式,以及设定背景色等。使用theme_set可以设置默认主题。
摘要由CSDN通过智能技术生成

briefs

ggplot 接受数据框
aes 接受数值变量和因子变量,并映射到坐标轴
labs 简单的修改了一些标签
geom 几何函数输出视觉效果
stat 统计函数背后默默干着事
theme 则控制着“画布”,除了上述受到data影响的其他元素,theme几乎都可以更改
(https://ggplot2-book.org/polishing.html)

theme函数狭义上可以认为一个接口,传递参数就可以修改视觉效果的主题风格。
theme函数其实还包括了一些包装好的主题,例如theme_grey()就是默认出现的主题。

# 调用格式
plot + theme(element.name = element_function())
# theme 调用接口
# element.name 代表特定的修改目标
# elements 则对应着一个修改函数 element_function()用于接受修改参数

# 比如,修改title的颜色,字体,字体大小,位置 等等
theme(plot.title = element_text(colour = "red"))

element.name

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

element_function()

element_text()

修改labels & titles

# 常用的修改字体的参数
family  # 比如 arial字体
face #比如加不加粗
colour  # 颜色
size (in points) # 字体大小 
hjust  #水平移动,传入数值参数
vjust  #垂直移动,传入数值参数
angle (in degrees)  #旋转角度
lineheight (as ratio of fontcase) #  
# More details on the parameters can be found in vignette("ggplot2-specs")

element_line()

draws lines parameterised by colour, linewidth and linetype

plot + theme(panel.grid.major = element_line(colour = "black"))
plot + theme(panel.grid.major = element_line(linewidth = 2))
plot + theme(panel.grid.major = element_line(linetype = "dotted"))

element_rect()

draws rectangles, mostly used for backgrounds, parameterised by fill colour and border colour, linewidth and linetype

plot + theme(plot.background = element_rect(fill = "grey80", colour = NA))
plot + theme(plot.background = element_rect(colour = "red", linewidth = 2))
plot + theme(panel.background = element_rect(fill = "linen"))

element_blank()

draws nothing.可以认为取消默认设置的一些设置,比如下面的把网格线取消

plot + theme(panel.grid.minor = element_blank())
plot + theme(panel.grid.major = element_blank())

Complete themes

在这里插入图片描述

还有一个函数 theme_set(theme) ,在这个工作空间下所有的ggplot的主题默认是theme_set()设置的主题。

theme_set(theme_bw())

封装一个看看

mytheme <- theme(
  plot.title = element_text(hjust = 0.5,size = 16),
  legend.position = "top",
  panel.grid.major.y = element_line(colour = "darkblue",linewidth = 0.5,),
  panel.grid.minor.y = element_line(colour = "red",linewidth = 0.1,linetype = "dotted"),
  panel.grid.major.x = element_blank(),
  panel.grid.minor.x = element_blank(),
)

ggplot(data = mtcars,aes(x=wt,y=mpg,color=am))+
  geom_point()+
  labs(title = "Test",x = "Weight",y = "Miles per gallon",color="Type")+
  myheme

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值