【问题标题】:How to visualize a multiline graphic in R?如何在 R 中可视化多线图形?
【发布时间】:2015-03-15 20:25:47
【问题描述】:

我有以下 R 代码,它可视化多线图,其中每条线对应于一个数据类别。在代码中,类别被赋予了我的变量 nk: 我的数据集如下所示:

k   precision   recall
0.25    0.02    1.011
0.25    0.04    1.011
0.5 0.15    0.941
0.5 0.17    0.931
0.5 0.18    0.921
0.5 0.19    0.911
1.0 0.36    0.831
1.0 0.39    0.811
1.0 0.41    0.801

问题在于它只可视化 k = 1.0 的线,而不是 k = 0.5 和 0.25 的线 我的问题是?我如何使用不是的 nk 变量 一个整数以便可视化 k = 0.5 或 0.25 的线?

dtf$k <- as.numeric(dtf$k)
nk <- max(dtf$k)
xrange <- range(dtf$precision)
yrange <- range(dtf$recall)
plot(xrange, yrange,
 type="n",
 xlab="Precision",
 ylab="Recall"
 )
colors <- rainbow(nk)
linetype <- c(1:nk)
plotchar <- seq(18, 18+nk, 1)
for (i in 1:nk) {
 Ki <- subset(dtf, k==i)
 lines(Ki$precision, Ki$recall,
 type="b",
 lwd=2,
 lty=linetype[i],
 col=colors[i],
 pch=plotchar[i]
 )
}
title("Methods varying K", "Precision Recall")
legend(xrange[1], yrange[2],
 1:nk,
 cex=1.0,
 col=colors,
inset=c(-0.2,0),
 pch=plotchar,
 lty=linetype,
 title="k"
) 

【问题讨论】:

    标签: r graphics datavisualization.toolkit


    【解决方案1】:

    数据

        dtf <- read.table(header = TRUE, text = 'k   precision   recall
    0.25    0.02    1.011
    0.25    0.04    1.011
    0.5 0.15    0.941
    0.5 0.17    0.931
    0.5 0.18    0.921
    0.5 0.19    0.911
    1.0 0.36    0.831
    1.0 0.39    0.811
    1.0 0.41    0.801')
    dtf$k <- factor(dtf$k)
    

    ggplot2解决方案

    require(ggplot2)
    ggplot(dtf, aes(x = precision, y = recall, col = k)) +
      geom_line()
    

    基础溶液

    plot(recall ~ precision, data = dtf, type = 'n')
    cols = c('red', 'blue', 'green')
    levs <- levels(df$k)
    for(i in seq_along(levs)){
      take <- df[df$k == levs[i], ]
      lines(take$precision, take$recall, col = cols[i])
    }
    

    【讨论】:

    • 感谢您的回答,但是当我调用 ggplot 函数来设计线条时,它给了我一个错误。错误是这个:Errore in withCallingHandlers(tryCatch(evalq((function (i) : oggetto ".rcpp_warning_recorder" non trovato)》
    • 用我的示例数据?!还是使用您的实际数据?
    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    相关资源
    最近更新 更多