【问题标题】:How to fill a single 'pch' point on the plot with two-colours?如何用两种颜色填充情节上的单个“pch”点?
【发布时间】:2012-01-02 00:50:46
【问题描述】:

如果你拿下面的代码,你怎么能改变第三个菱形的填充,所以它会是半黑半白?该解决方案应适用于任何颜色。

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

【问题讨论】:

  • 有趣的问题,新的想法......

标签: r plot pch


【解决方案1】:

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

 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)

【讨论】:

  • 不错的发现!那个半圆函数会派上用场的。
【解决方案2】:

pch 字符是实际的字体符号,因此您将受限于您的字体中可用的内容。另一种选择是使用原始绘图命令来制作您自己的“符号”。这是非常灵活的,尽管在混合这两种方法时可能会出现调整大小等问题。这个方法在漂亮的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)

另请参阅此问答:Point symbols in R

【讨论】:

  • 完美,谢谢@John。但是,我可以看到它在多边形上的表现非常好,但是你将如何处理半色填充的圆点?
  • @GeekOnAcid 呵呵...好点。我想你可以把它伪装成一个多边形,但如果有办法只用 3 个锚点就可以了。不过我不知道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多