百分比堆积柱状图(R语言)跟子刊学配色

 数据结构如下,绘制百分比堆积柱状图

 

# 加载必要的库
library(readxl)
library(ggplot2)
library(reshape2)
library(dplyr)

# 读取Excel文件
data <- read_excel("D:/Genus.xlsx")

# 检查数据的前几行以确保列名正确
head(data)

# 检查列名
colnames(data)

# 如果第一列名不是"Group",将其重命名为"Group"
if(colnames(data)[1] != "Group") {
  colnames(data)[1] <- "Group"
}

# 将数据转换为长格式
data_long <- melt(data, id.vars = "Group", variable.name = "Genus", value.name = "Count")

# 计算每个分组中占比最高的所占比例
data_long <- data_long %>%
  group_by(Group) %>%
  mutate(Percentage = Count / sum(Count) * 100) %>%
  ungroup()

max_percentage <- data_long %>%
  group_by(Group) %>%
  summarize(MaxPercentage = max(Percentage))

# 定义更多颜色
custom_colors <- c("#14517C", "#2F7FC1", "#E7EFFA", "#96C37D", "#F3D266", "#D8383A", 
                   "#F7E1ED", "#F8F3F9", "#C497B2", "#A9BBC6", "#FFC1A1", "#B5EAD7",
                   "#FFDAC1", "#C7CEEA", "#E2F0CB", "#FFB7B2", "#FF9AA2", "#FDCFE8", 
                   "#D5C7BC", "#B39BC8")

# 创建百分比堆积柱状图并应用自定义配色
ggplot(data_long, aes(x = Group, y = Count, fill = Genus)) +
  geom_bar(stat = "identity", position = "fill") +
  scale_fill_manual(values = custom_colors) +
  theme_minimal() +
  labs(title = "Percentage Stacked Bar Chart of Genus Counts by Group",
       x = "Group",
       y = "Percentage") +
  scale_y_continuous(labels = scales::percent_format()) +  # 将y轴显示为百分比
  theme(
    plot.margin = margin(t = 40, r = 20, b = 15, l = 20), # 增加底部空间
    axis.line = element_line(color = "black"), # 加深轴线颜色
    axis.ticks = element_line(color = "black"), # 加深刻度线颜色
    axis.title = element_text(color = "black"), # 加深轴标题颜色
    axis.text = element_text(color = "black"), # 加深轴文本颜色
    plot.title = element_text(hjust = 0.5, vjust = 1.5) # 标题居中并距离图表有一定距离
  ) +
  geom_text(data = max_percentage, aes(x = Group, y = 1, label = paste0(round(MaxPercentage, 1), "%")), 
            vjust = -0.5, color = "black", size = 4, inherit.aes = FALSE)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值