gpt4 book ai didi

r - 给指定区域涂色?

转载 作者:行者123 更新时间:2023-12-02 03:34:20 24 4
gpt4 key购买 nike

我试图弄清楚是否有一种方法可以只为我使用 grid.circle 创建的圆的一半着色。

    library(grid)
grid.circle(x=.5, y=.5, r=.25,gp=gpar(lwd=10))

我想让上半部分为蓝色,下半部分为白色。

感谢您的帮助!

最佳答案

使用grid.polygon()和一些基本的三角学,您可以定义一个函数来执行此操作

需要小心谨慎,以便在视口(viewport)非方形时填充的半圆不会变形。为了以符合 grid.circle() 使用的规则的方式实现此目的,我将原点设置为 "npc" 单位,并将圆半径设置为 “snpc”单位。 (有关 "npc""snpc" 含义的更多信息,请参阅 ?unitvignette("grid")):

library(grid)

filledSemiCircle <- function(x_origin, y_origin, radius, fillcolor, top=TRUE) {
theta <- seq(0, pi, length = 100)
if(!top) theta <- theta + pi ## To fill the bottom instead
x <- unit(x_origin, "npc") + unit(cos(theta) * radius, "snpc")
y <- unit(y_origin, "npc") + unit(sin(theta) * radius, "snpc")
grid.polygon(x, y, gp = gpar(fill = fillcolor))
}

filledSemiCircle(0.5, 0.5, 0.25, "dodgerblue")
filledSemiCircle(0.5, 0.5, 0.25, "gold", top=FALSE)
grid.circle(x = .5, y=.5, r=.25,gp=gpar(lwd=10))

enter image description here

关于r - 给指定区域涂色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com