【问题标题】:Colouring scatter graph by type in r在 r 中按类型着色散点图
【发布时间】:2016-04-22 18:46:59
【问题描述】:

有没有一种方法可以在 R 中创建散点图并按类别为点着色?例如,我有一个包含 x 和 y 点列表的数据集(“Xpoints”和“Ypoints”列的范围从 0 到 100),但每个组合的 x&y 点属于五个类别之一(在第三列中)类别')。 我想绘制所有组合的 x&y 点并按其各自的类别为每个点着色。 我猜这五个类别必须在附加列中分配数字 1 到 5。但是绘制这个的代码是什么?

【问题讨论】:

    标签: r scatter-plot scatter


    【解决方案1】:

    使用广泛用于此类应用程序的ggplot2 包。

    # toy data
    my_data <- data.frame(x = sample(1:100, replace = T, 100),
                          y = sample(1:100, replace = T, 100),
                          cat = sample(c('first', 'second', 'third'), replace = T, 100)
                          )
    
    # required packages
    require(ggplot2)
    
    # make the graph
    ggplot(data = my_data, aes(x = x, y = y, color = cat)) +
            geom_point()
    
    ggsave(height = 4, width = 4, filename = 'SO36801313.png')
    

    上面的代码提供了下图。

    【讨论】:

      【解决方案2】:

      这对于图形包Lattice 来说是一项非常容易的任务。它专为多变量分析而设计,可以非常轻松地处理。 我加载数据集iris 以提供示例。

      library(lattice)
      data("iris")
      names(iris)
      

      Lattice 允许立即绘制多面图,根据第三个变量显示两个变量之间的关系。在这种情况下,我们检查了花的萼片长度和萼片宽度之间的关系,但对于数据集中的每个species。用公式x ~ y | z表示。

      xyplot(Sepal.Length ~ Sepal.Width | Species, data = iris)
      

      xyplot(Sepal.Length ~ Sepal.Width, data = iris,
         groups = Species, 
         auto.key = TRUE)
      

      对于您的情况,我们会将所有观察结果绘制在一个标准图中。在这种情况下,参数groups 将根据您选择的标准自动为每个观察值着色,在这种情况下,再次为species

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-22
        • 1970-01-01
        • 2013-04-06
        • 1970-01-01
        • 2018-04-11
        • 1970-01-01
        相关资源
        最近更新 更多