使用 abline(lm()) 时无法添加 axis() 进行绘图,为什么?
I can't add axis() to plot when using abline(lm()), why?
我很挣扎,因为我只是想将我自己的 x 轴值和刻度线添加到也显示线性回归的图中。
似乎或者我添加了 abline 或者我添加了轴。我不能两者都做!
为什么?
示例数据:
df = data.frame(year = c(1901:2000), total = ceiling(runif(100, 2, 3000)))
此代码仅适用于 abline():
plot(df$year, df$total, xaxt='n')
abline(lm(df$total ~ df$year))
axis(1, at = seq(1,100, by = 10), labels = seq(1901, 2000, by = 10)) #this line does not work
此代码仅适用于 axis():
plot(df$total, xaxt='n')
abline(lm(df$total ~ df$year)) #this line does not work
axis(1, at = seq(1,100, by = 10), labels = seq(1901, 2000, by = 10))
有什么帮助吗?
谢谢
x 轴不一定从 1 到 100。单位由变量的比例定义。
在您的第一个示例中,x 轴实际上是从 1901 到 2000。因此您需要在该范围内定义 at
,否则您的值会落在绘图之外并且不可见。简单地做:
plot(df$year, df$total, xaxt='n')
abline(lm(df$total ~ df$year))
axis(1, at = seq(1901, 2000, by = 10))
您的 axis
调用的第二个示例有效,因为您在 x 轴上绘制 index
,它仅从 1 计数到 n 个观测值(在这种情况下为 100)。 abline
不可见,因为它不在该图的范围内。
我很挣扎,因为我只是想将我自己的 x 轴值和刻度线添加到也显示线性回归的图中。
似乎或者我添加了 abline 或者我添加了轴。我不能两者都做!
为什么?
示例数据:
df = data.frame(year = c(1901:2000), total = ceiling(runif(100, 2, 3000)))
此代码仅适用于 abline():
plot(df$year, df$total, xaxt='n')
abline(lm(df$total ~ df$year))
axis(1, at = seq(1,100, by = 10), labels = seq(1901, 2000, by = 10)) #this line does not work
此代码仅适用于 axis():
plot(df$total, xaxt='n')
abline(lm(df$total ~ df$year)) #this line does not work
axis(1, at = seq(1,100, by = 10), labels = seq(1901, 2000, by = 10))
有什么帮助吗? 谢谢
x 轴不一定从 1 到 100。单位由变量的比例定义。
在您的第一个示例中,x 轴实际上是从 1901 到 2000。因此您需要在该范围内定义 at
,否则您的值会落在绘图之外并且不可见。简单地做:
plot(df$year, df$total, xaxt='n')
abline(lm(df$total ~ df$year))
axis(1, at = seq(1901, 2000, by = 10))
您的 axis
调用的第二个示例有效,因为您在 x 轴上绘制 index
,它仅从 1 计数到 n 个观测值(在这种情况下为 100)。 abline
不可见,因为它不在该图的范围内。