gpt4 book ai didi

r - 条形图最后一部分的绘图线

转载 作者:行者123 更新时间:2023-12-02 00:42:03 25 4
gpt4 key购买 nike

我有一个条形图,后半部分应该符合这个公式: y~a<em>x</em>exp(-b*x^2) .现在我想绘制整个条形图并在条形图的最后部分显示拟合模型,因为它只适用于该部分。但是,我找不到仅在下半年显示折线图的方法。如果我只是做类似的事情


submitted=c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 3L, 2L, 1L, 1L, 4L,
3L, 2L, 11L, 6L, 2L, 16L, 7L, 17L, 36L, 27L, 39L, 41L, 33L, 42L,
66L, 92L, 138L, 189L, 249L, 665L, 224L, 309L, 247L, 641L, 777L,
671L, 532L, 749L, 506L, 315L, 292L, 281L, 130L, 137L, 91L, 40L,
27L, 34L, 19L, 1L)
x=seq(0:(length(submitted)-1))
y1=rs$submitted[30:(length(submitted)-1)]
x1=seq(0:(length(y1)-1))
fit1=nls(y1~a*x1*exp(-b*x1^2),start=list(a=500,b=.01),trace=TRUE)
barplot(submitted,names.arg=x, las=2, cex.axis=0.8, cex=0.8)
lines(predict(fit1))

该行已显示,但位置错误。那么如何控制画线的位置呢?

最佳答案

一个可重现的例子会有所帮助,但问题可能是条形图不在您期望的 x 坐标处。您可以通过捕获 barplot 函数的输出来找出条形的 x 坐标:

dat <- 1:5                   # fake data for barplot
fit <- dat+rnorm(5, sd=0.1) # fake fitted values

bp <- barplot(dat) # draw plot and capture x-coordinates
lines(bp, fit) # add line

编辑:
可以使用相同的原理来添加部分线。稍微重写您的代码以获得索引 idx,显示您要建模的数据部分:

x <- 0:(length(submitted)-1) 
idx <- 30:(length(submitted)-1) # the part of the data to be modeled
y1 <- submitted[idx]
x1 <- idx-30
fit1 <- nls(y1~a*x1*exp(-b*x1^2),start=list(a=500,b=.01),trace=TRUE)
# capture the midpoints from the barplot
bp <- barplot(submitted,names.arg=x, las=2, cex.axis=0.8, cex=0.8)
# subset the midpoints to the range of the fit
lines(bp[idx], predict(fit1))

(请注意,我还将 seq(0:n) 更改为 0:n,因为第一个没有给您 0 到 n 的序列。)

关于r - 条形图最后一部分的绘图线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2274186/

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