前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ggplot2绘制半透明云雨图

ggplot2绘制半透明云雨图

作者头像
R语言数据分析指南
发布2023-09-11 08:46:14
4230
发布2023-09-11 08:46:14
举报
文章被收录于专栏:R语言数据分析指南

❝本节来介绍如何使用「ggplot2」来批量绘制云雨图,下面小编就通过一个案例来进行展示数据为随意构建无实际意义仅作图形展示用,希望各位观众老爷能够喜欢,❞

加载R包

代码语言:javascript
复制
install.packages("pacman")
pacman::p_load(tidyverse,ggtext,camcorder,scales,ggsci,ggdist,gghalves)

df <- read_tsv("data.tsv")

数据清洗

代码语言:javascript
复制
spam <- df %>% mutate(yesno = ifelse(yesno == 'y', "Yes", "No")) %>%
  pivot_longer(cols = -yesno, names_to = "category") 

数据可视化

代码语言:javascript
复制
spam %>%
  filter(value > 0, value < 3000) %>%  # 过滤数据,只保留value在0到3000之间的数据
  ggplot(aes(x = as_factor(yesno), y = value, color = yesno, fill = yesno)) +  # 创建ggplot图,设置x轴为yesno的因子,y轴为value,颜色和填充都基于yesno
  geom_boxplot(width = 0.2,fill  = "transparent",size  = 0.4,outlier.shape = NA) +  # 添加箱线图,设置宽度、填充颜色、线条大小和异常值形状
  geom_half_violin(alpha = 0.5, side = 'top')+  # 添加半小提琴图,设置透明度和显示的一侧
  geom_half_point(side  = "l",alpha = 0.1, size  = 0.6) +  # 添加半点图,设置显示的一侧、透明度和大小
  scale_x_discrete() +  # 设置x轴为离散刻度
  scale_y_log10() +  # 设置y轴为对数刻度
  scale_fill_npg() +  # 设置填充颜色
  scale_color_npg(guide = "none") +  # 设置颜色并隐藏图例
  coord_flip(clip = 'off') +  # 翻转坐标轴并关闭裁剪
  labs(x=NULL,y= "Number of events (log10 scale)") +  # 设置x轴和y轴的标签
  facet_wrap(~ category, scales = "free") +  # 按category分面显示,并允许每个面的刻度自由变化
  theme_minimal() +  # 使用简洁主题
  theme(  # 自定义主题设置
    plot.background = element_rect(fill = "white", color = "white"),  # 设置图背景颜色
    panel.background= element_rect(fill = "white", color = "white"),  # 设置面板背景颜色
    axis.ticks.y = element_blank(),  # 隐藏y轴刻度
    plot.margin= margin(t = 10, r = 10, b = 10, l = 10),  # 设置图边距
    axis.title.x= element_text(size = 10,face='bold',margin=margin(t=10)),  # 设置x轴标题样式
    axis.text = element_text(size = 10,color="black"),  # 设置轴文本样式
    axis.line.x = element_line(color = "black"),  # 设置x轴线条颜色
    panel.grid.major.y= element_line(linetype="dotted",linewidth=0.3,color='gray'),  # 设置y轴主要网格线样式
    panel.grid.minor.y= element_blank(),  # 隐藏y轴次要网格线
    panel.grid.major.x= element_blank(),  # 隐藏x轴主要网格线
    panel.grid.minor.x= element_blank(),  # 隐藏x轴次要网格线
    legend.position = "non",  # 设置图例位置
    strip.text= element_textbox(size= 10,face= 'bold',color= "grey20",  # 设置分面标题样式
                                hjust= 0.5,halign= 0.5,r= unit(5, "pt"),
                                width = unit(5.5, "npc"),
                                padding = margin(3, 0,3, 0),
                                margin= margin(1,1,1,1)),
    panel.spacing=unit(1,'lines')  # 设置面板间距
  )

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 加载R包
  • 数据清洗
  • 数据可视化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档