Contour d'une estimation de densité et positionnement de la légende

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Thomas Thélémaque
Messages : 8
Enregistré le : 24 Avr 2019, 09:00

Contour d'une estimation de densité et positionnement de la légende

Messagepar Thomas Thélémaque » 13 Mai 2019, 10:56

Bonjour,
Dans le cadre d'une étude astronomique, j'ai réalisé un graphe de densité en utilisant la méthode kde2d puis la fonction image.plot().
Cela m'a permis entre autre d'obtenir ce graphe :

Image

avec ces lignes de code :
> densthick<-kde2d(Type1[,10],Type1[,11],h=c(10,10),lims=c(-120,120,-120,80),n=500)
> image.plot(densthick,col=col2,ylim=c(-125,85),xlim=c(-125,125),main="Thick disk",cex.main=2,add=FALSE,horizontal=FALSE,legend.only=FALSE,yaxt="n",xaxt="n",legend.shrink = c(1),legend.width = c(1),legend.line=c(0))
> mtext("U (km/s)", side=1, line=2.8, cex=1.8)
> mtext("V (km/s)", side=2, line=2.8, cex=1.8)
> axis(2,cex.axis=1.4)
> axis(1,cex.axis=1.4)

J'aimerai y apporter deux modifications :

- Créer une ligne de contour pour délimiter chaque zone de couleur comme ci-dessous :

Image

- Décaller un petit peu la légende vers la gauche pour éviter qu'elle ne soit rognée lorsque j'exporte mon graphe au format .eps

Merci pour votre aide !

Thomas

Guillaume Devailly
Messages : 28
Enregistré le : 22 Déc 2017, 12:31

Re: Contour d'une estimation de densité et positionnement de la légende

Messagepar Guillaume Devailly » 15 Mai 2019, 08:23

Bonjour,

Pour augmenter la marge à droite, il faut définir la paramètre mar dont vous trouverez une description dans l'aide de la fonction par().

Pour rajouter les lignes de contour, je vous suggère de regarder la fonction contour().

Cela pourrait donner quelque chose comme cela, que je vous laisse raffiner (notamment fixer les xlim et ylim dans les deux plot, et n'afficher qu'une seule fois les axes):

Code : Tout sélectionner

library(MASS)
head(geyser)

f1 <- kde2d(
    geyser$duration[-272],
    geyser$duration[-1],
    h = rep(1.5, 2),
    n = 50,
    lims = c(0.5, 6, 0.5, 6)
)
oldpar <- par(mar=c(5, 4, 4, 8))
image(f1)
par(new=TRUE)
contour(f1)
par(oldpar)


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité