问题描述
考虑此图,该图显示了从0.042
到0.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)
但是,假设我需要自定义颜色键标签。我想在其中添加一个“段”,以包含大于0.2的值。
例如:
brks2 <- c(seq(0,by=0.05),1)
plot(nc["AREA"],breaks = brks2,at=brks2)
但是颜色键(而不是从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)
我认为address the author提出功能请求是合理的,否则也许其他人可以入侵sf:::plot.sf
。