删除 ggpairs 中的密度轴文本

标签 r ggplot2 ggally

我正在尝试删除 ggpairs 中密度图的轴文本。因此,对于这个例子,我希望删除紫色框中的文本:

enter image description here

我相信要删除左上角图中的 y 轴文本,我可能需要更改此代码第三行(最后一行)中打印的函数:

library(GGally)
ps <- ggpairs(diamonds[,c(5,6,7)], upper = list(continuous = wrap("cor", size = 4))) + theme_gray()
attributes(ps[["plots"]][[1]]$fn)["fn"]

我希望将 ps 对象中的这个函数更新为如下所示:

function (data, mapping, ..., rescale = FALSE) 
{
    mapping <- mapping_color_to_fill(mapping)
    p <- ggplot(data, mapping) + scale_y_continuous()
    if (identical(rescale, TRUE)) {
        p <- p + stat_density(aes(y = ..scaled.. * diff(range(x, 
na.rm = TRUE)) + min(x, na.rm = TRUE)), position = "identity", geom = "line", ...) + theme(axis.text.y = element_blank())
    }
    else {
        p <- p + geom_density(...) + theme(axis.text.y = element_blank())
    }
    p
}
<bytecode: 0x10cbcbb00>
<environment: namespace:GGally>

我只是将 theme(axis.text.y = element_blank()) 添加到函数的两个部分。我只是不确定如何在 ps 对象中以这种方式更新函数。我希望做一些事情:

attributes(ps[["plots"]][[1]]$fn)["fn"] <- attributes(ps[["plots"]][[1]]$fn)["fn"] + theme(axis.text.y = element_blank())

除了我添加主题的更多细节(axis.text.y = element_blank())。

具体问题:如何更新此功能? 一般问题:如果具体问题可能不可行,如何删除左上角图中不需要的 y 轴文本和右下图中不需要的 x 轴文本?

感谢您分享想法!

最佳答案

我知道这是一篇旧文章,但我只是偶然发现它并认为它可能对 future 的绘图者有用。

我不知道如何改变你的功能,但删除这些轴很容易。 ggpairs 对象将图存储为矩阵的元素,因此对于那些包含轴(左侧和底部的)的图,您可以直接操作它们。

ps <- ggpairs(diamonds[,c(5,6,7)], upper = list(continuous = wrap("cor", size = 4))) 

ps[1,1] <- ps[1,1] + theme(axis.text.y = element_blank(), 
                           axis.ticks = element_blank())

ps[3,3] <- ps[3,3] + theme(axis.text.x = element_blank(),
                           axis.ticks = element_blank())    

重要的是,theme_gray() 必须从原始分层中删除,因为它将覆盖您所做的其他主题选择。

Here's what the code makes

关于删除 ggpairs 中的密度轴文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52280514/

相关文章:

r - ggpairs 图与相关值的热图,具有重要的星星和自定义主题

r - 如何在成对相关散点图中包含密度着色

将数字四舍五入到 R 中最接近的小数位

r - 箱线图:Matlab 显示关于 R 的不同图形?

r - ggplot2/ggsurvplot : Vectorized input to `element_text()` is not officially supported

r - 在ggplot2中强制密度图的颜色

r - 如何在 R 中仅打破某些循环

r:除了循环似乎别无选择的情况

r - 在 R 中使用 ggplot2 创建多项目时间轴

r - 使用 ggnet2 在 R 中按度数着色