【问题标题】:Legend in plot not showing, also y-axis not showing all labels图中的图例未显示,y 轴也未显示所有标签
【发布时间】:2018-07-08 10:41:54
【问题描述】:

我对编程真的很陌生。 我想绘制一些数据,除了我的图例以及我所做的线性回归的一些数据之外,一切都在工作。 此外,y 轴的格式似乎不正确,因为第一个和最后一个标签没有像 x 轴那样显示。 有人可以解释一下,如何显示我的文本图例以及如何正确格式化轴吗?

x <- c(0, 100, 200, 300, 400, 500, 600, 700, 800, 700, 600, 500, 400, 300, 200, 100, 0)
y <- c(7.93, 8.38, 8.79, 9.08, 9.4, 9.72, 10.04, 10.35, 10.66, 10.37, 10.06, 9.73, 9.41, 9.06, 8.64, 8.36, 7.93)
x_name <- "gewicht"
y_name <- "auslenkung"
df <- data.frame(x,y)
names(df) <- c(x_name, y_name)
plot(df$gewicht, df$auslenkung,
     xaxt = "n",
     yaxt = "n",
     col = "red",
     xlab = "Belastung [g]",
     ylab = "Längenänderung [mm]",
     main = "Änderung des Länge eines Messingdrahtes",
     frame.plot = FALSE)
axis(1, at = seq(0, 800, by = 100), las= 2)
axis(2, at = seq(7.5, 11, by = 0.5), las= 2)

fit1 <- lm(auslenkung ~ gewicht, data = df)
abline(fit1, lty = "dashed")
text(x = , y = 0,labels= "slope = 3.391e-03 \n intercept = 8.012e+00 \n R2 = 0.9967 \n P = 2.2e-16")

我真的很缺乏经验,所以欢迎任何帮助。

使用格式正确的 x 轴和错误的 y 轴绘图,也没有显示文本框:

【问题讨论】:

  • 在你最后的text 语句中,你有x = 没有指定值。此外,您指定了 y=0 ,这将远离屏幕。试试x=600, y=8.2
  • 哦,你是对的。我曾经有过,但在发布代码之前我更改了值,然后我忘记了它们。谢谢,知道我可以看到它:)
  • @B.Tarno 如果我在下面的回答解决了您的问题,请标记为已接受。这可以防止其他用户将时间花在已经回答的问题上。要将答案标记为已接受,请单击答案旁边的复选标记以将其从灰色切换为已填充。

标签: r plot linear-regression


【解决方案1】:

text()函数中的xy参数与数据对应的坐标相关。因此,您可以根据文本图例应出现的位置指定值。 \n 后面不需要空格。

text(x = 50, y = 9, labels= "slope = 3.391e-03 \nintercept = 8.012e+00 \nR2 = 0.9967 \nP = 2.2e-16")

要纠正 y 轴问题,只需在 plot(.) 中添加 ylim = c(7.5, 11)

完成此操作后,最好导出绘图,例如通过png()

png("test.png", width=1080, height=720, res = 100)
plot(df$gewicht, df$auslenkung, xaxt = "n", yaxt = "n", col = "red", 
     xlab = "Belastung [g]", ylab = "Längenänderung [mm]", 
     main = "Änderung des Länge eines Messingdrahtes", ylim = c(7.5, 11),
     frame.plot = FALSE)
axis(1, at = seq(0, 800, by = 100), las= 2)
axis(2, at = seq(7.5, 11, by = 0.5), las= 2)
fit1 <- lm(auslenkung ~ gewicht, data = df)
abline(fit1, lty = "dashed")
text(x = 50, y = 9, labels= "slope = 3.391e-03 \nintercept = 8.012e+00 \nR2 = 0.9967 \nP = 2.2e-16")
dev.off()

收益

您可以稍微调整一下坐标,将您的图例放在所需的位置。

绘图将保存到您的工作目录中(使用getwd() 定位它)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多