假设我iris
使用 ggplot2 将数据框熔化如下:
meltediris <- melt(iris)
我现在可以Petal.Width
通过从variable
列中选择它们来绘制值:
ggplot(meltediris) + geom_density(aes(x=meltediris[meltediris$variable ==
"Petal.Width",]$value))
然后我想通过 绘制Petal.Width
值Species
,所以我做了:
ggplot(meltediris) + geom_density(aes(x=meltediris[meltediris$variable ==
"Petal.Width",]$value, colour=Species))
它似乎有效,但我很惊讶它确实有效!数据框的选定子集与meltediris[meltediris$variable == "Petal.Width",]$value
整个融化的数据框的索引不同(它只是一个子集),那么 ggplot 如何知道选择正确的Species
值?似乎它应该要求我这样做:
ggplot(meltediris) + geom_density(aes(x=meltediris[meltediris$variable ==
"Petal.Width",]$value,
colour=meltediris[meltediris$variable == "Petal.Width",]$Species))
它选择Species
熔化数据帧的选定子集的值。再举一个例子,如果我这样做:
ggplot(meltediris) + geom_density(aes(x=meltediris[meltediris[meltediris$variable == "Petal.Width",]$Species == "virginica",]$value, colour=Species))
似乎 ggplot 应该只知道一个物种,因为我选择了非处女。当我这样做时,它只正确绘制了一个物种,但仍然在图例中显示其他两个Species
值。它怎么知道这样做?我确信当我通过它时x=
它无法读取剩余的数据帧值。有人可以解释 ggplot 如何从融化的数据框中挑选这些变量吗?谢谢。