前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ggplot2高度自定义主题线

ggplot2高度自定义主题线

作者头像
R语言数据分析指南
发布2024-03-02 08:28:50
1320
发布2024-03-02 08:28:50
举报
文章被收录于专栏:R语言数据分析指南

最终结果

❝通常绘图在进行分面操作时,有时需要将面板间距设置为0,通过这样的操作会减小面板间间距,但是也会产生一个问题,即面板间的轴线会叠在一起形成一条粗线。在默认的theme函数中想要去除面板间的轴线则会发现axis.line.y等主题设置项会不执行操作,若使用theme_classic()主题的结果则会使得最右侧会缺少一条轴线。那么该如何自定义设置theme函数来达到所需的效果哪,请看下方案例。 ❞

代码语言:javascript
复制
library(tidyverse)

theme_bw()

代码语言:javascript
复制
mpg %>% filter(drv %in% c("f","r")) %>% 
  ggplot(., aes(x = displ, y = hwy, color = class)) +
  geom_point()+
  facet_wrap(.~drv,nrow=1)+
  theme_bw()+
  theme(plot.background = element_rect(fill="white"), # 控制整个图形背景
        panel.background = element_rect(fill="white"), # 控制图形绘图面板背景
        panel.grid.major = element_blank(), # 移除主网格线
        panel.grid.minor = element_blank(),
        panel.spacing.x=unit(0,"cm"),
        strip.background.x =element_rect(fill="grey",color="black"))

theme_classic()

使用此主题后会发现右侧会缺少一条线

代码语言:javascript
复制
mpg %>% filter(drv %in% c("f","r")) %>% 
  ggplot(., aes(x = displ, y = hwy, color = class)) +
  geom_point()+
  facet_wrap(.~drv,nrow=1)+
  theme_classic()+
  theme(plot.background = element_rect(fill="white"), # 控制整个图形背景
        panel.background = element_rect(fill="white"), # 控制图形绘图面板背景
        panel.grid.major = element_blank(), # 移除主网格线
        panel.grid.minor = element_blank(),
        panel.spacing.x=unit(0,"cm"),
        strip.background.x =element_rect(fill="grey",color="black"))

自定义theme

若要使右侧的线条可以通过主题元素进行自定义,我们可以通过添加一条辅助轴线的方式来将Y轴右侧轴线变为实际可操作的元素。

代码语言:javascript
复制
mpg %>% filter(drv %in% c("f","r")) %>% 
  ggplot(., aes(x = displ, y = hwy, color = class)) +
  geom_point()+
  scale_y_continuous(sec.axis = sec_axis(~ ., name = ""))+
  facet_wrap(.~drv,nrow=1)+
  theme(plot.background = element_rect(fill="white"), # 控制整个图形背景
        panel.background = element_rect(fill="white"), # 控制图形绘图面板背景
        panel.grid.major = element_blank(), # 移除主网格线
        panel.grid.minor = element_blank(), # 移除网格线
        panel.spacing.x=unit(0,"cm"),
        strip.background.x =element_rect(fill="grey",color="black"),
        axis.line.x=element_line(color="black"),
        axis.line.y.left = element_line(color="black"),
        axis.line.y.right = element_line(color="black"),
        axis.text.y.right = element_blank(),
        axis.ticks.y.right = element_blank())

❝本节介绍到此结束,很小的一个细节调整也许在某时会有用处。更多内容持续更新中 ❞

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最终结果
  • theme_bw()
  • theme_classic()
  • 自定义theme
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档