R 是什么导致了这个ggplot2方面的错误?

R 是什么导致了这个ggplot2方面的错误?,r,plot,ggplot2,R,Plot,Ggplot2,我正在做一些R演示,向同事演示它的一些特性。我特别想让他们对ggplot2感兴趣,因此我们将facet\u grid与iris数据集结合起来,制作了一个简单的刻面示例 为了向他们展示不同的模式,我想向他们展示使用~Species、Species.和Species~Species会产生什么(我承认这是一个糟糕的例子) 这似乎在ggplot中引发了一些奇怪的行为,我想知道为什么会这样。我希望下面的图包含对角线上的点,每个轴上的物种名称相互匹配。相反,所有东西都列在x轴的setosa下,然后在y轴的实

我正在做一些R演示,向同事演示它的一些特性。我特别想让他们对
ggplot2
感兴趣,因此我们将
facet\u grid
iris
数据集结合起来,制作了一个简单的刻面示例

为了向他们展示不同的模式,我想向他们展示使用
~Species
Species.
Species~Species
会产生什么(我承认这是一个糟糕的例子)

这似乎在
ggplot
中引发了一些奇怪的行为,我想知道为什么会这样。我希望下面的图包含对角线上的点,每个轴上的物种名称相互匹配。相反,所有东西都列在x轴的
setosa
下,然后在y轴的实际种类下

我意识到这个例子不会出现在任何现实的使用场景中,它只是作为一个有趣的怪癖打动了我。为什么
ggplot
会这样

我也在mtcars数据集上尝试过,得到了同样的效果

library("ggplot2")
data(iris)
ggplot(iris, aes(Petal.Width, Petal.Length, colour=Species)) +
  geom_point() +
  theme_bw() +
  facet_grid(Species~Species)

这是因为您没有任何关于ggplot2打印组合的信息,例如setosa和versicolor

在这段代码中,我重用@samcomment,并对我们正在创建的新列物种进行采样(更改顺序)。这创造了一个物种组合。从生态学角度讲,像我这样做可能会产生误导,但可以肯定的是,它将物种打印在不同的方格组合中

library("ggplot2")
data(iris)
iris$Species1 <- sample(iris$Species)
ggplot(iris, aes(Petal.Width, Petal.Length, colour=Species)) +
  geom_point() +
  theme_bw() +
  facet_grid(Species~Species1)
库(“ggplot2”)
数据(iris)

iris$Species1您可能对
GGally::ggpairs()
…哈,是的,我是在认为应该建立散点图矩阵之后得出这个结论的!不知道为什么会发生这种情况,但我认为通过创建另一个变量
iris$Species1,您可以得到您想要的
iris$Year <- rep(2010:2014,dim(iris)[2])
ggplot(iris, aes(Petal.Width, Petal.Length, colour=Species)) +
  geom_point() +
  theme_bw() +
  facet_grid(Year~Species)