首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印ggpairs图中的单行

打印ggpairs图中的单行
EN

Stack Overflow用户
提问于 2015-02-22 06:58:18
回答 2查看 2.3K关注 0票数 6

我想为mtcar数据集绘制一个ggpairs图,但我只关心mpg和所有其他变量之间的关系,而不是所有变量和所有变量之间的关系。

我将一些列更改为因子。

代码语言:javascript
复制
mtcars$cyl = as.factor(mtcars$cyl)
mtcars$vs = as.factor(mtcars$vs)
mtcars$am = as.factor(mtcars$am)
mtcars$gear = as.factor(mtcars$gear)
mtcars$carb = as.factor(mtcars$carb)

并对图进行随机排序

代码语言:javascript
复制
ggpairs(mtcars, colour = "am", columns = c(1,2,8:11))

有没有办法让我只显示图的第一行?

EN

回答 2

Stack Overflow用户

发布于 2018-07-05 14:02:33

根据tonytonov的回答,我研究了ggpairs输出,找到了一些可以修改以获得所需结果的属性:

代码语言:javascript
复制
gplot <- GGally::ggpairs(data)
gplot$nrow <- 1
gplot$yAxisLabels <- a$yAxisLabels[1]
print(gplot)

这应该只渲染第一行绘图。我不认为有一种简单的方法可以获得不是第一行的单行,因为$nrow的行为类似于一个上限,但简单地重新排序列应该可以做到这一点。

票数 2
EN

Stack Overflow用户

发布于 2018-07-08 11:58:01

有更简单的方法可以使用GGally自己的getPlot()ggmatrix()ggpairs输出中选择一行。要按数字选择行(就像第一个一样),只需在getPlot()中指定i = 1即可。

代码语言:javascript
复制
library(ggplot2)
library(GGally)

pairs <- ggpairs(mtcars, columns = c(1,2,8:11))
plots <- lapply(1:pairs$ncol, function(j) getPlot(pairs, i = 1, j = j))
ggmatrix(
    plots,
    nrow = 1,
    ncol = pairs$ncol,
    xAxisLabels = pairs$xAxisLabels,
    yAxisLabels = primary_var
)

稍微多做一点工作,您就可以使用感兴趣的主变量选择行。只需在以下代码中将primary_var设置为所需变量的名称:

代码语言:javascript
复制
library(ggplot2)
library(GGally)

primary_var <- "mpg"
pairs <- ggpairs(mtcars, columns = c(1,2,8:11))
pvar_pos <- match(primary_var, pairs$xAxisLabels)
plots <- lapply(1:pairs$ncol, function(j) getPlot(pairs, i = pvar_pos, j = j))
ggmatrix(
    plots,
    nrow = 1,
    ncol = pairs$ncol,
    xAxisLabels = pairs$xAxisLabels,
    yAxisLabels = primary_var
)

注意:在默认情况下,您选择的几乎任何行都会有1+空图,其中只包含变量之间的相关性。您可以通过更改ggpairs()中的upper参数来更改此设置。有关详细信息,请查看文档。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28652380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档