Files
Physics-Lab-Report/plot1/plot.R
2024-03-12 02:18:06 -05:00

99 lines
1.7 KiB
R

library(ggplot2)
library(readr)
library(latex2exp)
data_t1 <- read_csv(
"m1,m2,a_measured
0.055,0.060,0.380
0.060,0.065,0.354
0.065,0.070,0.323
0.070,0.075,0.310
0.075,0.080,0.303
0.080,0.085,0.279
0.065,0.075,0.649
0.080,0.095,0.780"
)
a_theoretical <- function(m) {
9.81 * m
}
m_from_masses <- function(m1, m2) {
(m2 - m1) / (m1 + m2)
}
x_lab <- function() {
TeX(r"($M$)")
}
y_lab <- function() {
TeX(r"($a \ \small{m \cdot s^{-2}}$)")
}
lm_eqn <- function(df) {
m <- lm(df)
eq <- substitute(
italic(y) == a + b %.% italic(x),
list(a = format(unname(coef(m)[1]), digits = 3),
b = format(unname(coef(m)[2]), digits = 3))
)
as.character(as.expression(eq))
}
data_t1["M"] <- m_from_masses(data_t1["m1"], data_t1["m2"])
data_t1["a"] <- data_t1$M * 9.8
plt <- ggplot(
data = data_t1,
mapping = aes(x = M, y = a_measured)
) +
geom_point(
col = "#D55E00",
size = 2,
) +
geom_smooth(
se = FALSE,
method = "lm",
linewidth = 0.8,
col = "#D55E00",
) +
theme(
axis.text = element_text(size = 14),
axis.title = element_text(size = 20),
) +
labs(
x = x_lab(),
y = y_lab(),
) +
annotate("text",
label = lm_eqn(data_t1[, c("a_measured", "M")]),
x = 0.076,
y = 0.58,
size = 5,
col = "#D55E00",
parse = TRUE,
) +
annotate("segment",
x = min(data_t1$M),
y = a_theoretical(min(data_t1$M)),
xend = max(data_t1$M),
yend = a_theoretical(max(data_t1$M)),
linewidth = 0.8,
col = "#0072B2",
) +
annotate("text",
label = "Theoretical",
x = 0.068,
y = 0.74,
col = "#0072B2",
size = 5,
)
plt
ggsave("plot.pdf",
plot = plt,
device = cairo_pdf,
)