使用ggplot通过一个数据集绘制图形,但通过另一个数据集绘制颜色代码?

时间:2018-02-02 01:07:27

标签: r

我是使用R的新手,我尝试使用两个不同的数据集进行图表处理。

我知道我可以这样做:

ggplot() + geom_point(data = dataset1, mapping = aes(x = ..., y = ...)) + geom_point(data = dataset2, mapping = aes(x = ..., y = ...))

但是,如果我想通过数据集2中的离散变量对代码进行颜色处理,并且我不想使用dataset2绘制任何内容?所以,理论上......

ggplot(data = c(dataset1, dataset2)) + geom_point(mapping = aes(x = dataset1var, y = dataset1var, color = dataset2var)

所以我想绘制沿x和y轴的一个数据集中的点,然后使用来自另一个数据集的数据对这些绘制的点进行颜色编码。这两个数据集都在同一个库中。

1 个答案:

答案 0 :(得分:1)

您不需要填充data字段,因此您可以将向量(即:列)直接传递给参数。例如:

ggplot() +
    geom_point( aes( x = dataset1$x,
                     y = dataset1$y,
                     col = dataset2$col ) )

确保这些矢量长度相同。换句话说,两个data.frame对象应该具有相同的行数。

这是一个工作示例,不需要您自己的数据。这将向您展示它是如何工作的,这样您就可以将它应用到您自己的数据中。

set.seed(42)
ggplot() +
    geom_point( aes( x = 1:10,
                     y = 10:1,
                     col = factor(sample(1:10)) )
    )

enter image description here