ggplot2“不知道如何为uneval类型的对象自动选择比例。”

1 r ggplot2

Name    Passage growth
P1.X.1  1   42036
P1.X.1  2   42036
P1.X.1  3   42036
P1.X.2  1   42036
P1.X.2  2   42036
P1.X.2  3   42036
P1.X.3  1   42036
P1.X.3  2   42036
P1.X.3  3   42036
P1.X.4  1   42036
P1.X.4  2   42036
P1.X.4  3   42036
P1.X.1  1   42036
P1.X.1  2   42036
P1.X.1  3   42036
P1.X.2  1   42036
P1.X.2  2   42036
P1.X.2  3   42036
P1.X.3  1   42036
P1.X.3  2   42036
P1.X.3  3   42036
P1.X.4  1   42036
P1.X.4  2   42036
P1.X.4  3   42036

P.Plot <- qplot(aes(y = as.numeric(D.Subset$growth)), 
    data = D.Subset, x = as.numeric(D.Subset$Passage), 
    main = D.Subset$Name, geom = "line", facets = Name ~ .)
Run Code Online (Sandbox Code Playgroud)

错误信息:

"Don't know how to automatically pick scale for object of type uneval. Defaulting to continuous
Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : 
  cannot coerce class ""uneval"" to a data.frame"
Run Code Online (Sandbox Code Playgroud)

添加了完整的代码:

我的xlsx文件:

UCPDate Date Sample Passage CellPlated Days CellCount Squares Volume VolPlated 
150901 150915 P1.X.1 1 25000 4 125 4 1,40 125 
150901 150916 P1.X.1 2 25000 4 124 4 1,40 124 
150901 150917 P1.X.1 3 25000 3 153 4 1,40 153 
150901 150915 P1.X.2 1 25000 4 176 4 1,40 176 
150901 150916 P1.X.2 2 25000 2 124 4 1,40 124 
150901 150917 P1.X.2 3 25000 3 135 4 1,40 135 
150901 150915 P1.X.3 1 25000 4 135 4 1,40 135 
150901 150916 P1.X.3 2 25000 2 142 4 1,40 142 
150901 150917 P1.X.3 3 25000 4 175 4 1,40 175 
150901 150915 P1.X.4 1 25000 5 157 4 1,40 157 
150901 150916 P1.X.4 2 25000 6 143 4 1,40 143 
150901 150917 P1.X.4 3 25000 4 143 4 1,40 143 
150903 150915 P1.X.1 1 25000 4 125 4 1,40 125 
150903 150916 P1.X.1 2 25000 4 124 4 1,40 124 
150903 150917 P1.X.1 3 25000 3 153 4 1,40 153 
150903 150915 P1.X.2 1 25000 4 176 4 1,40 176 
150903 150916 P1.X.2 2 25000 2 124 4 1,40 124 
150903 150917 P1.X.2 3 25000 3 135 4 1,40 135 
150903 150915 P1.X.3 1 25000 4 135 4 1,40 135 
150903 150916 P1.X.3 2 25000 2 142 4 1,40 142 
150903 150917 P1.X.3 3 25000 4 175 4 1,40 175 
150903 150915 P1.X.4 1 25000 5 157 4 1,40 157 
150903 150916 P1.X.4 2 25000 6 143 4 1,40 143 
150903 150917 P1.X.4 3 25000 4 143 4 1,40 143
Run Code Online (Sandbox Code Playgroud)

我的骂人:

#----------------------dont change----------------------------------
if(require("xlsxjars") == FALSE){
  install.packages("xlsxjars")
  require("xlsxjars")
}

if(require("xlsx") == FALSE){
  install.packages("xlsx")
  require("xlsx")
}

if(require("ggplot2") == FALSE){
  install.packages("ggplot2")
  require("ggplot2")
}

D.Data <- read.xlsx(V.FileName, 
                sheetIndex = 1)

#-----------------------------------growth rate

L.CurrentCells <- ((D.Data["CellCount"] / D.Data["Squares"]) * 10000 * D.Data["Volume"])

D.Data$growth <- (L.CurrentCells / D.Data["CellPlated"]) ^ (1/D.Data["Days"])

#---------------------------------------------

L.Pieces <- unique(D.Data$UCPDate)

for(i in 1:length(L.Pieces)){

  D.Subset <- subset(D.Data, UCPDate == L.Pieces[i])  

  P.Plot1 <- ggplot(D.Subset, 
    aes(x=Passage,y=growth)) + 
    geom_line() +
    facet_grid(Sample~.)

    P.Plot1
}
Run Code Online (Sandbox Code Playgroud)

有没有人有办法解决吗?

Her*_*oka 5

如果查看qplot的帮助,您会发现qplot不会使用es。

因此,您可以使用ggplot构建图:

P.Plot1 <- ggplot(D.Subset, 
                 aes(x=Passage,y=growth)) + 
                geom_line() +
                facet_grid(Name~.)
Run Code Online (Sandbox Code Playgroud)

或从qplot调用中删除aes:

P.Plot2 <- qplot(data = D.Subset, 
                y = growth, 
                x = Passage, geom = "line", facets = Name ~ .)
Run Code Online (Sandbox Code Playgroud)

请注意,对于这两种解决方案,您都已经指定了一个数据框。因此,您可以只使用列名,而无需使用D.Subset$growth。在绘制之前,最好将数据转换为数字(如果需要)。

两者都导致: 在此处输入图片说明