【问题标题】:How to plot one variable in ggplot?如何在ggplot中绘制一个变量?
【发布时间】:2012-11-30 00:39:49
【问题描述】:

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

使用plot 命令很简单:

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

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

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

【问题讨论】:

    标签: r plot ggplot2


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      实际上,您绘制的不是一个变量,而是两个。 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()
      

      【讨论】:

      • ggplot(iris, aes(x = Sepal.Length)) + geom_dotplot() 给了我一个直方图,而不是点图。
      【解决方案3】:

      使用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】:
        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))
        

        【讨论】:

          【解决方案5】:
          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")
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-11-15
            • 1970-01-01
            • 1970-01-01
            • 2020-04-21
            • 1970-01-01
            • 1970-01-01
            • 2021-07-01
            • 2015-04-23
            相关资源
            最近更新 更多