2017-09-30 8 views
3

Je me bats parce que j'essaye juste d'ajouter mes propres valeurs d'axe des x et coches à un graphique qui montre également la régression linéaire.Je ne peux pas ajouter axis() pour tracer quand on utilise abline (lm()), pourquoi?

Il semble que OU j'ajoute l'abline OU j'ajoute l'axe. Je ne peux pas faire les deux!

Pourquoi?

données Exemple:

df = data.frame(year = c(1901:2000), total = ceiling(runif(100, 2, 3000))) 

Ce code ne fonctionne que pour abline():

plot(df$year, df$total, xaxt='n') 
abline(lm(df$total ~ df$year)) 
axis(1, at = seq(1,100, by = 10), labels = seq(1901, 2000, by = 10)) #this line does not work 

Ce code ne fonctionne que pour l'axe():

plot(df$total, xaxt='n') 
abline(lm(df$total ~ df$year)) #this line does not work 
axis(1, at = seq(1,100, by = 10), labels = seq(1901, 2000, by = 10)) 

Toute aide, s'il vous plaît ? merci

+0

Salut, merci. mon vrai dataframe n'a que deux variables numériques: 'year' de 1901 à 2000 et 'total' qui peut être même des nombres entiers aléatoires. – 1000111000

+1

merci Axeman. Ceci a été fait. – 1000111000

Répondre

3

L'axe des abscisses ne va pas nécessairement de 1 à 100. Les unités sont définies par l'échelle de votre variable.

Dans votre premier exemple, l'axe des abscisses va en fait de 1901 à 2000. Vous devez donc définir at dans cette plage, sinon vos valeurs sont en dehors du tracé et sont invisibles. Il suffit de faire:

plot(df$year, df$total, xaxt='n') 
abline(lm(df$total ~ df$year)) 
axis(1, at = seq(1901, 2000, by = 10)) 

Le deuxième exemple votre axis fonctionne appel parce que vous complotez index sur l'axe des x, qui compte seulement de 1 à n observations (dans ce cas 100). Le abline n'est pas visible, car il n'est pas dans la portée de ce graphique.

+0

vous rock homme I_I_ – 1000111000