如何用两种颜色填充图上的单个“pch”点?

时间:2011-11-19 18:35:02

标签: r plot pch

如果您使用下面的代码,如何更改第三颗钻石的填充物,那么它将是半黑色,半白色?该解决方案应适用于任何颜色。

data <- c(1,2,3)
plot(data, pch=c(23,18,23), cex=c(2.5,3,2.5))

2 个答案:

答案 0 :(得分:11)

pch个字符是实际的字体符号,因此您将受限于字体中可用的字符。另一种方法是使用原始绘图命令来制作自己的“符号”。这是非常灵活的,尽管在混合两种方法时可能存在调整大小等问题。此方法在nice my.symbols()示例中实现:

require(TeachingDemos)

bwDiamond <- function() {
    plot.new()
    polygon(c(0, 0.5, 1, 0.5, 0), c(0.5, 0, 0.5, 1, 0.5), lty=1)
    polygon(c(0.25, 0.5, 1, 0.75, 0.25), c(0.25, 0, 0.5, 0.75, 0.25), col=1)
}

data <- c(1,2,3)

dev.new(width=4, height=4)
plot(data, type='n')
points(data[1:2], pch=c(23,18), cex=c(2.5,3))
my.symbols(data[3], data[3], symb=bwDiamond, symb.plots=TRUE, inches=0.22)

enter image description here

另见此问答:Point symbols in R

答案 1 :(得分:1)

@JohnColby:好的,这是一种使用grid.semicircle包中的lodplot绘制半色圆点的方法。它不是像你的多边形那样整洁的解决方案,但它完成了工作:

 require(lodplot)
 dev.new(width=4,height=4)
 plot(1:3,type="n")
 grid.semicircle(100,150,10,5)#left circle on plot below
 grid.semicircle(100,150,10,5,side=3,col=1)
 grid.semicircle(200,150,10,5,side=2)#right circle on plot below
 grid.semicircle(200,150,10,5,side=4,col=1)

Half-circles plot example