ajouter x=y ligne de nuage de points
Je suis en utilisant le nuage de points de fonction à partir de la voiture, forfait pour générer un nuage de points.
Je veux être en mesure de générer une ligne de référence dans l'action, qui doit être x=y.
J'ai essayé d'utiliser abline et elle ajoute une ligne, mais il n'est pas le x=y ligne. Quelqu'un peut-il aider?
Mon code est comme suit:
scatterplot(phenos$P1~pheno$P0, data=pheno,spread=FALSE,ylab="6 month timepoint", xlab="Baseline Timepoint", jitter=list(x=1, y=1))
abline(0,1)
Grâce.
Je suppose que vous créez une boîte à moustaches à la place d'un nuage de points. Droit?
Qu'obtenez-vous? Ce genre de données est
abline(0,1) ajoute une ligne de pente=1 et intercept=0, de sorte qu'il devrait vous donner ce dont vous avez besoin. Si vous fournissez des données à la parcelle (afin que nous puissions voir ce que vous voyez lorsque vous exécutez le nuage de points et abline commandes), nous pouvons fournir plus d'aide.
pour obtenir x=y ,
Qu'obtenez-vous? Ce genre de données est
P1
et P0
?abline(0,1) ajoute une ligne de pente=1 et intercept=0, de sorte qu'il devrait vous donner ce dont vous avez besoin. Si vous fournissez des données à la parcelle (afin que nous puissions voir ce que vous voyez lorsque vous exécutez le nuage de points et abline commandes), nous pouvons fournir plus d'aide.
pour obtenir x=y ,
lines(pheno$P0,pheno$P0)
car::scatterplot
fait beaucoup de fantaisie à l'interne, y compris à l'aide de la layout()
fonction, qui va rendre beaucoup plus difficile de superposition quelque chose de simple comme un rapport de 1:1 à la ligne ...
OriginalL'auteur CadisEtRama | 2013-12-06
Vous devez vous connecter pour publier un commentaire.
C'est en fait assez difficile/hackish, parce que
scatterplot()
utilise en internelayout
, ce qui rend difficile le contrôle de l'intrigue secondaire actuellement utilisé par le pilote graphique. (Mise à jour: c'est plus difficile que je le pensais -- réglagepar("mfg")
doivent travailler plus ou moins par accident.)Composent de données (mise à jour: à partir des données moyennes de x et de y sont pas égaux à zéro et n'est pas égal à l'autre, comme cela illustre les difficultés de la naïveté de l'aide
abline()
plus clairement)Essayer de mon ancienne stratégie (qui ne fonctionne pas ou ne fonctionne que de façon imprévisible):
}
En fonction de la façon dont je le fais, soit je obtenir des avertissements et des erreurs ou de fausses réponses. Il semble importe si je ne le
scatterplot()
appel à l'intérieur d'une fonction ... ??Deuxième essai, de façon plus conservatrice: reconstruire mise en page à partir de zéro.
Donné le montant de l'effort et de la fragilité de cette solution, il peut être préférable de hack
scatterplot
pour éventuellement permettreabline()
être spécifié en outre, ou à demander au mainteneur de cette capacité ...scatterplot(y~x,data=d)
et puisabline(0,1)
et y=x ligne a été correctement tracées. Obtenez-vous le même comportement?Addendum: j'ai essayé la même chose avec plusieurs aléatoire des ensembles de données et a constaté que, parfois, abline donne une ligne avec ordonnée à l'origine = 0 et, parfois, l'ordonnée à l'origine est déplacé très légèrement en dessous de zéro (mais j'arrive toujours sur la bonne pente=1). Donc je corrige la position des mains.
Je pense que ça va dépendre de ce que le plot setup passe pour correspondre à quelque chose où (0,0) est à proximité du centre de l'intrigue. Essayez-la avec des moyens différents de (0, 0) et de voir ce qui se passe ...
quand j'ai essayer le " abline(0,1)', j'obtiens une ligne qui est un peu au-dessous de zéro. C'est presque "là", mais pas vraiment. Ben, ce code ne fonctionne pas pour moi, j'ai continué de faire des erreurs, je l'ai trouvé dur à suivre, comment vous avez fait cela, désolé! J'ai surtout voulu utiliser "nuage de points ()" pour les boxplots sur les axes. J'ai peut-être pour tenter de revenir à des graphismes de base dans la R pour générer le x=y ligne. Savez-vous comment ajouter de la boîte de parcelles pour les axes à l'aide de graphismes de base alors?
donnez-nous un reproductible exemple de quelque chose qui ne fonctionne pas, s'il vous plaît.
OriginalL'auteur Ben Bolker
Vous pouvez atteindre votre objectif par la même fonction
abline
. Utiliser la fonctionabline(a=0, b=1)
oùa
etb
sont les intercepter et les imprécisions de la ligne respectivement. Cela vous dessine une ligne droite de la formeY = a + b*x
.Espère que cette aide.
OriginalL'auteur Alemnew Sheferaw Asrese
Je viens d'utiliser les segments de la fonction:
segments(x0=0,y0=0,x1=45,y1=45)
Juste faire les valeurs y aller juste au-dessus de la limite de votre parcelle de terrain.
Cette fonction est aussi agréable car il ne change pas votre x et y des limites de sorte que la ligne peut fonctionner nettoyer l'ensemble de votre graphique sans avoir à choisir précisément les valeurs x et y.
plot
, ce n'est pas sûrscatterplot
OriginalL'auteur Denys Kelly