gpt4 book ai didi

r - 仪表板 - R 中的(拨号)仪表

转载 作者:行者123 更新时间:2023-12-02 13:40:38 26 4
gpt4 key购买 nike

我想知道是否可以在 R 中做这种仪表板(我的意思是这种图)?

这是我想在 R 中执行的示例(第一个来自 SAS)

编辑:我在 Windows 7(64 位)上工作。

enter image description here

enter image description here

最佳答案

这里是从使用基本图形开始的。让它变得更漂亮是留给读者的。您可以在此处查看实际示例:http://www.math.csi.cuny.edu/gw/ex-dashboard.R .

dashboard <- function(dial=list(
list(color="red",
range=c(10, 40)),
list(color="yellow",
range=c(40, 60)),
list(color="green",
range=c(70, 100))
),
value=from) {


from <- min(unlist(lapply(dial, "[[", i="range")))
to <- max(unlist(lapply(dial, "[[", i="range")))

theta <- seq(-pi/3, pi + pi/3, length=100)
r <- 1

scale <- function(x) {
m <- (pi + pi/3 - (-pi/3))/(from - to)
(pi + pi/3) + m*(x - from)
}

plot.new()
plot.window(xlim=c(-1, 1), ylim=c(sin(-pi/3), 1))

lines(cos(theta), sin(theta))
sapply(dial, function(l) {
d <- scale(l$range)
x <- seq(d[1], d[2], length=100)
lines(cos(x), sin(x), col=l$color, lwd=3)
})

ticks <- pretty(c(from, to), n=5)
ticks_th <- scale(ticks)
r <- 1 - .15
text(r*cos(ticks_th), r*sin(ticks_th), labels=ticks)

sapply(ticks_th, function(th) {
lines(cos(th)*c(1,.95), sin(th)*c(1, .95))
})

r <- 1 - .25
th <- scale(value)
arrows(0, 0, cos(th), sin(th))


}

dashboard( value=60)

关于r - 仪表板 - R 中的(拨号)仪表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12545240/

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