使用基数R自定义颜色键上的标签

问题描述

考虑此图,该图显示了从0.0420.241范围内的值:

library(sf)
demo(nc,ask=FALSE,echo=FALSE)
brks <- seq(0,0.2,by=0.05)
plot(nc["AREA"],key.pos=1,breaks=brks,at=brks)

enter image description here

但是,假设我需要自定义颜色键标签。我想在其中添加一个“段”,以包含大于0.2的值。

例如:

brks2 <- c(seq(0,by=0.05),1)
plot(nc["AREA"],breaks = brks2,at=brks2)

enter image description here

但是颜色键(而不是从0.2拉伸到1)应该只具有一个带有标签>0.2或类似标签的段。

我该怎么做?

解决方法

我们可以在中断处添加.25,但是我没有在sf:::plot.sf中找到创建自定义标签的选项,因此最后一个标签为0.25。也许您可以设置at=2(在窗口外部打印标签)并使用axis构建自定义mtext和标签,但这变得非常麻烦和不准确。

因此,最好使用nbreaks=。您也可以尝试使用breaks=,其中"pretty"是默认选项,其他选项是"fixed","sd","equal","pretty","quantile","kmeans","hclust","bclust","fisher","jenks","dpih","headtails",请参见?sf:::plot.sf

sf:::plot.sf(nc["AREA"],key.pos=1,breaks="pretty",nbreaks=5)

enter image description here

我认为address the author提出功能请求是合理的,否则也许其他人可以入侵sf:::plot.sf