Ответ 1
Вы можете вручную создать индексный вектор с seq_along
.
library(ggplot2)
qplot(seq_along(iris$Sepal.Length), iris$Sepal.Length)
Я ищу, но все еще не могу найти ответ на довольно простой вопрос - как мы можем создать простой точечный график одной переменной с ggplot2 в R?
с помощью команды plot
это очень просто:
plot(iris$Sepal.Length, type='p')
Но когда я пытаюсь передать одну переменную в qplot и указывая geom = "point", я получаю сообщение об ошибке "Ошибка в UseMethod (" scale_dimension ")".
Как мы можем сделать такой сюжет, как с ggplot2?
Вы можете вручную создать индексный вектор с seq_along
.
library(ggplot2)
qplot(seq_along(iris$Sepal.Length), iris$Sepal.Length)
На самом деле, вы не рисуете одну переменную, а две. X-variable - это порядок ваших данных. Ответ на то, что вы хотите на основе вашего примера:
library(ggplot2)
ggplot(iris, aes(y = Sepal.Length, x = seq(1, length(iris$Sepal.Length)))) + geom_point()
Ответ на ваш вопрос будет ближе к этому:
ggplot(iris, aes(x = Sepal.Length)) + geom_dotplot()
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))
Альтернатива использованию qplot
и без указания data
параметров:
ggplot(mapping=aes(x=seq_along(iris$Sepal.Length), y=iris$Sepal.Length)) +
geom_point()
или:
ggplot() +
geom_point(aes(x=seq_along(iris$Sepal.Length), y=iris$Sepal.Length))
library(ggplot2)
qplot(1:nrow(iris), Sepal.Length, data = iris, xlab = "Index")
или
ggplot(data = iris, aes(x = 1:nrow(iris), y = Sepal.Length)) +
geom_point() +
labs(x = "Index")