If I understand well your desired output this could be a solution:
library(readr)
library(dplyr)
data <- readr::read_delim("data.txt", delim = " ")
generating a summarized table with the position of the labels, in this case using max and min of the y-axis
data_summarized <- data %>% group_by(Gruppe) %>%
summarise(avg = mean(Fett),
max = max(Eiweiss),
min = min(Eiweiss))
to plot data with violin geom
ggplot(data, aes(Fett, Eiweiss, color = Gruppe, group = Gruppe)) +
geom_violin(aes(fill = Gruppe), alpha = 0.2)
to add points
ggplot(data, aes(Fett, Eiweiss, color = Gruppe, group = Gruppe)) +
geom_violin(aes(fill = Gruppe), alpha = 0.2) +
geom_jitter()
to add labels
ggplot(data, aes(Fett, Eiweiss, color = Gruppe, group = Gruppe)) +
geom_violin(aes(fill = Gruppe), alpha = 0.2) +
geom_jitter() +
geom_label(data = data_summarized,aes(x = avg, y = max, label = max)) +
geom_label(data = data_summarized,aes(x = avg, y = min, label = min))