如何使用ggplot2在特定位置的热图上添加新的y轴标签

时间:2016-02-24 11:27:24

标签: r ggplot2 label

我正在尝试使用ggplot2在热图上添加新标签。 我成功地使用

删除了y轴标签
theme(axis.title.y=element_blank(),axis.text.y=element_blank(),axis.line=element_blank(),
axis.ticks.y=element_blank(),axis.title.x=element_blank())

我尝试输入axis命令在热图上添加新标签。

 axis(4,at=c(2,3,7,9,10), labels=c(a,b,c,d,e))

但是,它显示错误消息。

Error in axis(2, labels = c(1:22, "X", "Y"), at = c(1:24)) : 
  plot.new has not been called yet

如何更换旧标签并在y轴的特定位置制作新标签? 我希望在y轴上显示分类信息。

这是我的原始代码

data <- data.frame(x=1:10, y=rnorm(10))
p <- ggplot(data, aes(x,y))
p + geom_point(aes(size=y)) + theme(axis.title.y=element_blank(),
axis.text.y=element_blank(),axis.line=element_blank(),
axis.ticks.y=element_blank(),axis.title.x=element_blank())

axis(4,at=1:10, labels=letters[1:10])

我想做的是类似于下图。

enter image description here

1 个答案:

答案 0 :(得分:1)

使用scale_x_continuous中的ggplot2axis函数旨在与基本图形的plot函数一起使用。做你想做的ggplot方式如下:

数据&lt; - data.frame(x = 1:10,y = rnorm(10))

#Make y axis breaks
ybrks <- seq(from=min(data$y), to=max(data$y), length.out=10)

#Make y axis labels
ylabs <- letters[1:10]

p <- ggplot(data, aes(x,y)) + geom_point(aes(size=y)) + 
     theme(axis.title.y=element_blank(),
           axis.title.x=element_blank()) +
    scale_y_continuous(breaks=ybrks, labels=ylabs)
p

请务必核对?scale_y_continous