簡體   English   中英

scatterPlot出錯

[英]error with scatterPlot

我正在使用來自openair包的R的scatterPlot繪制軌跡(緯度與經度)。 使用“組”選項對軌跡進行分組時,不會繪制最后一個組。 這是一個示例代碼:

df = data.frame(name = c(rep('C1',10),rep('C2',10),rep('C3',10),rep('C4',10)),
            lat = seq(1,100,2.5),
            lon = seq(101,200,2.5))
scatterPlot(df    ,x = "lon", y = "lat", group = "name",map = TRUE )
scatterPlot(df    ,x = "lon", y = "lat")

此外,我在嘗試在后台繪制地圖時出錯:“使用數據包1時出錯。長度為零的參數i”

openair錯誤scatterPlot

謝謝伊利克

似乎是代碼中的錯誤(基於lattice :: xyplot)。 openair::scatterPlot的代碼看起來很業余:

# ------segment where `group` parameter is passed to lattice code ---
    id <- which(names(mydata) == group)
    names(mydata)[id] <- "MyGroupVar"
    plotType <- if (!Args$traj) 
        c("p", "g")
    else "n"
    if (method == "scatter") {
        if (missing(k)) 
            k <- NULL
        Type <- type
        xy.args <- list(x = myform, data = mydata, groups = mydata$MyGroupVar, 
            type = plotType, as.table = TRUE, scales = scales, 
    #---- end of extract

使用重命名分組變量的躲閃然后使用$與mydata$MyGroupVar是一個黑客攻擊。 應該用mydata[[group]]做得更簡單,更不容易出錯。 建議你要求修復bug。

如果執行traceback()您可以看到生成數據包錯誤時傳遞的參數:

traceback()4:xyplot.formula(x = lat~lon | default,data = list(lon = c(101,103.5,106,108.5,111,113.5,116,118.5,121,123.5,126,128.5,131 ,133.5,136,138.5,141,143.5,146,148.5,151,153.5,156,158.5,161,163.5,166,168.5,171,173.5,176,178.5,181,183.5,186,188.5,191,193.5 ,196,198.5),lat = c(1,3.5,6,8.5,11,13.5,16,18.5,21,23.5,26,28.5,31,33.5,36,38.5,41,43.5,46,48.5, 51,53.5,56,58.5,61,63.5,66,68.5,71,73.5,76,78.5,81,83.5,86,88.5,91,93.5,96,98.5),默認= c(1L,1L,1L ,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L ,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L),MyGroupVar = c(1L,1L,1L,1L,1L,1L,1L,1L,1L,1L, 1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L, 1L,1L,1L,1L,1L)),groups =“name”,type = c(“p”,“g”),as.table = TRUE,

(我認為)......“名稱”周圍的引號可能會導致錯誤。 它應該作為一個未引用的,真正的R名稱/符號傳遞。

我認為你可以用普通的格子非常接近你想要的東西:

xyplot(data=df  ,  lon~lat, groups = name, auto.key=TRUE, grid=TRUE)

在此輸入圖像描述

如果您需要調整它,請參閱?xyplot

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM