Легенда на графике не отображается, также по оси Y не отображаются все метки
Я действительно новичок в программировании. Я хочу построить некоторые данные, и все работает, кроме моей легенды, с некоторыми данными о линейной регрессии, которую я сделал. Также кажется, что ось 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, также без текстового поля, показывающего:
1 ответ
x
а также y
аргументы в text()
функции связаны с соответствующими координатами данных. Таким образом, вы можете указать значения в соответствии с тем, где должна отображаться текстовая легенда. Там не требуется места после \n
,
text(x = 50, y = 9, labels= "slope = 3.391e-03 \nintercept = 8.012e+00 \nR2 = 0.9967 \nP = 2.2e-16")
Чтобы исправить проблему по оси Y, просто добавьте ylim = c(7.5, 11)
внутри plot(.)
,
После того, как вы это сделали, вероятно, лучше всего экспортировать график, например, через 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()
найти его).