在R ggplot2中使用scale_x_discrete

17

我在使用R中的ggplot2离散比例尺时遇到了问题。

g + scale_x_discrete(breaks=1:7, labels=1:7)

图表限制错误更改。

之前:

before

之后: 输入图像描述

我无法看出我用来生成图像的代码有任何可疑之处,但是这是它:

g <- ggplot(data=plottingData, aes(x=x, y=y, ymin=ymin, ymax=ymax)) +
geom_bar(stat="identity", fill=col) +
geom_errorbar(width=0.5*binwidth, size=0.3)

3
你能再上传一次 dput 吗?我一直在收到错误消息。看起来你已经获得了 ggplot 对象的 dput。你能上传你数据的 dput 吗? - jazzurro
@jazzurro:是的,这是ggplot2对象 - 我认为这比同时提供包含一些无关内容的plottingData、col和binwidth更容易处理。下面shadow的答案解决了我的问题。 - Rob Hall
我删除了dput(),因为它无法使用。 - moodymudskipper
2个回答

26

当您添加g + scale_x_discrete()时,很可能已经发生了这种情况。这种情况发生在使用离散比例尺来处理连续数据时。如果没有断点,您就会看到错误的限制并进行更改。

g + scale_x_discrete()
g + scale_x_discrete(limits=1:7)
g + scale_x_discrete(limits=1:7, labels = letters[1:7])

或者,您可以使用factor从开头获取适当的限制。当然,您需要重命名轴。

ggplot(data=plottingData, aes(x=factor(x), y=y, ymin=ymin, ymax=ymax)) +
  geom_bar(stat="identity", fill=col) +
  geom_errorbar(width=0.5*binwidth, size=0.3) +
  scale_x_discrete(name = 'x')

5
p1 + scale_x_continuous(breaks = c(2, 4, 6))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接