Настройка меток оси У меня есть простой график geom_point, в котором переменная x является порядковой, принимая 5 значений (кодированных 1: 5). В сюжете я хотел бы заменить его на 5 соответствующих текстовых меток. Возможно ли это сделать в ggplot? Ответ 1 Вы можете сделать это с помощью scale_x_discrete. library(ggplot2) df <- data.frame(x = 1:5, y = sample(1:10, 5, TRUE)) qplot(factor(x),y, data = df) + scale_x_discrete(breaks = 1:5, labels=c("foo","bar","baz","phi","fum")) + xlab(NULL) Ответ 2 scale_x_discrete должен сделать это: x <- sample(1:5, 20, T) y <- rnorm(20) + x df <- data.frame(x = ordered(x), y = y) ggplot(df,aes(x,y)) + geom_point() + scale_x_discrete(breaks = 1:5, labels = letters[1:5]) Ответ 3 Вот воспроизводимый пример, который, я думаю, инкапсулирует ваш Q (?): require(ggplot2) dat <- data.frame(X = sample(1:5, 100, replace = TRUE), Y = rnorm(100)) Непонятно, какие данные у вас есть, но если вы имеете в виду что-то вроде этого: (p1 <- ggplot(dat, aes(x = X, y = Y)) + geom_point()) Тогда я думаю, что вам нужен стриптиз, который может быть достигнут в ggplot через фактор dat2 <- within(dat, X <- factor(X, labels = letters[1:5])) (p2 <- ggplot(dat2, aes(x = X, y = Y)) + geom_point()) Если это не то, что вы имеете в виду, можете ли вы изменить свой Q, чтобы предоставить пример?
Ответ 1 Вы можете сделать это с помощью scale_x_discrete. library(ggplot2) df <- data.frame(x = 1:5, y = sample(1:10, 5, TRUE)) qplot(factor(x),y, data = df) + scale_x_discrete(breaks = 1:5, labels=c("foo","bar","baz","phi","fum")) + xlab(NULL)
Ответ 2 scale_x_discrete должен сделать это: x <- sample(1:5, 20, T) y <- rnorm(20) + x df <- data.frame(x = ordered(x), y = y) ggplot(df,aes(x,y)) + geom_point() + scale_x_discrete(breaks = 1:5, labels = letters[1:5])
Ответ 3 Вот воспроизводимый пример, который, я думаю, инкапсулирует ваш Q (?): require(ggplot2) dat <- data.frame(X = sample(1:5, 100, replace = TRUE), Y = rnorm(100)) Непонятно, какие данные у вас есть, но если вы имеете в виду что-то вроде этого: (p1 <- ggplot(dat, aes(x = X, y = Y)) + geom_point()) Тогда я думаю, что вам нужен стриптиз, который может быть достигнут в ggplot через фактор dat2 <- within(dat, X <- factor(X, labels = letters[1:5])) (p2 <- ggplot(dat2, aes(x = X, y = Y)) + geom_point()) Если это не то, что вы имеете в виду, можете ли вы изменить свой Q, чтобы предоставить пример?