如何使用 hjust 并仅移动 ggplot2 中的元素


您可以使用hjustvjust参数分别在 ggplot2 中水平和垂直移动元素。

以下示例展示了如何在不同场景下使用hjustvjust

示例 1:在 ggplot2 中移动标题位置

以下代码显示了如何在 ggplot2 中创建标题位于默认位置(左对齐)的散点图:

 library (ggplot2)

#create scatter plot with title in default position
ggplot(data=mtcars, aes(x=mpg, y=wt)) +
  geom_point() +
  ggtitle(" Plot Title ") 

以下代码显示了如何使用hjust=0.5将标题居中:

 library (ggplot2)

#create scatter plot with title center-aligned
ggplot(data=mtcars, aes(x=mpg, y=wt)) +
  geom_point() +
  ggtitle(" Plot Title ") +
  theme(plot. title = element_text(hjust= .5 )) 

注意:您还可以使用hjust=1使标题右对齐。

示例 2:在 ggplot2 中移动轴标签位置

以下代码展示了如何在 ggplot2 中创建条形图,其中 x 轴标签旋转 90 度以使其更易于阅读:

 library (ggplot2)

#create data frame
df = data. frame (team=c('The Amazing Amazon Anteaters',
                       'The Rowdy Racing Raccoons',
                       'The Crazy Camping Cobras'),
                dots=c(14, 22, 11))

#create bar plot to visualize points scored by each team
ggplot(data=df, aes(x=team, y=points)) +
  geom_bar(stat=' identity ') +
  theme(axis. text . x = element_text(angle= 90 )) 

我们可以使用hjustvjust参数来调整 x 轴标签,以便它们与 x 轴刻度线更紧密地对齐:

 library (ggplot2)

#create data frame
df = data. frame (team=c('The Amazing Amazon Anteaters',
                       'The Rowdy Racing Raccoons',
                       'The Crazy Camping Cobras'),
                dots=c(14, 22, 11))

#create bar plot to visualize points scored by each team
ggplot(data=df, aes(x=team, y=points)) +
  geom_bar(stat=' identity ') +
  theme(axis. text . x = element_text(angle= 90 , vjust= .5 , hjust= 1 ) 

示例 3:在 ggplot2 中移动文本位置

以下代码展示了如何在 ggplot2 中创建散点图,并为图中的每个点添加注释文本:

 library (ggplot2)

#create data frame
df <- data. frame (player=c('Brad', 'Ty', 'Spencer', 'Luke', 'Max'),
                 dots=c(17, 5, 12, 20, 22),
                 assists=c(4, 3, 7, 7, 5))

#create scatter plot with annotated labels
ggplot(df) +
  geom_point(aes(x=points, y=assists)) + 
  geom_text(aes(x=points, y=assists, label=player)) 

我们可以使用vjust参数垂直移动文本元素,以便它们更易于阅读:

 library (ggplot2)

#create data frame
df <- data. frame (player=c('Brad', 'Ty', 'Spencer', 'Luke', 'Max'),
                 dots=c(17, 5, 12, 20, 22),
                 assists=c(4, 3, 7, 7, 5))

#create scatter plot with annotated labels
ggplot(df) +
  geom_point(aes(x=points, y=assists)) + 
  geom_text(aes(x=points, y=assists, label=player), vjust= -.6 ) 

我们还可以使用vjust的正值来垂直向下移动文本元素:

 library (ggplot2)

#create data frame
df <- data. frame (player=c('Brad', 'Ty', 'Spencer', 'Luke', 'Max'),
                 dots=c(17, 5, 12, 20, 22),
                 assists=c(4, 3, 7, 7, 5))

#create scatter plot with annotated labels
ggplot(df) +
  geom_point(aes(x=points, y=assists)) + 
  geom_text(aes(x=points, y=assists, label=player), vjust= 1.2 ) 

带注释的文本现在位于图上每个点的下方。

其他资源

以下教程解释了如何在 ggplot2 中执行其他常见任务:

如何更改ggplot2中的图例标题
如何在ggplot2中旋转轴标签
如何在 R 中修复:找不到函数“ggplot”

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注