2017-06-26 2 views
0

J'ai trois colonnes de données (nom du transect, distance x du début du transect, élévation le long du transect) et je voudrais créer rapidement un diagramme de dispersion xy où chaque série est basée sur le nom du transect. Je veux comparer les pentes des transects.Diagramme de dispersion XY avec plusieurs séries basées sur les données de ligne

Les trois colonnes de données ressemblent à ceci:

Transect, X-distance, Elevation 
A, 0, 0 
A, 1, 2 
A, 1, 3 
A, 2, 4 
B, 0, 0 
B, 1, 3 
B, 2, 4 
C, 0, 0 
C, 1, 1 

etc. avec environ 15 lettres "/ transects" valeur de données. Au total environ 150-200 lignes.

Notez également que le nombre de points par lettre est variable (entre 8 et 15 environ) et qu'ils ne partagent aucune commune X ou Y (dans cette distance de cas et d'élévation)

J'ai googled/recherché les "questions similaires" mais aucune des réponses ne semble avoir les données mises en place de la même manière que moi. Ils partagent le même X ou ont la série dans des colonnes adjacentes.

Existe-t-il un moyen pour R de simplement reconnaître les différents noms dans la première colonne et de les rendre différentes séries?

Merci

+0

Voulez-vous vraiment faire les parcelles ou vous voulez juste une liste des pistes par transect? – G5W

+0

'library (dplyr); df%>% group_by (Transect)%>% ... (tout ce qui doit se passer ensuite) ' –

+0

Hi G5W. Finalement, oui, je vais vouloir les pistes (je suis assez fort dans Excel, donc je peux y arriver assez facilement). S'il y a un moyen plus rapide de produire les pentes, basé sur le transect, alors je suis tout à fait pour l'apprendre. –

Répondre

1

je crois que c'est ce que vous essayez d'accomplir. Vous pouvez grouper par transect en utilisant le paramètre color = Transect dans votre esthétique. J'ai ajouté geom_line() juste pour aider à visualiser la pente. N'hésitez pas à l'exclure.

library(tidyverse) 

df <- tribble(
~Transect, ~X_distance, ~Elevation, 
'A', 0, 0, 
'A', 1, 2, 
'A', 2, 3, 
'A', 3, 4, 
'B', 0, 0, 
'B', 1, 3, 
'B', 2, 4, 
'C', 0, 0, 
'C', 1, 1) 


ggplot(df, aes(X_distance, Elevation, color = Transect)) + 
    geom_point() + 
    geom_line() 

enter image description here

Si vous voulez définir des couleurs individuelles à certains groupes tout en gardant tous les transects, ajoutez une colonne supplémentaire indiquant les groupements. Vous pouvez ensuite ajouter l'argument de groupe à votre esthétique ggplot.

df <- tribble(
    ~Transect, ~X_distance, ~Elevation, ~grouping, 
    'A', 0, 0, 'AB', 
    'A', 1, 2, 'AB', 
    'A', 2, 3, 'AB', 
    'A', 3, 4, 'AB', 
    'B', 0, 0, 'AB', 
    'B', 1, 3, 'AB', 
    'B', 2, 4, 'AB', 
    'C', 0, 0, 'C', 
    'C', 1, 1, 'C') 


ggplot(df, aes(X_distance, Elevation, group = Transect, color = grouping)) + 
    geom_point() + 
    geom_line() 

enter image description here

+1

Je reçois une erreur Attention dans les fichiers install.packages: Le paquet 'ggplot' n'est pas disponible (pour la version R 3.4.0) Attention dans les fichiers install.packages: Impossible d'ouvrir l'URL 'http: //www.stats. ox.ac.uk/pub/RWin/bin/windows/contrib/3.4/PACKAGES.rds ': le statut HTTP était' 404 Not Found ' MISE À JOUR: installé ggplot2 et il semble fonctionner. –

+1

Excellent - fonctionne exactement comme je le voulais. Merci Howard. Juste nécessaire pour installer les paquets (le "install" de Rstudio n'a pas semblé saisir le bon) –

+1

Existe-t-il un moyen facile de regrouper plusieurs transects dans la même couleur? Dites, A, B, C = rouge, D, E, F = bleu, G H I violet, etc.? –