вы можете сделать это с помощью ggplot, если добавите отдельные 'aes ()' asthetics к разным гемам.
library(ggplot2)
df<-data.frame(a1 = c(1:10), b1 = rnorm(10,5), b2= rnorm(10, 3), b3= rnorm(10, 1))
ggplot(df)+
geom_line(aes(x = a1, y = b1 ))+
geom_point(aes(x = a1, y = b2, color = "red" ))+
geom_col(aes(x = a1, y = b3 ))
См. Три разных гема под одним Xaxis (x = a1 ):
Добавление ценного комментария Dave2e
если вы хотите иметь несколько geom_cols, вам придется преобразовать ваши данные от первого к длинному формату.
library(tidyr)
df %>% pivot_longer(b1:b4) %>% ggplot() +
geom_col(aes(x= a1, y=value, fill= name ), position = "dodge")