我对R ggplot2有疑问。
我收到此错误:
Error in scale_labels.continuous(scale, breaks) :
Breaks and labels are different lengths
即使我确定断裂和标签的长度相同。
无论如何调试图(即检查绘图变量是否有断点和标签以检查错误在哪里)
使用的代码是:
dataf$pval.d <- cut(dataf$pvalue, breaks=c(min(dataf$X),0.05,Inf),
labels=c("min","0.05"), right = FALSE)
pl <-ggplot(dataf) +
geom_tile(aes(fill=C,A,B)) +
stat_contour(breaks = c(min(dataf$X),0.05),
aes(x=A,y=B,z=pvalue,colour = ..level..)) +
scale_colour_gradient2(low="black",mid="black",high="green",
labels=paste(levels(dataf$pval.d),table(dataf$pval.d)),
name="\n P-value \n")
数据框dataf
的样本是这样的:
A B C pval
1 8 4 0.6714801 0.3138729
2 9 9 0.6373763 0.1402027
3 5 6 0.6695279 0.3426810
4 10 7 0.6338043 0.1722161
5 2 3 0.6692842 0.3301052
6 1 1 0.6728664 0.5777641
7 6 2 0.6608868 0.2637952
8 3 10 0.6721009 0.6584530
9 7 8 0.6338043 0.7839811
10 4 5 0.6728818 0.5045481
输出:
> paste(levels(dataf$pval.d),table(dataf$pval.d))
[1] "min 0" "0.05 10"
正如你所看到的,标签和中断的长度相同,但也许我犯了一些错误但我不知道的事情?