2017-10-15 1 views
0

Je dois tracer 2 données différentes sur le même tracé qui a la même plage x et y. Click here to see the results of the code. Comme vous pouvez le voir, celui de gauche a un espace sur 2004. J'ai besoin de placer le deuxième point de données (en bleu) là. Cependant, celui sur la droite est le résultat. Quelqu'un peut-il m'aider à résoudre ce problème?Tracé superposé dans R

Ceci est mon code actuel:

plot1 <- c(64123456,75123456....,99417287) #total of 29 values 
plot2 <- c(80824322) 

plot(plot1, col="red",pch=16,xlab = "Year", ylab = "Population",main = "Population of XXX from 1990 to 2020",yaxt="n",xaxt="n",las=2) 
par(new=TRUE) 
plot(plot2, col="blue",pch=17,axes=FALSE,xlab="",ylab="") 

MISE À JOUR: This est le résultat quand je points(plot2, col="blue",pch=17,xlab="",ylab="") Pourquoi est-il placé sur la première valeur de x?

+0

'plot (1)' 'plot puis (2, ajouter = TRUE)'? – Phil

+0

Bonjour. Je suis désolé que ça n'a pas marché. – Keeper

Répondre

0

Je ne sais pas si je vous comprends bien, mais les codes ci-dessous sont pour puting la valeur Plot2 à l'endroit vide ...

Je viens de créer une fausse donnée puisque vous n'avez pas partagé la totalité.

data <- 1:31 
data[15]<-NA 

plot1 <- data 

plot2 <- 15 

date <- as.character(1990:2020) 

plot(date,plot1, col="red",pch=16,xlab = "Year", 
ylab = "Population",main = "Population of XXX from 1990 to 2020") 
points("2004" ,plot2,col="blue") 

Voici la sortie.

enter image description here

+0

Ça a marché! Je comprends mon problème maintenant. Merci beaucoup! – Keeper

0

Utilisez plot la première fois, puis points

plot1 <- c(64123456,75123456,99417287) #total of 29 values 
plot2 <- c(80824322) 
plot(plot1, col="red",pch=16,xlab = "Year", ylab = "Population",main = "Population of XXX from 1990 to 2020",yaxt="n",xaxt="n",las=2) 
points(plot2, col="blue",pch=17,axes=FALSE,xlab="",ylab="") 
+0

J'ai supprimé les axes car cela donne une erreur. Le code s'exécute mais la 2ème donnée est placée sur la première valeur x. L'image est placée sur la question sous forme de mise à jour. – Keeper

+0

@Keeper: Vous n'avez rien qui lie votre point bleu à la valeur correcte de l'axe des x. Comme vous n'avez qu'une seule valeur, l'associer à la première valeur x par défaut. Vous devez faire 'points (xx, plot2, col =" bleu ", ...)', où 'xx' est la valeur x qui correspond à 2004 (' xx = 15', si j'ai compté correctement). –

+0

Je comprends mon erreur et ça marche maintenant. Je vous remercie! – Keeper