首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带断点的ggplot2热图离散图例

带断点的ggplot2热图离散图例
EN

Stack Overflow用户
提问于 2015-01-30 22:59:06
回答 1查看 1K关注 0票数 2

我正在使用ggplot2生成一个热图。图例的注释包含间隔,但是我希望使用-100、-10、-5、0、5、10、100这样的断点来标记间隔之间的断点。是否可以操作图例标签和图例标签位置?

代码语言:javascript
复制
daf <- data.frame(row=(rep(paste(LETTERS[1:5],1:50,sep=""),2)),col=c(rep("A",50),rep("B",50)),val=runif(100,-20,20))

intervals <- c(100,10,5,0,-5,-10,-100)
binned <- cut(daf$val,breaks=intervals)
colfunc <- colorRampPalette(c("yellow", "black", "steelblue"))
colgroups <- colfunc(length(levels(binned)))
res <- colgroups[as.integer(binned)]
res <- factor(res,levels=colgroups)


p <- ggplot(daf,aes(x=col, y=row,fill=res)) + 
  geom_tile(color="white") +
  scale_fill_manual(values=levels(res),labels=levels(binned))

EN

回答 1

Stack Overflow用户

发布于 2018-09-12 23:39:51

您可以使用labels.vjust操作图例标注

代码语言:javascript
复制
build_labels <- function(breaks) {
    labels <- gsub('\\([^,]*,(-?\\d+).*', '\\1', levels(binned))
    c(head(labels, -1), '')
}

ggplot(daf,aes(x=col, y=row,fill=res)) + 
    geom_tile(color="white") +
    scale_fill_manual(values=levels(res),labels=build_labels) +
    guides(fill = guide_legend(label.vjust = -0.25))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28238593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档