沿离散比例调整几何位置

时间:2014-09-23 03:42:21

标签: r ggplot2

我正在尝试将文本注释放在具有构面和离散轴的图上。我可以使用aes()将注释的位置与点相关联,但是我想让它们稍微让步以保持点的可读性。如果微移是数字刻度,这很好:

data <- data.frame(
    category = c("blue", "yellow", "red", "green"),
    rating = 1:4)

gp <- ggplot(data) + geom_point(aes(x = category, y = rating)) +
    geom_text(aes(label = "I have a label!", x = category, y = rating + 0.5))

但如果我尝试在非数字范围内(在本例中为字符),它会失败:

gp <- ggplot(data) + geom_point(aes(x = category, y = rating)) +
    geom_text(aes(label = "I have a label!", x = category + 0.5, y = rating))
gp

Error in unit(x, default.units) : 'x' and 'units' must have length > 0
In addition: Warning messages:
1: In Ops.factor(category, 0.5) : + not meaningful for factors
2: Removed 4 rows containing missing values (geom_text).

我可以使用hjustvjust来移动它们,但由于这些设计用于对齐文本而不是定位文本,因此即使在它们的位置,它们也不会真正移动注释。最大程度的。有没有办法确定离散变量的数字比例图,或者另一种手动调整geom_text位置的方法?

1 个答案:

答案 0 :(得分:3)

您可以使用hjust(或vjust)来定位文本:

ggplot(data) + geom_point(aes(x = category, y = rating)) + 
    geom_text(aes(label = "I have a label!", x = category, y = rating), hjust=-.1)