Réglage de la limite de l'axe x et y, lors de l'ajout de nouvelles courbes pour une parcelle dans la R
J'ai deux jeux de données (df1
et df2
) qui sont tracées.
df1 = data.frame(x=c(1:10), y=c(1:10))
df2 = data.frame(x=c(0:13), y=c(0:13)^1.2)
# plot
plot(df1)
# add lines of another dataset
lines(df2)
Certaines valeurs de df2
sont hors de la parcelle-gamme et donc pas visible. (Dans cet exemple, j'ai juste l'intrigue df2
premier). J'ai l'habitude d'essayer de trouver les gammes de mes données, comme indiqué ci-dessous.
# manual solution
minX = min(df1$x, df2$x)
minY = min(df1$y, df2$y)
maxX = max(df1$x, df2$x)
maxY = max(df1$y, df2$y)
plot (df1, xlim=c(minX, maxX), ylim=c(minY, maxY))
lines(df2)
Lorsque, ayant beaucoup de jeux de données, cela devient ennuyeux. Je me demandais, si il ya un moyen plus facile de régler les plages de l'axe.
Dans la première étape de la R trouve les plages axe lui-même. Est-il aussi une façon qui R règle de l'axe-plages, lorsque de nouveaux ensembles de données sont ajoutés?
Fusionner les
Je ne vois pas hoew fusion dataframes de longueur différente pour résoudre le problème. Ce qui est une variable de groupe? Comment la solution serait dans ggplot2 (je n'ai jamais utilisé avant)
data.frames
, créer une variable de groupe, utilisez ggplot2
.Je ne vois pas hoew fusion dataframes de longueur différente pour résoudre le problème. Ce qui est une variable de groupe? Comment la solution serait dans ggplot2 (je n'ai jamais utilisé avant)
OriginalL'auteur John Garreth | 2012-11-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
range
pour calculer les limites.À mon humble avis, une meilleure solution:
OriginalL'auteur Roland
J'aime @Roland solution, mais ici est une extension de @Glen_b la solution qui fonctionne pour un nombre arbitraire d'ensembles de données, si vous les avez tous dans une liste.
(avertissement: pas testé!)
Cela suppose que vous voulez tous les ensembles de données tirées sous forme de lignes.
Si vous voulez commencer à spécifier séparer les couleurs, les types de points, etc., vous pouvez étendre cette fonction, mais vous seriez de commencer à ré-inventer la
lattice
etggplot2
packages à ce point.(Si tous les ensembles de données sont de la même taille, vous devriez envisager de
matplot
)OriginalL'auteur Ben Bolker
Vous pouvez toujours écrire une fonction:
Alors que vous venez de faire:
Si vous voulez obtenir la fantaisie, vous pouvez même inclure l'argument
...
et le transmettre à l'intrigue appel.plotline
-fonction ne fonctionne. Qu'est-ce que le...
argument utilisé pour dans l'intrigue? ou avez-vous dire le propre intrigue fonction?Il est facile de modifier la fonction pour prendre un sous-ensemble de colonnes à partir d'un dataframe, ou une liste de dataframes, ou une matrice, ou de plusieurs autres façons de spécifier un tas de choses à la parcelle. Comme pour le
...
argument, c'est une façon de passer des arguments supplémentaires vers le bas pour les choses de vos appels de fonction (dans ce cas, de complot, de sorte intrigue vous permettra de définir l'une des choses que l'intrigue permet de définir). Voir la section 10.4 "Une Introduction à R".OriginalL'auteur Glen_b
Regarder la
matplot
fonction, il va accepter une matrice x, y, ou les deux, et faire tout le automatique de la portée des calculs pour vous. Si vous avez les données en plusieurs trames de données, alors vous pouvez utiliser sapply extraire la clé des pièces et de la forme de la matricies.Cette approche est souvent même plus simple que d'utiliser les lignes de fonction à plusieurs reprises:
Ci-dessus est encore plus simple si tous les blocs de données ont le même nombre de lignes.
L'autre approche, comme mentionné dans les commentaires, c'est de combiner les ensembles de données dans un seul ensemble de données et d'utiliser des outils comme le treillis des graphiques ou des ggplot2:
Si tout le reste échoue, vous pouvez utiliser le
zoomplot
fonction de la TeachingDemos paquet pour modifier les limites de graphismes de base après le fait, mais les méthodes ci-dessus sont beaucoup mieux.OriginalL'auteur Greg Snow