geom_bar重命名x轴标签

时间:2018-02-21 16:02:47

标签: r ggplot2 geom-bar

我搜索了很长一段时间但找不到确定的答案,虽然这是一个非常基本的问题。

我使用geom_bar(ggplot2)来可视化我的数据。从输入数据帧直接推断出x轴组的名称。但是,我想更改名称而不更改相应的dataframe列。我想这样做是因为我想对名称进行一些基本的文本编辑(使用文本下标)。

我尝试了scale_x_discrete,但没有成功。不知何故,我无法指定限制并同时显示数据。

在下面我有一个最小的例子。让我们说我想在不触及实际数据帧的情况下将字母A-E更改为B-F。

Master = data.frame(x = rep(LETTERS[1:5], 3), y = runif(15, 0, 1), fac = c(rep(1,5), rep(2,5), rep(3,5)))
Master[,3] = as.factor(Master[,3])

## plotting
p = ggplot(Master, aes(fill=fac, y=y, x=x)) + 
  geom_bar(position="dodge", stat="identity") +
  scale_y_continuous(breaks = c(0,0.2,0.4,0.6,0.8,1), labels = c(0,0.2,0.4,0.6,0.8,1), limits = c(0,1)) + 
  labs(title="", x="", y="") +
  theme_light() +
  theme(axis.title.y = element_text(size = rel(2), angle = 90)) +
  theme(axis.title.x = element_text(size = rel(2), angle = 0)) +
  theme(axis.text.x = element_text(color="black", size=16, angle=0)) +
  theme(axis.text.y = element_text(color="black", size=16, angle=0)) +
  scale_fill_manual(values=c("coral", "#C77CFF", "red", "cyan", "orange", "darkgrey"), 
                    name="fac",
                    breaks=seq(1,6,1),
                    labels=seq(1,6,1)) + 
  theme(legend.title = element_text(colour="black", size=18, face="bold")) + 
  theme(legend.text = element_text(colour="black", size = 16)) +
  theme(legend.key.size=unit(0.8,"cm")) 
print(p)

0 个答案:

没有答案