Когда вы задаете столбец с помощью индекса, к нему не добавляется имя столбца.
df[, 1]
#[1] 96 52 55 79 12 42
colnames(df[, 1])
#NULL
Таким образом, вы получите ось X по умолчанию на графике.
Подмножество имен столбцов, используя индекс.
test <- function(i){
plot(df[,i], df[,4], xlab=colnames(df)[i], ylab="x")
}
test(2)