2011-01-20 13 views
3

J'essaie de tracer certaines paires de diagrammes de dispersion en utilisant des "paires". Mon look dataframe comme:Tracer des diagrammes de dispersion avec des paires dans R, dans une échelle logarithmique avec des données contenant des zéros

>e 
    X Y Z 
    0 0 0 
    2 3 4 
    0 3 4 
    3 3 3 

Un dataframe tout à fait standard ici.

Je l'utiliser pour tracer mes diagrammes de dispersion, encore rien de fantaisie:

pairs(~X+Y+Z, data=e, log="xy") 

Il fonctionne très bien, mais il ne trace pas les étiquettes. Cependant, si je supprime le journal = "xy" dans la commande, alors les étiquettes sont bien tracées. Donc je suppose que cela a à voir avec le fait que je veux que mes diagrammes de dispersion soient en échelle logarithmique.

Donc, ma question est que dois-je faire? Dois-je supprimer toutes les lignes avec des zéros avant la main (comment faites-vous cela?) Y at-il un tour de magie qui me permettra d'avoir log = "xy" et mes diagrammes de dispersion étiquetés?

Merci pour votre aide, S'il vous plaît laissez-moi savoir si ce n'est pas clair.

Répondre

7

Vous avez ignoré ce (où j'ai appelé votre bloc de données DF):

R> pairs(~X+Y+Z, data=df, log="xy") 
There were 30 warnings (use warnings() to see them) 

et si vous regardez ces trente avertissements, vous verrez que

  • vous ne pouvez pas tracer des données contenant des zéros sur une échelle logarithmique (et je suppose que vous savez pourquoi)

  • log n'est pas un paramètre reconnu pour pairs()

Donc, si vous voulez une paire complotent dans les journaux, vous devrez peut-être vous-même prend les journaux (et non plus ajouter un petit epsilon ou utiliser une transformation comme log(1 + x) et appelez pairs() sur ces données.

Modifier Le plus simple est probablement pairs(~X+Y+Z, data=log(1+DF))

+0

Ce comportement est étrange que. En fait, il * trace * les données sur une échelle de notation, tout semble bien, sauf qu'il omet les étiquettes. Un résultat similaire se produit avec 'plot (df, log =" xy ")', où 'log' est (vraisemblablement?) Un paramètre valide pour' plot() '. –

+0

Aussi, ne pas pinailler parce que votre solution est la meilleure que je connaisse, mais 'paires (~ X + Y + Z, données = log (1 + DF))' vont altérer les étiquettes d'axe de manière indésirable à l'échelle logarithmique. –

Questions connexes