R levelplot ajuster les axes
Je veux tracer la fonction de distribution de probabilité (PDF) comme une heatmap dans R à l'aide de la levelplot fonction de "treillis" paquet. J'ai mis en place le format PDF comme une fonction et ensuite généré la matrice pour la levelplot à l'aide de deux vecteurs de la valeur des plages et de la fonction externe.
Je veux les axes pour afficher la Mon problème est que je ne suis pas capable d'ajouter correctement espacés les graduations sur les deux axes de l'affichage de la les deux gammes de valeur plutôt que le nombre de colonnes ou de lignes, respectivement.
# PDF to plot heatmap
P_RCAconst <- function(x,tt,D)
{
1/sqrt(2*pi*D*tt)*1/x*exp(-(log(x) - 0.5*D*tt)^2/(2*D*tt))
}
# value ranges & computation of matrix to plot
tt_log <- seq(-3,3,0.05)
tt <- exp(tt_log)
tt <- c(0,tt)
x <- seq(0,8,0.05)
z <- outer(x,tt,P_RCAconst, D=1.0)
z[,1] <- 0
z[which(x == 1),1] <- 1.5
z[1,] <- 0.1
# plot heatmap using levelplot
require("lattice")
colnames(z) <- round(tt, 2)
rownames(z) <- x
levelplot(z, cex.axis=1.5, cex.lab=1.5, col.regions=colorRampPalette(c("blue", "yellow","red", "black")), at=seq(0,1.9,length=200), xlab="x", ylab="time t", main="PDF P(x,t)")
Sans l'attribution des noms de colonnes et de lignes, je reçois la suite de l'intrigue où les graduations sont naturellement espacées (comme d'autres R-fonctions), mais les valeurs sont la ligne & numéros de colonne:
Avec l'attribution des noms de colonnes et de lignes, je reçois la suite de l'intrigue où les graduations ne sont pas du tout lisible, mais au moins correspondre à la valeur réelle:
J'ai déjà passé trop de temps sur ce qui semble être question triviale donc, je serais très reconnaissante de toute l'aide de votre côté!
- la doc de treillis est très complet, avez-vous lu deux fois?
?levelplot
?xyplot
- Oui. Par exemple, il suggère
scale
comme argument possible de modifier les axes, c'est à dire par les tiques.numéro. Mais quand j'ai essayé ceci, il ni avait aucun effet, ni le jeta une erreur.
Vous devez vous connecter pour publier un commentaire.
Peut-être cet exemple de base peut aider,
Tout est décrit dans
?xyplot
, certes c'est une longue page de documentation.exp(3)
). La première image possède la bonne valeur, mais dans un évidemment inutile façon (car il englobe tous d'entre eux). La deuxième photo a nice axes, mais qui affichent complètement fausses valeurs, c'est à dire la ligne et le col des nombres.d = data.frame(x=rep(seq(0, 8, length=nrow(zz)), ncol(zz)), y=rep(seq(0, 20, length=ncol(zz)), each=nrow(zz)), z=c(zz))
, oùzz
est la précédente variablez
, puis le levelplot fonction comme indiqué dans votre post.colnames(z) <- round(tt, 2)
etrownames(z) <- x
vous obtenez la parcelle avec chevauchement des étiquettes, sans ces deux lignes que vous obtenez la parcelle avec la belle mais mal étiquettes autocollantes numérotées. J'ai exécuté le code ci-dessus afin de vérifier et j'ai été en mesure de reproduire les deux chiffres. Est-ce que vous voulez m'ajouter pour préciser mon problème? Savez-vous comment mettre en œuvre des axes logarithmiques? Je vous remercie.Ce comment j'ai finalement mis en œuvre la heatmap parcelle de ma fonction P(x,t) à l'aide de
levelplot
et undata.frame
objet (en fonction de la solution fournie par baptiste):Et c'est ainsi que la finale de la heatmap parcelle de ma fonction P(x,t) ressemble à: