我正在寻找,但仍无法找到一个非常简单的问题的答案 - 我们怎样才能在R中用ggplot2生成一个变量的简单点图?
使用plot
命令这非常简单:
plot(iris$Sepal.Length, type='p')
但是当我试图将一个变量传递给qplot并指定geom =“point”时,我收到错误“UseMethod中的错误(”scale_dimension“)”。
我们如何使用ggplot2创建这样的情节?
答案 0 :(得分:49)
您可以使用seq_along
手动创建索引向量。
library(ggplot2)
qplot(seq_along(iris$Sepal.Length), iris$Sepal.Length)
答案 1 :(得分:13)
实际上,你不是在绘制一个变量,而是两个。 X变量是数据的顺序。根据您的示例,您想要的答案是:
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()
答案 2 :(得分:5)
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))
答案 3 :(得分:4)
使用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))
答案 4 :(得分:2)
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")