自定义轴标签

时间:2011-02-23 20:14:45

标签: r ggplot2

我有一个简单的geom_point图,其中x变量是序数,取5个值(编码为1:5)。

在图中我想用5个相应的文本标签替换它。是否可以在ggplot中完成?

3 个答案:

答案 0 :(得分:47)

您应该可以使用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)

答案 1 :(得分:12)

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])

答案 2 :(得分: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以提供示例吗?