根据轴的值更换轴标签

时间:2015-07-07 10:39:54

标签: r ggplot2 axis-labels

我正在使用ggplot绘制分组条形图。我想用独特的文本替换分组值,具体取决于它们的值。

但是我收到以下警告,格式化不能正常工作。什么可以修复有条件地替换地块中的标签?

  

1:if if(x ==“55”)lab =“High”否则if(x ==“15”)lab =“Low”:     条件的长度> 1,只使用第一个元素

LabelFormatter <- function (x) {
if (x == "55")
  lab = "High"
else if (x == "15")
  lab = "Low"
}

dF <- data.frame(name=rep(c("A","B","C"),2), value=sample(1:100,6), type=rep(c("15","55"),3))
p <- ggplot (dF, aes(x=type, y=value, fill=name)) + geom_bar(stat="identity", position="dodge")
p <- p + scale_x_discrete(label=LabelFormatter)
print(p)

2 个答案:

答案 0 :(得分:1)

你可以试试这个

 p+scale_x_discrete(label= c("15"="low", "55"="high"))

答案 1 :(得分:1)

Mamoun是一个非常干净的解决方案,应该被接受为这个简单案例的答案。正如Roland所说,你需要对你的格式化程序进行矢量化。这是一种方式,但不建议超过2 ifelse

LabelFormatter <- function (x) {
  ifelse(x=="55", "High", 
         ifelse(x=="15", "Low", x))
}