Я создаю график и пытаюсь понять, как подавить только одну метку (не метку, а только метку).
Вот пример кода:
x1 <- seq(0, 100, by = 1)
y1 <- runif (n = 100, min = 1, max = 10)
library(rando)
labe <- r_Letters(nchar = 1, n = 100)
test_dat <- as.data.frame(cbind(x1, y1, labe))
test_dat$x1 <- as.numeric(test_dat$x1)
test_dat$y1 <- as.numeric(test_dat$y1)
library(ggplot2)
library(ggrepel)
g <- ggplot(data = test_dat, aes(x = x1, y = y1))
g <- g + geom_line()
g <- g + geom_point()
g <- g + expand_limits(x = c(-10, 110), y = c(0, 10))
g <- g + scale_x_continuous(breaks = scales::pretty_breaks(n = 25))
g <- g + scale_y_continuous(breaks = scales::pretty_breaks(n = 5))
g <- g + geom_label_repel(data = test_dat, aes(x = x1, y = y1, label = labe),
size = 2.0, color = "blue", box.padding = unit(0.5, "lines"),
point.padding = unit(0, "lines"))
g
В моем реальном наборе данных, когда я использую geom_label_repel для маркировки своих точек (подмножество моих реальных данных; в моем примере я поленился), мне нужно было расширить диапазон графика (следовательно,expand_limits). Все отметки находятся там, где мне хотелось бы, но крайняя левая (-15 в моем примере) нефизична, и я хотел бы удалить только ее.
Я могу придумать, как подавить все галочки и все метки, но это не то, что мне нужно — я хочу оставить галочки такими, какие они есть, а просто удалить метку с самого дальнего левого.
Есть мысли?
Меня раньше били за такие вещи. Это область, в которой данные могут показаться нефизическими (отрицательные значения массы), и я хотел замять этот вопрос, прежде чем кто-нибудь что-нибудь скажет.
Одним из подходов может быть ручная настройка меток разрыва с использованием формулы, которая выводит пробел на метке -15, но в противном случае оставляет ее в покое.
g <- g + scale_x_continuous(breaks = scales::pretty_breaks(n = 25),
labels = ~if_else(.x == -15, "", as.character(.x)))
Почему вы вообще установили expand_limits
, если не хотите, чтобы этот регион отображался? Мой подход, по крайней мере, если вы хотите подавить метку только на одном или другом конце домена, заключался бы в том, чтобы вообще не отображать эту область.
Далее, я подозреваю, что Эд. Тафти бы сердито нахмурился, если бы вы захотели скрыть метку в середине области (или диапазона) графика.
В исходных данных я пометил точки (как и здесь), но с этими данными мне нужно было немного дополнительного места, чтобы они не были отрезаны. Так что этот регион не имеет никакого значения — он просто нужен для того, чтобы обеспечить пространство. Никаких реальных данных в этой части графика нет (было бы ужасно, если бы это было!).
ИМХО, нет ничего плохого в том, чтобы оставить галочку и метку в регионе, где данные отсутствуют или невозможны. Возможно, вы слишком много об этом думаете.