美文网首页
R绘图_ggplot2图形参数之注释[5]

R绘图_ggplot2图形参数之注释[5]

作者: 谢俊飞 | 来源:发表于2020-03-13 19:46 被阅读0次
火狐截图_2020-02-11T08-36-22.554Z.png

ggplot2 texts : Add text annotations to a graph in R software

ggplot2文本:图中添加文本注释

本文介绍如何向使用ggplot2程序包生成的绘图添加文本注释。

geom_text():直接将文本添加到绘图中
geom_label():在文本下方绘制一个矩形,使其更易于阅读。
annotate():用于在绘图上的特定位置添加小文本注释
comment_custom():添加在每个面板中都相同的静态注释

也可以使用R包ggrepel,它是扩展程序,并为ggplot2提供了geom功能,以防止重叠的文本标签彼此分离。

代码运行如下:

rm(list = ls())
# Subset 10 rows
set.seed(1234)
ss <- sample(1:32, 10)
df <- mtcars[ss, ]
head(df)

# Text annotations using geom_text and geom_label
library(ggplot2)
sp <- ggplot(df, aes(x=wt, y=mpg, label = rownames(df))) +
  geom_point()
# Add texts
sp + geom_text()
# Change the size of the texts
sp + geom_text(size = 6)
# Change vertical and horizontal adjustment
sp + geom_text(hjust = 0, vjust = 0)
# Change fontface. Allowed values : 1(normal),
# 2(bold), 3(italic), 4(bold.italic)
sp + geom_text(aes(fontface=2))
sp + geom_text(family = "Times New Roman")
sp + geom_label()

#Change the text color and size by groups
sp2 <- ggplot(mtcars, aes(x=wt, y=mpg, label=rownames(mtcars)))+
  geom_point()
# Color by groups
sp2 + geom_text(aes(color=factor(cyl)))
# Set the size of the text using a continuous variable
sp2 + geom_text(aes(size=wt))
# Define size range
sp2 + geom_text(aes(size=wt)) + scale_size(range=c(3,6))


#Add a text annotation at a particular coordinate
# Solution 1
sp2 + geom_text(x=3, y=30, label="Scatter plot")
# Solution 2
sp2 + annotate(geom="text", x=3, y=30, label="Scatter plot",
               color="red")

# ggrepel: Avoid overlapping of text labels
# Use ggrepel::geom_text_repel
require("ggrepel")
set.seed(42)
sp + geom_text_repel(aes(label = rownames(df)),
                    size = 3.5) 
sp + geom_label_repel(aes(label = rownames(df),
                         fill = factor(cyl)), color = 'white',
                     size = 3.5) +
  theme(legend.position = "bottom")

火山图应用:

# 火山图应用
genes <- read.table(file = "C:/Users/Administrator/Documents/volcano.txt", header = TRUE)
genes$Significant <- ifelse(genes$padj < 0.05, "FDR < 0.05", "Not Sig")

ggplot(genes, aes(x = log2FoldChange, y = -log10(pvalue))) +
  geom_point(aes(color = Significant)) +
  scale_color_manual(values = c("red", "grey")) +
  theme(legend.position = "bottom") +
  geom_text_repel(
    data = subset(genes, padj < 0.05),
    aes(label = Gene),
    size = 5,
    box.padding = unit(0.35, "lines"),
    point.padding = unit(0.3, "lines")
  )
Rplot03.png

相关文章

网友评论

      本文标题:R绘图_ggplot2图形参数之注释[5]

      本文链接:https://www.haomeiwen.com/subject/youqjhtx.html