Puisque vous n'avez fourni aucune donnée (veuillez le faire à l'avenir), voici un jeu de données inventées pour démontrer une solution. Il y a (au moins) deux façons de le faire: la bonne et la mauvaise façon. Les deux donnent des résultats équivalents dans ce cas très simple.
# set up minimum reproducible example
set.seed(1) # for reproducible example
dates <- seq(as.Date("2015-01-01"),as.Date("2015-06-01"), by=1)
df1 <- data.frame(date=dates, NO3=rpois(length(dates),25))
df2 <- data.frame(date=dates, DIS.O2=rnorm(length(dates),50,10))
ggplot
est conçu pour utiliser les données en format "long". Cela signifie que toutes les valeurs y (les concentrations) sont dans une seule colonne, et qu'il y a une colonne séparée qui identifie la catégorie correspondante ("NO3" ou "DIS.O2" dans votre cas). Donc, d'abord, nous fusionnons les deux ensembles de données en fonction de la date, puis utilisez melt(...)
pour convertir de "large" (catégories dans des colonnes séparées) en format "long". Ensuite, nous allons ggplot
vous soucier des légendes, des couleurs, etc.
library(ggplot2)
library(reshape2) # for melt(...)
# The right way: combine the data-sets, then plot
df.mrg <- merge(df1,df2, by="date", all=TRUE)
gg.df <- melt(df.mrg, id="date", variable.name="Component", value.name="Concentration")
ggplot(gg.df, aes(x=date, y=Concentration, color=Component)) +
geom_point() + labs(x=NULL)
La meilleure façon de faire « mal » est en faisant des appels séparés à geom_point(...)
pour chaque couche. Dans votre cas particulier, cela peut être plus simple, mais à long terme, il vaut mieux utiliser l'autre méthode.
# The wrong way: plot two sets of points
ggplot() +
geom_point(data=df1, aes(x=date, y=NO3, color="NO2")) +
geom_point(data=df2, aes(x=date, y=DIS.O2, color="DIS.O2")) +
scale_color_manual(name="Component",values=c("red", "blue")) +
labs(x=NULL, y="Concentration")
pouvez-vous nous donner quelques exemples de données que vous travaillez. Vous voulez un tracé de ligne de qui vars dans les données? –
vous devez le faire en ajoutant des couches dans 'ggplot2' où chaque couche a un ensemble de données différent. Mais il semble que vous ayez des problèmes avec la syntaxe 'ggplot()' de base. Assurez-vous que vous pouvez construire des tracés de base via 'ggplot()' avant de passer à plusieurs couches –
Bienvenue sur SO. Vous avez vraiment besoin de fournir vos données, ou mieux encore un échantillon représentatif afin que nous puissions reproduire votre problème. Lisez [ceci] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610). – jlhoward