web-dev-qa-db-fra.com

Comment tracer une variable dans ggplot?

Je cherche, mais je ne trouve toujours pas de réponse à une question assez simple - comment pouvons-nous produire un tracé de points simple d'une variable avec ggplot2 dans R?

avec la commande plot c'est très simple:

plot(iris$Sepal.Length, type='p')

Mais lorsque j'essaie de passer une variable à qplot et que je spécifie geom = "point", j'obtiens une erreur "Error in UseMethod (" scale_dimension ")".

Simple one-variable plot

Comment pouvons-nous faire un tracé comme celui-ci, mais avec ggplot2?

31
annndrey

Vous pouvez créer manuellement un vecteur d'index avec seq_along.

library(ggplot2)

qplot(seq_along(iris$Sepal.Length), iris$Sepal.Length)

enter image description here

50
Sven Hohenstein

En fait, vous ne tracez pas une variable, mais deux. La variable X est l'ordre de vos données. La réponse à ce que vous voulez d'après votre exemple est:

library(ggplot2)
ggplot(iris, aes(y = Sepal.Length, x = seq(1, length(iris$Sepal.Length)))) + geom_point()

La réponse à votre question serait plus proche de ceci:

ggplot(iris, aes(x = Sepal.Length)) + geom_dotplot()
13
Mikko

Une alternative à l'utilisation de qplot et sans spécifier le paramètre data:

ggplot(mapping=aes(x=seq_along(iris$Sepal.Length), y=iris$Sepal.Length)) +
    geom_point()

ou:

ggplot() +
    geom_point(aes(x=seq_along(iris$Sepal.Length), y=iris$Sepal.Length))
5
se7entyse7en
require(ggplot2)

x= seq(1,length(iris$Sepal.Length))
Sepal.Length= iris$Sepal.Length

data <- data.frame(x,Sepal.Length)

ggplot(data) + geom_point(aes(x=x,y=Sepal.Length))

enter image description here

5
jcarlos
library(ggplot2)
qplot(1:nrow(iris), Sepal.Length, data = iris, xlab = "Index")

ou

ggplot(data = iris, aes(x = 1:nrow(iris), y = Sepal.Length)) +
    geom_point() +
    labs(x = "Index")
2
Darren Bishop