R语言 如何使用ggplot2将标题放在图中
绘图的标题提供了有关该图的信息,以便读者更容易解释这些变量应该描述什么关系。本文讨论了我们如何在图中放置一个标题,并进一步讨论了标题的各种格式。下面给出的例子是使用条形图。
为了在图中添加标题,使用了ggtitle()函数。
语法
ggtitle(“Title For Plot”)
之后,我们只需设置边距,就可以将这个标题添加到图中。
方法
- 指定 数据 对象。它必须是一个数据框架,并且需要一个数字和一个分类变量。
- 调用 ggplot2() 函数,输入第一个参数 “data”,然后设置美学函数 “ais()”。
- 在 aes() 函数中,为X轴设置分类变量,为Y轴使用数字变量。
- 用ggtitle() 调用 geom_bar()。
- 添加边距
- 显示绘图
例1 :
library(ggplot2)
data <- data.frame(
name=c("A","B","C","D","E") ,
value=c(3,12,5,18,45)
)
ggplot(data, aes(x=name, y=value)) +
geom_bar(stat = "identity", fill = "green")+
ggtitle("Title For Barplot")+
theme(plot.title=element_text(margin=margin(t=40,b=-30)))
输出
使用ggplot2定制绘图的标题
设置多行的标题是一种常见的需要。要在标题中添加断句,只需在文本中写上 ‘ /n’。如果你想加粗或突出某些词,那么只需使用 expression() 函数。本节描述了如何对插入的标题进行相应的格式化。
例1 :
library(ggplot2)
data <- data.frame(
name=c("A","B","C","D","E") ,
value=c(3,12,5,18,45)
)
# For Add Some Several Lines
ggplot(data, aes(x=name, y=value)) +
geom_bar(stat = "identity", fill = "green")+
ggtitle("New Line Title \n For Barplot") +
theme_minimal()
# For Highlight Some Word Or Words
my_title <- expression(paste("This is barplot with ", bold("Bold Title")))
ggplot(data, aes(x=name, y=value)) +
geom_bar(stat = "identity", fill = "green")+
ggtitle(my_title) +
theme(plot.title=element_text(margin=margin(t=40,b=-30)))
输出
现在让我们通过 theme() 函数修改我们的标题外观和位置,参数为 plot.title 。外观可以通过 家族 、 面孔 、 颜色 、 或 大小 来调整。当位置可以用 hjust 和 vjust 来改变。
例2 :
library(ggplot2)
data <- data.frame(
name=c("A","B","C","D","E") ,
value=c(3,12,5,18,45)
)
# Customise Title Appearance
ggplot(data, aes(x=name, y=value)) +
geom_bar(stat = "identity", fill = "green")+
ggtitle("A Green & Bold Title") +
theme_minimal() +
theme(
plot.title=element_text(family='', face='bold', colour='green', size=26, margin=margin(t=40,b=-30))
)
输出
例3 :
library(ggplot2)
data <- data.frame(
name=c("A","B","C","D","E") ,
value=c(3,12,5,18,45)
)
# Change Position of Title
ggplot(data, aes(x=name, y=value)) +
geom_bar(stat = "identity", fill = "green")+
ggtitle("Plot with right sided Title") +
theme_minimal() +
theme(
plot.title=element_text( hjust=1, vjust=0.5, face='bold', margin=margin(t=40,b=-30))
)
输出