热力图 ggplot2 颜色渐变 (scale_fill_gradient)

3

我正在尝试使用ggplot2绘制热力图,并希望调整色条的大小并增加字体大小。

下面是相关代码:

g <- ggplot(data=melt.m)
g2 <- g+geom_rect(aes(xmin=colInd-1, xmax=colInd, 
  ymin=rowInd-1, ymax=rowInd, fill=value))

g2 <- g2+scale_x_continuous('beta', breaks=c(1, ceiling(cols/2), rows)-0.5, 
  labels=c(1,ceiling(cols/2), rows))
g2 <- g2+scale_y_continuous('alpha', breaks=c(1, ceiling(rows/2), rows)-0.5, 
  labels=c(1, ceiling(rows/2), rows))

g2 <- g2+opts(panel.grid.minor=theme_line(colour=NA),
  panel.grid.major=theme_line(colour=NA),
  panel.background=theme_rect(fill=NA, colour=NA), 
  axis.text.x=theme_text(size=30),
  axis.text.y=theme_text(size=30, angle=90), 
  axis.title.x=theme_text(size=30),
  axis.title.y=theme_text(size=30, angle=90), title = title)

heatscale <- c(low='ghostwhite', high='steelblue')

g2 <- g2+scale_fill_gradient("", heatscale[1], heatscale[2], bias = 10)

它的功能很好,问题在于右侧的颜色图例太小了。有没有办法使颜色图例变大,并增加图例字体大小?

谢谢,

kz

2个回答

9
我们没有您的数据,所以您提供的代码无法再现。但是,我们可以使用附带的数据集作为例子:
ggplot(diamonds, aes(x=table, y=price)) +
  geom_bin2d() +
  scale_fill_gradient("", 'ghostwhite', 'steelblue', bias=10) +
  opts(legend.key.width=unit(1, "in"),
       legend.text = theme_text(size=30))
legend.key.widthlegend.text是您要查找的内容。我已经使用夸张的尺寸使其更加明显。
有关可用选项的更多详细信息,请参见https://github.com/hadley/ggplot2/wiki/+opts%28%29-List

3
我尝试了这个方法并发现R或ggplot2在过去四年中发生了变化。它产生了以下错误:
Error: 'opts' is deprecated. Use 'theme' instead. (Defunct; last used in version 0.9.1)

我用以下内容使其工作起来:

使用以下内容可以使其工作:

p + theme(legend.text = element_text(size=30),legend.key.size = unit(1, "in"))

最初尝试仅更改文本大小,但必须同时更改关键字大小,否则将无法阅读。此外,unit需要使用library(grid)明确加载库。


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