Formatage de l'intrigue de persp3d
J'ai de la suite graphique 3d:
Avec mon données je l'ai créé avec le code suivant:
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)
Comment puis-je obtenir une coloration selon les valeurs z? J'ai regardé les différentes solutions, comme par exemple ce unmais je ne pouvais pas créer la coloration selon les valeurs z dans ce cas.
La solution selon ce fil serait le suivant:
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)
Mais cela ne donne pas un bon résultat, car il n'a pas la couleur de la parcelle appropriée. Je veux avoir les pointes de ma surface, par exemple en rouge et les valeurs faibles pour être par exemple en bleu avec une belle transition en douceur, mais ce genre de couleurs sur les tranches, donc en fonction du temps? Si extrêmes de larges clous doivent être de couleur à leurs pointes en rouge et les valeurs en bas par exemple en vert. Comment puis-je l'obtenir?
Edit: j'ai trouvé une solution à ma question précédente au sujet de la date sur l'axe, le seul problème, à gauche, est un colorant approprié dépend de la z-valeurs.
source d'informationauteur Stat Tistician | 2013-06-23
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Si vous voulez la coloration par le temps (si les pointes sont toujours en rouge), vous pouvez régler la couleur pour chaque tranche de temps:
Vous savez déjà comment modifier les axes correctement.
Exercer un contrôle sur les axes, vous devez définir
axes=FALSE
(comme il a été dit hier) dans lepersp3d
appel , et ensuite utiliser leaxes3d
etaxis3d
fonctions avec des arguments de votre choix. Pour spécifier un axe x avec des valeurs affichées le long de la basse yz - boîte de segment, l'utilisationedge= 'x--'
. À l'étiquette de l'axe des y avec rownames, utilisez les étiquettes' et 'à' arguments:(Note: pour jouer À ce jeu SI bien, vous aurez besoin de donner du crédit à des gens qui ont offert de l'aide. Ce n'est pas très différente de la une question d'hier et je ne vois pas de réponse positive pour la contribution utile. Je me demande si les gens deviennent indifférents.)
La suite est une solution pour répondre à votre question sur la coloration de la surface selon les valeurs z. L'idée est d'attribuer une couleur à chaque point de la surface en fonction de sa (relative) de hauteur.
Le code ci-dessous comprend les axes de personnalisation proposé par @DWin.