我想在R中使用for循环绘制图形。我尝试使用matlab,它可以正常工作。
我已经在matlab中尝试了以下代码:
#matlab code
d=0:400;
for h=1:10:50
w=1./(1+(d.^2/h^2));
plot(d,w);
hold on
end
xlabel('Distance(km)')
ylabel('Weight')
我在R中尝试了以下代码,但似乎不起作用
#R code
h <- c(1,20,50,100,200,400)
d <- seq(40, 420, by=20)
for (i in 1:d) {
w <- 1/(1+(i^2/h^2))
lines(d,w)
}
如何使用for循环在R中复制上述matlab代码?
答案 0 :(得分:0)
以下是使用Tidyverse软件包的一种可能性:
library(tidyverse)
df <-
tibble(
d = rep(0:400, 5),
h = rep(c(1, 11, 21, 31, 41), each = 401)
) %>%
mutate(w = 1 / (1 + (d ^ 2 / h ^ 2)))
df %>%
mutate(h = factor(h)) %>%
ggplot(aes(x = d, y = w, color = h)) +
geom_line() +
labs(
x = "Distance (km)",
y = "Weight"
) +
theme(legend.position = "bottom")