43

I'm searching but still can't find an answer to a quite simple question - how can we produce a simple dot plot of one variable with ggplot2 in R?

with plot command this is very simple:

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

But when I'm trying to pass one variable to qplot and specifying geom="point", I'm getting an error "Error in UseMethod("scale_dimension")".

Simple one-variable plot

How can we make a plot like this but with ggplot2?

5 Answers 5

58

You can manually create an index vector with seq_along.

library(ggplot2)

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

enter image description here

Sign up to request clarification or add additional context in comments.

Comments

16

Actually, you are not plotting one variable, but two. X-variable is the order of your data. The answer to what you want based on your example is:

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

The answer to your question would be closer to this:

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

1 Comment

ggplot(iris, aes(x = Sepal.Length)) + geom_dotplot() is giving me a histogram, not a point plot.
6
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

Comments

6

An alternative to using qplot and without specifying the data param:

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

or:

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

Comments

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

or

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.