使用ggmap绘图后结合gghighlight报错,能否实现二者兼容?
解决gghighlight与ggmap配合使用的报错问题
可以将gghighlight与ggmap配合使用,你遇到的报错是因为gghighlight的参数用法错误——你误将aes()和data=chkpts当成了筛选条件参数传入,而gghighlight的第一个参数仅接受筛选逻辑,不需要重复传递已在原图层中定义的数据和映射。
错误原因分析
你的调用代码中:
my_plot + gghighlight(class > 3, aes(x = lon, y = lat, colour = class), data = chkpts)
aes(...)和data=chkpts被当作了额外的筛选条件传入,触发了check_bad_predicates()检查错误,因为这些不是合法的筛选逻辑。
正确用法
因为my_plot已经包含了geom_point层的数据和映射信息,gghighlight可以直接识别,只需要传入筛选条件即可:
基础高亮写法
library(gghighlight) my_plot + gghighlight(class > 3)
优化高亮效果(自定义未高亮元素样式)
如果需要更清晰的高亮对比,可以指定未高亮元素的颜色:
my_plot + gghighlight(class > 3, unhighlighted_colour = alpha("grey", 0.2))
运行上述代码后,class值大于3的点会被高亮保留,其他点会按设置的样式显示,同时正常显示ggmap的底图,实现两者的配合使用。
内容的提问来源于stack exchange,提问作者luciano
相关产品推荐
相关产品推荐

