在ggplot2中创建一个散点图矩阵(pair()等价物)

时间:2010-09-17 12:28:35

标签: r ggplot2

是否可以使用ggplot2绘制散点图矩阵,使用ggplot的优点,例如将其他因素映射到颜色,形状等,并添加更平滑的效果?

我正在考虑与base函数pairs类似的内容。

3 个答案:

答案 0 :(得分:207)

我一直想要这样做,但是plotmatrix是垃圾。 Hadley recommends使用GGally package代替。它有一个函数ggpairs,它是一个极大改进的对图(允许你在数据框中使用非连续变量)。它根据变量类型绘制每个方块中的不同图:

library(GGally)
ggpairs(iris, aes(colour = Species, alpha = 0.4))

enter image description here

答案 1 :(得分:28)

您可能想尝试使用plotmatrix:

  library(ggplot2)
  data(mtcars)
  plotmatrix(mtcars[,1:3])
对我来说,mpg(mtcars中的第一列)不应该是一个因素。我没有检查过,但没有理由为什么它应该是一个。但是我得到了散点图:)


注意:为了将来参考,plotmatrix()函数已被ggpairs()包中的GGally函数替换为@ naught101建议{{3}对这个问题。

答案 2 :(得分:9)

如果想要获得package example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import javafx.application.Application; import javafx.stage.Stage; @SpringBootApplication public class Main extends Application { private ConfigurableApplicationContext ctx ; @Override public void start(Stage primaryStage) { ctx = SpringApplication.run(Main.class); ctx.getBeanFactory().registerResolvableDependency(Stage.class, primaryStage); ctx.getBean(View.class); } @Override public void stop() { ctx.close(); } public static void main(String[] args) { launch(args); } } 对象(ggplot不是ggmatrix),解决方法是将数据融合两次,然后ggpairs()进行分割。在提供ggplot参数的情况下,facet_wrap在限制绘图区域方面优于facet_grid

scales = 'free'

enter image description here