r - 如何使用 x 轴上的两个不同变量在图形上添加紧凑字母
问题描述
是否可以使用条形图和箱线图顶部的紧凑字母来显示重要组?我找不到 x 轴中两个不同变量的解决方案(例如施肥和年份)。如果试验 1 和试验 2 只有一个因素,我添加字母没有问题,所以我认为问题出在指定层次结构(试验 1/受精:添加这些字母,试验 1/年;添加这些字母,试验 2/施肥;添加这些字母,依此类推)。我添加了一个示例,其中添加了通过将图片导入 PP 并手动添加字母来添加字母(如果其他一切都失败了,那是糟糕的选择)
GGPLOT2 - 用于绘图 GGH4X - 用于嵌套分面包装 PATCHWORK - 合并绘图
代码:
d1 <- IOSDV1 %>%
select(x = SISTEM, Sr, Rb, Br, POSKUS, ORDER) %>%
mutate(name = "SISTEM", name = factor(name, levels = c("SISTEM", "Leto")))
d2 <- IOSDV1 %>%
select(x = Leto, Sr, Rb, Br, POSKUS, ORDER) %>%
mutate(name = "Leto", name = factor(name, levels = c("SISTEM", "Leto")))
base <- ggplot(mapping = aes(x = fct_reorder(x, ORDER), y = Sr)) +
stat_summary(data = d1, fun.data = mean_cl_normal, show.legend = FALSE, color = "black", size = 0.5, shape=21, position=position_dodge(0.95),geom="errorbar", width = 0.2) +
stat_summary(data = d1, fun.y = mean, position=position_dodge(width=0.95), geom="bar", show.legend = FALSE, color = "black", size = 0.5, fill="lightgoldenrodyellow") +
geom_boxplot(data = d2, fill="lightgoldenrodyellow", outlier.size = 0.2) +
stat_summary(data = d2, fun = mean, geom="crossbar", show.legend = FALSE, color = "red", size=0.3, width=0.75) +
labs(x = NULL, y = "Sr (\u03BCg/100 g)") +
#theme_classic(base_family = "Palatino Linotype") +
theme_classic() +
theme(axis.text = element_text(colour = "black", size = 8),
axis.title = element_text(colour = "black", size = 8, face = "bold"),
axis.text.x = element_text(angle = 60, vjust = 1, hjust = 1)) +
theme(strip.background = element_blank())
a <- base + facet_nested_wrap(~POSKUS+name, nrow = 2, scales = "free_x", labeller = function(d) list(as.character(d$POSKUS)))
(a | d) + plot_annotation(tag_levels = c('A', '1')) & theme(text = element_text('Palatino Linotype'))
ggsave(filename = "question.png", width=6, height=4, dpi = 600, type = "cairo")
解决方案
推荐阅读
- python - 在 django 中创建站点地图时,获取“ArticleSitemap”对象没有属性“get_urls”错误
- javascript - typescript - 从日期中获取日期名称
- selenium - 我应该如何处理在 UI 自动化框架中连接在一起的多个数据对象
- postgresql - PostgreSQL 错误关系中的 CREATE 语句不存在
- wordpress - 有没有办法向 docker 容器中的 wordpress 站点发出邮递员请求?
- azure-devops - 为自动管道动态设置参数值
- ios - iOS 妙控键盘 API
- lua - Lua脚本循环键按下
- asp.net - ASP.NET Ajax 控制工具包 - 内容安全策略
- mysql - SQL Query 将数据库上的所有表名与 MySQL 联合