我正在尝试使用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
答案 0 :(得分:8)
我们没有您的melt.m
数据,因此您提供的代码无法重现。例如,使用diamonds
附带的ggplot2
数据集作为示例:
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.width
和legend.text
。我使用夸张的尺寸使其更加明显。
有关可用选项的更多详细信息,请参阅https://github.com/hadley/ggplot2/wiki/+opts%28%29-List
答案 1 :(得分: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)