43

我正在搜索,但仍然找不到一个非常简单的问题的答案 - 我们如何在 R 中使用 ggplot2 生成一个变量的简单点图?

使用plot命令这很简单:

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

但是当我试图将一个变量传递给 qplot 并指定 geom="point" 时,我收到一个错误“UseMethod("scale_dimension") 中的错误”。

简单的一变量图

我们如何制作这样的情节但使用ggplot2?

4

5 回答 5

58

您可以使用 手动创建索引向量seq_along

library(ggplot2)

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

在此处输入图像描述

于 2012-12-12T10:39:26.943 回答
14

实际上,您绘制的不是一个变量,而是两个。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()
于 2012-12-12T10:37:53.140 回答
6

使用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))
于 2016-04-04T06:12:51.637 回答
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))

在此处输入图像描述

于 2014-05-07T09:20:59.777 回答
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")
于 2016-03-12T16:26:14.943 回答