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()