R语言中简单的拟合作图

a=1:10
b=seq(10,100,10)
作出 y=a*x+b的十条线的图

“Devil组”引证GPT后的撰写:
用ggplot2包来制作这种类型的图。以下是一个简单的示例代码,可以绘制10条线,每条线的斜率都是1,截距从10到100。

library(ggplot2)

# 创建数据框
df <- data.frame(x = rep(1:10, 10), 
                 y = rep(1:10, each = 10) + rep(seq(10, 100, 10), each = 10))

# 绘图
ggplot(df, aes(x = x, y = y, group = factor(y))) + 
  geom_line() +
  labs(x = "X", y = "Y", title = "10 Lines with y = x + b")


这将生成一个带有10条线的图,每条线都具有相同的斜率,但截距从10到100变化。您可以通过修改seq(10, 100, 10)中的参数来更改截距的范围。

library(ggplot2)

a <- 1:10
b <- seq(10, 100, 10)

# 创建一个包含 x 值的数据框
df <- data.frame(x = 1:100)

# 创建 y 值的向量
y <- NULL
for (i in 1:10) {
  y <- cbind(y, a[i] * df$x + b[i])
}

# 将 y 值和 x 值组合成数据框
df <- cbind(df, y)

# 将数据框变成长格式,方便绘图
df_long <- reshape2::melt(df, id.vars = "x", value.name = "y", variable.name = "line")

# 绘图
ggplot(data = df_long, aes(x = x, y = y, color = line)) +
  geom_line() +
  scale_color_discrete(name = "Line", labels = 1:10) +
  theme_classic()