gpt4 book ai didi

r - ggplot2 上的 Stat_smooth 未显示

转载 作者:行者123 更新时间:2023-12-02 01:23:27 27 4
gpt4 key购买 nike

我正在尝试向我的 ggplot 添加一条 lm 行,代码如下所示:

# RING data:
#### Read data & Converting factors ####
dat <- read.table("RING R kopi.txt", header=TRUE)
str(dat)
dat$Vial <- as.factor(dat$Vial)
dat$Line <- as.factor(dat$Line)
dat$rep <- as.factor(dat$rep)
dat$fly <- as.factor(dat$fly)
str(dat)

datSUM <- summaryBy(t05+t10+t15+t20+t25+t30~rep+Conc+Sex+Line+Vial,data=dat, FUN=sum)
fl<-levels(datSUM$Line)
datA <- droplevels(datSUM[datSUM$Conc=="a",])
datB <- droplevels(datSUM[datSUM$Conc=="b",])
datC <- droplevels(datSUM[datSUM$Conc=="c",])
datD <- droplevels(datSUM[datSUM$Conc=="d",])
datE <- droplevels(datSUM[datSUM$Conc=="e",])
datX <- droplevels(datSUM[datSUM$Conc=="x",])
datY <- droplevels(datSUM[datSUM$Conc=="y",])


c <- ggplot(Line, t05.sum, data= datA, facets=Sex~rep)
c + stat_smooth(method=lm, fullrange = TRUE) + geom_point()

脚本运行但没有添加任何行,我也尝试过使用

c + stat_smooth(method=lm) + geom_point()
c + stat_smooth(method=lm, fullrange=TRUE, alpha = 0.05) + geom_point()
c <- qplot(aes(y=Line, x=t05.sum), data= datA, facets=Sex~rep)
c + stat_smooth(method=lm, fullrange = TRUE) + geom_point()

结果: enter image description here

数据集的子集:

structure(list(rep = structure(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), .Label = c("1", "2", "3"), class = "factor"), Conc = structure(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), .Label = "a", class = "factor"), Sex = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L ), .Label = c("f", "m"), class = "factor"), Line = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 1L, 1L, 1L, 1L, 1L), .Label = c("20", "23", "40", "73"), class = "factor"), Vial = structure(c(3L, 14L, 24L, 31L, 38L, 4L, 12L, 21L, 26L, 35L, 6L, 8L, 9L, 37L, 40L, 2L, 10L, 11L, 28L, 33L, 13L, 15L, 18L, 22L, 27L), .Label = c("89", "92", "102", "112", "113", "118", "124", "126", "137", "138", "139", "152", "154", "155", "161", "163", "166", "168", "171", "173", "179", "182", "184", "185", "187", "201", "203", "205", "215", "218", "220", "222", "225", "231", "240", "245", "251", "252", "260", "267"), class = "factor"), t05.sum = c(39.15, 63.99, 44.55, 25.65, 54.24, 8.37, 72.09, 19.17, 56.43, 78.24, 140.13, 29.43, 19.71, 100.32, 92.16, 11.61, 71.55, 76.41, 123.39, 142.29, 56.97, 66.15, 21.33, 66.15, 33.75), t10.sum = c(59.67, 79.65, 60.21, 8.91, 85.44, 15.93, 101.79, 41.85, 76.95, 84.96, 98.55, 36.45, 31.59, 115.2, 92.16, 26.88, 90.99, 95.31, 127.17, 173.61, 74.79, 81.27, 38.61, 80.73, 101.25), t15.sum = c(78.57, 107.73, 80.73, 59.67, 118.56, 39.15, 98.01, 75.33, 76.95, 90.24, 122.85, 41.31, 51.57, 126.24, 90.24, 43.99, 111.51, 119.07, 134.73, 190.89, 118.53, 121.47, 68.64, 97.47, 120.69 ), t20.sum = c(92.61, 144.45, 109.35, 89.37, 139.68, 59.13, 103.41, 109.89, 74.25, 105.6, 127.71, 54.81, 75.87, 132.96, 93.12, 65.07, 147.15, 127.17, 147.69, 212.49, 163.35, 138.51, 89.91, 120.15, 142.29), t25.sum = c(102.33, 162.27, 127.71, 113.13, 168.96, 76.41, 125.55, 135.81, 74.79, 114.72, 136.35, 68.31, 95.85, 139.2, 92.64, 111.51, 185.49, 129.87, 145.53, 220.05, 196.83, 151.47, 136.35, 121.23, 154.17), t30.sum = c(127.71, 177.93, 171.45, 148.23, 195.84, 93.69, 145.53, 166.05, 86.13, 122.88, 147.15, 91.53, 119.07, 142.08, 92.16, 147.69, 200.07, 134.73, 140.67, 226.53, 219.51, 150.93, 155.25, 124.47, 144.99 )), .Names = c("rep", "Conc", "Sex", "Line", "Vial", "t05.sum", "t10.sum", "t15.sum", "t20.sum", "t25.sum", "t30.sum"), row.names = c(NA, 25L), class = "data.frame")

最佳答案

我正在使用您发布的 dput 输出作为我的 dataA。

检查 dataA,我们可以看到 Line 是一个因素:

'data.frame':   25 obs. of  11 variables:
$ rep : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
$ Conc : Factor w/ 1 level "a": 1 1 1 1 1 1 1 1 1 1 ...
$ Sex : Factor w/ 2 levels "f","m": 1 1 1 1 1 1 1 1 1 1 ...
$ Line : Factor w/ 4 levels "20","23","40",..: 1 1 1 1 1 2 2 2 2 2 ...
[TRUNCATED]

因此,当您尝试使用“stat_smooth”时,它不知道在尝试拟合平滑器时如何处理线的级别。

在绘图之前,您需要将线条转换为数字。

您可以通过更改数据框来做到这一点:

datA$Line <- as.numeric(as.character(Line)) # need to convert before to char
# or the numeric values will become the internal factor numbers and not the labels

然后你按照你所做的那样进行绘图:

c <- qplot(Line, t05.sum, data= datA, facets=Sex~rep)
c + stat_smooth(method=lm, fullrange = TRUE) + geom_point()

您还可以在 qplot 调用上进行转换,如下所示:

c <- qplot(as.numeric(as.character(Line)), t05.sum, 
data= datA, facets=Sex~rep)

关于r - ggplot2 上的 Stat_smooth 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35935980/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com