R 自定义图例(text、label、colour)

本文介绍如何使用两种不同的方法来定制图例的标签和颜色。通过使用scale_colour_hue和scale_colour_manual函数,可以灵活地调整离散变量的颜色方案并自定义图例的显示方式。

一般而言通用的解决方案

图例标题

labs(x="miles per gallon", y="displacement",col="图例标题名")

图例label,颜色

一般会用到这两个函数:

#1(作用于discrete变量)
> scale_colour_hue
#2
> scale_colour_manual

#选择方法是:若只想改变label,则选择第一个,
#因为第二个必须自定义颜色
#1
>p+scale_colour_hue("What does\nit eat?",breaks = c("herbi", "carni", "omni", NA),labels = c("plants", "meat", "both", "don’t know"))
#2
>p1+scale_colour_manual(labels=c("plants","meat","both","don't know"),values=c("carni"="green","herbi"="red","insecti"="yellow","omni"="black"))
#注意,values最好写成命名型的vector
setwd("/Volumes/芦苇常用/DPN学习/1.差异分析/第四版差异分析") A <- KEGG library(ggplot2) library(forcats) library(ggsci) library(dplyr) # 数据处理 A$Description <- as.factor(A$Description) A$Description <- fct_inorder(A$Description) # 分组排序 A_sorted <- A %>% group_by(Group) %>% arrange(desc(Count), .by_group = TRUE) %>% ungroup() %>% mutate(Description = factor(Description, levels = unique(Description))) # 创建包含组别和计数的标签列 A_sorted <- A_sorted %>% mutate(Group_Label = paste0(Group, " (", Count, ")")) # 计算标签上移距离 nudge_value <- 0.08 * max(A_sorted$Count) # 绘图(修改坐标轴方向) p <- ggplot(A_sorted, aes(x = Description, y = Count)) + # ★修改点1:调整坐标轴方向 geom_bar(aes(fill = Group), stat = "identity", # ★修改点2:使用Group分组 position = position_dodge(width = 0.75), width = 0.7) + geom_text(aes(label = Count, group = Group), position = position_dodge(width = 0.75), nudge_y = nudge_value, vjust = -0.5, size = 3.5, # ★修改点3:竖直方向偏移 color = "black", fontface = "bold") + labs(x = 'KEGG Pathway', y = 'Gene Count') + # ★修改点4:坐标轴标签 scale_fill_npg(name = "Group Comparison", # ★修改点5:图例标签 labels = c("DM VS CN", "DPN VS CN", "DPN VS DM")) + # 自定义组别名称 scale_y_continuous(expansion(mult = c(0, 0.15))) + theme_bw() + theme(panel.grid = element_blank(), panel.border = element_blank(), axis.line = element_line(color = "black"), axis.line.x.top = element_blank(), axis.line.y.right = element_blank(), legend.position = 'right', axis.ticks.x = element_blank(), axis.text.x = element_text(size = 12, colour = "black", angle = 45, hjust = 1, # 旋转文本防止重叠 margin = margin(t = 15, b = 9)), axis.text.y = element_text(size = 12), axis.title = element_text(size = 15), legend.title = element_text(size = 13), legend.text = element_text(size = 12), plot.margin = unit(c(2, 1, 1, 1), "cm")) + guides(fill = guide_legend(reverse = TRUE)) # ★修改点6:反转图例顺序便于阅读 # 保存 ggsave('KEGG_plot.svg', plot = p, width = 16, height = 10, units = "in") # 调整尺寸比例修改这个代码,图例再加一个Count,三个组三个渐变色,其他的不要动
最新发布
10-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值