r - 不同点大小的相关散点矩阵图(R 中)

标签 r matrix plot scatter-plot

我刚刚遇到了十字架this nice code这使得这个散点矩阵图:

alt text
(来源:free.fr)

并希望通过使点的大小/颜色(在下三角形中)根据出现的该类型选项的数量而不同(例如抖动可能产生的效果),将其实现为 likret 比例变量(1 到 5 的整数)已经给了我)。

关于如何在基本绘图机制上执行此操作有什么想法吗?

更新:

我做了以下功能,但不知道如何让点的比例始终“良好”,你觉得怎么样?

panel.smooth2 <- function (x, y, col = par("col"), bg = NA, pch = par("pch"), 
                    cex = 1, col.smooth = "red", span = 2/3, iter = 3, ...) 
{
    require(reshape)
    z <- merge(data.frame(x,y), melt(table(x ,y)),sort =F)$value
    z <- z/ (4*max(z)) 

    symbols( x, y,  circles = z,#rep(0.1, length(x)), #sample(1:2, length(x), replace = T) ,
            inches=F, bg="blue", fg = bg, add = T)

    # points(x, y, pch = pch, col = col, bg = bg, cex = cex)
    ok <- is.finite(x) & is.finite(y)
    if (any(ok)) 
        lines(stats::lowess(x[ok], y[ok], f = span, iter = iter), 
            col = col.smooth, ...)
}



a1 <- sample(1:5, 100, replace = T)
a2 <- sample(1:5, 100, replace = T)
a3 <- sample(1:5, 100, replace = T)
aa <- data.frame(a1,a2,a3)


pairs(aa , lower.panel=panel.smooth2)

最佳答案

您可以使用“符号”(类似于“lines”、“abline”等方法)

此方法可以让您在一行代码中对符号大小和颜色进行细粒度控制。

使用“符号”,您可以设置符号大小、颜色和形状。形状和大小是通过传入每个符号大小的向量并将其绑定(bind)到“圆形”、“正方形”、“矩形”或“星形”来设置的,例如,“星形”= c(4, 3, 5, 1).颜色用“bg”和/或“fg”设置。

symbols( x, y, circles = circle_radii, inches=1/3, bg="blue", fg=NULL) 

如果我理解你问题的第二部分,你需要合理地确定你用来缩放图中符号的函数是以有意义的方式实现的。 'symbols' 函数根据 'z' 变量(或 data.frame 列等)中的值缩放(例如)圆的半径。在下面的行中,我设置了最大符号大小(半径)为 1/3 英寸——除最大符号外,每个符号的半径都小一些,按该数据点的值与最大值的比率进行缩放。比那个比例 这是一个好的选择吗?我不知道——在我看来,直径或特别是周长可能更好。无论如何,这都是一个微不足道的改变。总之,传入“圆”的“符号”将与“z”坐标成比例地缩放符号的半径——可能最适合连续变量。我会使用颜色('bg')来表示离散变量/因子。

使用“符号”的一种方法是调用绘图函数并传入 type='n',这将创建绘图对象但禁止绘制符号,以便您接下来可以使用“符号”函数绘制它们。

我不会推荐“cex”用于此目的。 “cex”是文本大小和符号大小的缩放因子,但它影响这两个绘图元素中的哪一个取决于您将其传入的时间 - 如果您通过“par”设置它,那么它会作用于出现的大部分文本在情节上;如果您在“绘图”函数中设置它,则会影响符号大小。

关于r - 不同点大小的相关散点矩阵图(R 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593643/

相关文章:

mysql - 在 IBrokers 包上保存时间戳

python - 计算大型相关矩阵的内存有效方法?

python - 高效的 Matplotlib 重绘

r - 删除包含两个字符串和一个在 R 中出现一次或两次的因子的列

R corrplot - 获得小的压缩图

python - Matplotlib 颜色条 : __init__() got an unexpected keyword argument 'location'

r - 有条件地从两个数据文件中添加某些数据列

r - 在Rstudio中使用Knitr编译pdf时出错

r - 如何使用 geom_contour_fill 制作离散渐变色条?

c - 如何读取动态分配矩阵的元素,其中每个元素都是一个结构