【问题标题】:add ticks to parcoord (parallel coordinates plot)向 parcoord 添加刻度(平行坐标图)
【发布时间】:2014-05-08 21:52:14
【问题描述】:

MASS 包中的 parcoord 函数看起来还不错,但是我怎样才能将刻度添加到 四个y轴?

代码在这里:

 ir <- rbind(iris3[,,1], iris3[,,2], iris3[,,3])
 parcoord(log(ir)[, c(3, 4, 2, 1)], col = 1 + (0:149)%/%50)

【问题讨论】:

    标签: r data-visualization mass


    【解决方案1】:

    您是否尝试在parcoord 函数中设置var.label=T?这还不够吗?

    否则我没有看到任何简单的方法来使用默认功能更改轴。但事实证明这个功能很短,我们可以很容易地从它那里窃取想法,然后制作我们自己的版本。这是修改它的一种方法

    parcoordlabel<-function (x, col = 1, lty = 1,  lblcol="blue",...) 
    {
        df <- as.data.frame(x)
        pr <- lapply(df, pretty)
        rx <- lapply(pr, range, na.rm = TRUE)
        x <- mapply(function(x,r) {
                (x-r[1])/(r[2]-r[1])
            },
            df, rx)
        matplot(1L:ncol(x), t(x), type = "l", col = col, lty = lty, 
            xlab = "", ylab = "", axes = FALSE, ...)
        axis(1, at = 1L:ncol(x), labels = colnames(x))
        for (i in 1L:ncol(x)) {
            lines(c(i, i), c(0, 1), col = "grey70")
            text(c(i, i), seq(0,1,length.out=length(pr[[i]])), labels = pr[[i]], 
                xpd = NA, col=lblcol)
        }
        invisible()
    }
    

    你可以用

    运行它
    ir <- log(rbind(iris3[,,1], iris3[,,2], iris3[,,3]))[,c(3,4,2,1)]
    parcoordlabel(ir, col = 1 + (0:149)%/%50)
    

    现在我承认它有点难看。但希望你能很好地理解这些作品,以定制你喜欢的方式

    【讨论】:

      猜你喜欢
      • 2020-01-07
      • 2013-06-14
      • 1970-01-01
      • 2019-12-14
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多