r

时间:2016-04-22 18:46:59

标签: r scatter-plot scatter

有没有办法可以在R中创建散点图并按类别对点进行着色?例如,我有一个包含x和y点列表的数据集(两列都是' Xpoints' Y"'有0到100的比例),但每个点组合了x& y点属于五个类别之一(在第三列'类别')。 我想绘制所有组合的x& y点和每个点按其各自的类别着色。 我猜这五个类别必须在另一列中分配数字1到5。但是要绘制这个的代码是什么?

2 个答案:

答案 0 :(得分:2)

使用广泛用于此类应用的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')

上面的代码提供了以下图表。 enter image description here

答案 1 :(得分:0)

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

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

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

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

enter image description here

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

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

enter image description here