gpt4 book ai didi

r - persp3d 绘图的格式

转载 作者:行者123 更新时间:2023-12-04 01:24:52 24 4
gpt4 key购买 nike

我有以下 3d 情节:

ro

用我的 data我使用以下代码创建了它:

library(rugarch)
library(rgl)
library(fGarch)

fd <- as.data.frame(modelfit, which = 'density')
color <- rgb(85, 141, 85, maxColorValue=255)

x <- seq(-0.2, 0.2, length=100)
y <-c(1:2318)

f <- function(s, t) {
dged(s,mean=fd[t,'Mu'],sd=fd[t,'Sigma'],nu=fd[t,'Shape'])

}

z <- outer(x, y, f)
persp3d(x, y, z, theta=50, phi=25, expand=0.75, col=color,
ticktype="detailed", xlab="", ylab="time", zlab="",axes=TRUE)

如何根据 z 值获得着色?我查看了不同的解决方案,例如此 one ,但在这种情况下,我无法根据 z 值创建着色。
根据 this thread的解决方案将是以下内容:
nrz <- nrow(z)
ncz <- ncol(z)
jet.colors <- colorRampPalette( c("#ffcccc", "#cc0000") )
# Generate the desired number of colors from this palette
nbcol <- 100
color <- jet.colors(nbcol)

# Compute the z-value at the facet centres
zfacet <- z[-1, -1] + z[-1, -ncz] + z[-nrz, -1] + z[-nrz, -ncz]
# Recode facet z-values into color indices
facetcol <- cut(zfacet, nbcol)

persp3d(x, y, z, theta=50, phi=25, expand=0.75, col=color[facetcol],
ticktype="detailed", xlab="", ylab="time", zlab="",axes=TRUE)

但这并没有给出好的结果,因为它没有为绘图着色。我想让我的表面的尖峰是例如红色和低值是例如蓝色,具有很好的平滑过渡,但这种颜色切片,所以取决于时间?因此,极大的尖峰应在尖峰处以红色着色,而在底部的值处,例如绿色。我怎样才能得到这个?

编辑:我找到了我之前关于轴上日期的问题的解决方案,剩下的唯一问题是依赖于 z 值的适当着色。

最佳答案

尝试这个:

nbcol = 100
color = rev(rainbow(nbcol, start = 0/6, end = 4/6))
zcol = cut(z, nbcol)
persp3d(x, y, z, theta=50, phi=25, expand=0.75, col=color[zcol],
ticktype="detailed", xlab="", ylab="time", zlab="",axes=TRUE)

theplot

如果您希望按时间着色(因此尖峰始终为红色),您可以为每个时间片设置着色:
mycut = function(x, breaks) as.numeric(cut(x=x, breaks=breaks)) # to combine different factors
zcol2 = as.numeric(apply(z,2, mycut, breaks=nbcol))
persp3d(x, y, z, theta=50, phi=25, expand=0.75, col=color[zcol2],
ticktype="detailed", xlab="", ylab="time", zlab="",axes=TRUE)

theplot2

您已经知道如何正确编辑轴。

关于r - persp3d 绘图的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17258787/

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