我正在绘制一个geom_tile
图,其中每个点都有一个特定的p-value
。
图表的绘制方式很好,图例上的p-value
限制。
我想要添加到此图例的是具有此p-value
的数据点的数量。
示例:
传说就像那样(每个值都有一个颜色):
0.05
0.04
0.03
0.02
0.01
我想拥有的是这样的:
0.05 58
0.04 34
0.03 85
0.02 54
0.01 10
如何将其添加到ggplot2
图的图例中?
我尝试使用geom_text并将文本位置更改为图例,但它没有用。
的更新 的
pl <- ggplot(df.new) + geom_tile(aes(fill=z, x, y)) +
scale_fill_gradient(low="yellow", high="red", name="Legend1") +
stat_contour(breaks=c(0.001, 0.01, 0.05), aes(x=x, y=y, z=npvalue, colour=..level..)) +
scale_colour_gradient2(low="black", mid="black", high="green", labels=paste(levels(c(0.001, 0.01, 0.05))))
我有这个情节,我正在从geom_tile
变量正确绘制z
,然后基于p值绘制stat_contour
。我想编辑stat_contour
颜色的标签,这些颜色基于我在初始问题中的p-value
,但我遇到了这个错误:
Error in scale_labels.continuous(scale, breaks) :
Breaks and labels are different lengths
我的阴谋中的问题在哪里?
答案 0 :(得分:6)
您可以为labels
颜色指定图例的fill
。
示例数据集:
set.seed(1)
dat <- data.frame(x = rep(1:5), y = rep(1:10),
z = factor(sample(seq(0.01, 0.05, 0.01), 100, TRUE)))
函数table
计算dat$z
的不同值:
table(dat$z)
# 0.01 0.02 0.03 0.04 0.05
# 13 25 19 26 17
情节:
library(ggplot2)
ggplot(dat) +
geom_tile(aes(x = x, y = y, fill = z)) +
scale_fill_discrete(labels = paste(levels(dat$z), table(dat$z)))
在最后一行中,创建了图例的labels
。