blob: 0af5e69f4a454f7541ce6a0cf70fe46851613d3d [file] [log] [blame]
library(ggplot2)
library(svglite)
library(zoo)
library(dplyr)
inflect <- function(x, threshold = 1){
up <- sapply(1:threshold, function(n) c(x[-(seq(n))], rep(NA, n)))
down <- sapply(-1:-threshold, function(n) c(rep(NA,abs(n)), x[-seq(length(x), length(x) - abs(n) + 1)]))
a <- cbind(x,up,down)
list(minima = which(apply(a, 1, min) == a[,1]), maxima = which(apply(a, 1, max) == a[,1]))
}
drawMinimums <- TRUE
drawSmoothedCurve <- FALSE
if (drawMinimums) {
filenames <- c('160K_uh8.5_2', '170K_uh8.5', '180K_uh8.5', '190K_uh8.5', '190K_uh7.5', '200K_uh8.5')
} else {
filenames <- c('160K_uh7.5', '160K_uh8.5_3', '170K_uh7.5', '180K_uh7.5', '190K_uh7.5', '200K_uh8.5', '160K_uh8.5_2', '160K_uh8.5', '170K_uh8.5', '180K_uh8.5', '190K_uh8.5')
}
dependanceOnTFilenames <- c('160K_uh8.5_2', '170K_uh8.5', '180K_uh8.5',
#'190K_uh8.5',
'190K_uh7.5', '200K_uh8.5')
for (filename in filenames) {
temp <- gsub("(\\d+)K_.*", "\\1", filename)
uh <- gsub(".*_uh([^_]+).*", "\\1", filename)
table <- read.table(paste0('dades/', filename, '.txt'), sep="\t", dec=',', header=TRUE)
table$Smooth_IA <- rollmean(table$IA, k = 60, align = "center", fill = NA)
bottoms <- inflect(table$Smooth_IA, threshold = 2)$minima
#print(bquote("T =" ~ .(temp) ~ "K;" ~ "U"[h]~"=" ~ .(uh) ~ "V"))
#print(table$U1[bottoms])
pplot <- ggplot(table, aes(x = U1, y = Smooth_IA))
if (drawMinimums) {
min_vals <- read.table(paste0('dades/', filename, '_minims.txt'), sep="\t", dec=",", header=TRUE)
if (drawSmoothedCurve) {
pplot <- pplot +
geom_line(aes(x = U1, y = IA), colour = "#FCC8C5") +
geom_line(colour = "#F8766D") +
geom_vline(data = min_vals, aes(xintercept = U1), linetype = "dashed", color="#FAA49E")
} else {
pplot <- pplot +
geom_line(aes(x = U1, y = IA), colour = "#F8766D") +
geom_vline(data = min_vals, aes(xintercept = U1), linetype = "dashed", color="#FAA49E")
}
} else {
pplot <- pplot +
geom_line(aes(x = U1, y = IA), colour = "#F8766D")
}
pplot <- pplot +
xlab(bquote(U["1"] ~ "(V)")) +
ylab(bquote(I[A] ~ "(nA)")) +
ggtitle(bquote("T =" ~ .(temp) ~ "ºC;" ~ "U"[h]~"=" ~ .(uh) ~ "V")) +
theme(legend.position = "none", text = element_text(family = "Montserrat"))
outfilenamesuffix <- ""
if (drawMinimums) {
outfilenamesuffix <- "_minims"
}
ggsave(paste0('output/', filename, outfilenamesuffix, '.svg'), pplot, width = 6.6, height = 3.75, bg = "transparent")
}
abs_data <- NA
for (filename in dependanceOnTFilenames) {
temp <- gsub("(\\d+)K_.*", "\\1", filename)
min_vals <- read.table(paste0('dades/', filename, '_minims.txt'), sep="\t", dec=",", header=TRUE)
ur_diffs <- diff(min_vals$U1)
ns <- min_vals$n[-1]
ur_diffs_data <- data.frame(n = ns, UR_diff = ur_diffs)
ur_diffs_data$T <- temp
if (!is.data.frame(abs_data)) {
abs_data <- ur_diffs_data
} else {
abs_data <- rbind(abs_data, ur_diffs_data)
}
print(paste0('T=', temp))
print(paste0('Mean: ', mean(ur_diffs)))
print(paste0('Unc. mean: ', sd(ur_diffs)/sqrt(length(ur_diffs))))
}
urplot <- ggplot(data = abs_data, aes(x = n, y = UR_diff, color = T)) +
geom_line() +
scale_x_continuous(breaks = function(x) unique(floor(pretty(3:11)))) +
xlab("n") +
ylab(bquote(U[R] ~ "(V)")) +
ylim(4, 5.4) +
labs(color = "T (ºC)") +
theme(text = element_text(family = "Montserrat"))
ggsave('output/ur_for_different_ts.svg', urplot, width = 6.6, height = 3.75, bg = "transparent")
boxp1plot <- ggplot(data = abs_data, aes(x = T, y = UR_diff, color = T)) +
geom_boxplot() +
xlab("T (ºC)") +
ylab(bquote(U[R] ~ "(V)")) +
#ylim(4, 5.4) +
theme(legend.position = "none", text = element_text(family = "Montserrat"))
ggsave('output/mean_ur_vs_t_boxplot.svg', boxp1plot, width = 6.6, height = 3.75, bg = "transparent")
abs_data.summary <- abs_data %>%
group_by(T) %>%
summarise(
sd = sd(UR_diff, na.rm = TRUE)/sqrt(n()),
UR_diff = mean(UR_diff)
)
boxp2plot <- ggplot(data = abs_data, aes(x = T, y = UR_diff, color = T)) +
geom_jitter(
position = position_jitter(0.2), color = "darkgray"
) +
geom_point(size = 2.5, data = abs_data.summary) +
geom_errorbar(
aes(ymin = UR_diff - sd, ymax = UR_diff + sd),
width = 0.15,
data = abs_data.summary
) +
xlab("T (ºC)") +
ylab(bquote(U[R] ~ "(V)")) +
#ylim(4, 5.4) +
theme(legend.position = "none", text = element_text(family = "Montserrat"))
ggsave('output/mean_ur_vs_t_boxplot2.svg', boxp2plot, width = 6.6, height = 3.75, bg = "transparent")