如何在R语言图例中为pch符号设置与线条不同的颜色
R基础绘图图例自定义pch颜色的实现方法
R基础绘图的legend()函数默认没有单独设置点符号(pch)颜色的参数,可通过以下两种底层方法实现需求:
方法1:两次调用legend分层绘制
第一次调用绘制彩色线段和文字,第二次调用在相同位置仅绘制黑色点,关闭第二次调用的图例边框和线段显示,避免覆盖原有内容:
plot(1:5) lines(1:5,1:5,col="blue") # 第一次绘制:蓝色线段+文字,不显示点 legend("topleft","line w. points",lty=1,pch=NA,col="blue") # 第二次绘制:黑色点,不显示线段、边框,用相同文本保证位置对齐 legend("topleft","line w. points",lty=NA,pch=1,col="black",bty="n")
方法2:获取图例坐标手动覆盖点
先通过plot=FALSE参数预计算图例的所有元素坐标,绘制完默认图例后,在对应点的位置手动绘制黑色点覆盖原有颜色,适配性更强:
plot(1:5) lines(1:5,1:5,col="blue") # 预计算图例坐标,不实际绘制 leg_info <- legend("topleft","line w. points",lty=1,pch=1,col="blue",plot=FALSE) # 绘制默认图例 legend("topleft","line w. points",lty=1,pch=1,col="blue") # 在点的对应坐标绘制黑色点覆盖,偏移量可根据实际显示调整 points(leg_info$text$x[1] - strwidth(" "), leg_info$text$y[1], pch=1, col="black")
内容的提问来源于stack exchange,提问作者Stephen
相关产品推荐
相关产品推荐

