【问题标题】:Plot vectors of different length with ggplot2用 ggplot2 绘制不同长度的向量
【发布时间】:2012-03-19 10:28:25
【问题描述】:

我有 8 个不同长度的数据向量(MAP 分数)(评级的文档数量不同),从 80 到 500。我如何将它们读入 R 并在 ggplot2 中将它们绘制成相同的长度?将它们视为从 0 到 1 的不同数量的数据点。它们应该按比例缩小/放大,以便它们适合同一个图表。并为图片添加更平滑的效果。分数范围从 0 到 1。 例如,我有向量

vec1 = [1,0.8,0.6,0.8,0.6,0.6] # => +
vec2 = [1,0.8,0.6,0.4] # => *

情节应该是这样的:

+   
  +*  +
    +  *+  +
           *

但有线条。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    给你。

    dat <- list(
      vec1 = c(1,0.8,0.6,0.8,0.6,0.6), # => +
      vec2 = c(1,0.8,0.6,0.4) # => *)
    )
    
    addX01 <- function(x, label="A"){
      n <- length(x) - 1
      data.frame(x=seq(0, 1, by=(1/n)), y=x, label=label)
    }
    
    raggedListToDf <- function(x, labels=LETTERS[seq_along(x)]){
      do.call(rbind, lapply(seq_along(x), function(i) addX01(x[[i]], label=labels[i])))
    }
    
    
    plotData <- raggedListToDf(dat, labels=c("*", "+"))
    
    ggplot(plotData, aes(x, y, label=label, group=label)) + geom_text()
    

    【讨论】:

    • 不错的答案。线图也有效。平滑会是另一个答案吗?
    猜你喜欢
    • 2017-07-21
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多