# 加载ggplot2包
library(ggplot2)
# 自定义文字大小
axis_title_size <- 18
axis_text_size <- 12
label_text_size <- 6
title_size <- 18
facet_label_size <- 14
legend_text_size <- 14 # 调整图例文本大小
legend_key_size <- unit(1, "cm") # 调整图例键大小
# 自定义框的高度
tile_height <- 0.6
# 自定义分面间距
facet_spacing <- unit(0.3, "cm") # 2cm为例,您可以根据需求调整
# 创建数据框
sites <- c("Site 1", "Site 2", "Site 3")
weeks <- c("Week 4", "Week 6", "Week 8", "Week 10")
materials <- c("B73", "Mo17")
df <- expand.grid(site = sites, time = weeks, material = materials, replicate = c("Rep 1", "Rep 2", "Rep 3"))
# 绘制图形
p <- ggplot(df, aes(x = interaction(time, material, sep = "-", lex.order = TRUE), y = replicate)) +
geom_tile(aes(fill = material), color = "white", width = 0.9, height = tile_height) +
geom_text(aes(label = material), color = "black", size = label_text_size, vjust = 0.5, hjust = 0.5) +
scale_fill_manual(values = c(B73 = "#00BFFF", Mo17 = "#FF4500")) +
facet_wrap(~ site, ncol = 1, scales = "free_y") +
labs(title = "Field situation diagram", x = "Growth Period", fill = "Variety") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1, size = axis_text_size),
axis.text.y = element_text(size = axis_text_size),
axis.title.x = element_text(size = axis_title_size),
axis.title.y = element_text(size = axis_title_size),
plot.title = element_text(size = title_size, hjust = 0.5),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
strip.text = element_text(size = facet_label_size),
panel.spacing = facet_spacing,
legend.text = element_text(size = legend_text_size),
legend.key.size = legend_key_size)
# 打印图形
print(p)