It's much easier to help (and also know what you are looking for) with a reproducible example but it seems to me if you have two station values that are the same each year (which don't differ between the climate factors for that year) a secondary line graph would be more appropriate. Here is an example with dummy data for three years. You can play with the rescaling factor to position the lines. You can then use facets to add the station gauges into another graph or just add additional lines. Also I can't tell if you meant to have different color outlines for each bar, but I don't think so, so I corrected that, and it looks like you have some NAs in your data that is causing the extra blank categories in your legend.
Dummy data:
df <- data.frame(Year_climate_floods = c(2016, 2016, 2016, 2016, 2017, 2017, 2017, 2017, 2018, 2018, 2018, 2018),
yearlyclimaticfactors = c('maxtemp','mintemp','RH','rainfall levels','maxtemp','mintemp','RH','rainfall levels','maxtemp','mintemp','RH','rainfall levels'),
ClimateValue= sample(0:15000, 12, replace = TRUE),
station1 = c('Station1_discharge','Station1_discharge','Station1_discharge','Station1_discharge','Station1_discharge','Station1_discharge','Station1_discharge','Station1_discharge','Station1_discharge','Station1_discharge','Station1_discharge','Station1_discharge'),
Station1Value= c(950000, 950000, 950000, 950000, 1300000, 1300000, 1300000, 1300000,1050000, 1050000, 1050000, 1050000),
station2 = c('Station2_discharge','Station2_discharge','Station2_discharge','Station2_discharge','Station2_discharge','Station2_discharge','Station2_discharge','Station2_discharge','Station2_discharge','Station2_discharge','Station2_discharge','Station2_discharge'),
Station2Value= c(1150000, 1150000, 1150000, 1150000, 1200000, 1200000, 1200000, 1200000,1350000, 1350000, 1350000, 1350000))
Rescaling factor for secondary y-axis
max_cv=max(df$ClimateValue)
max_sv=max(df$Station1Value,df$Station2Value)
rescale.factor=(max_sv/max_cv)
Plot
ggplot(data = df, aes(x = as.integer(Year_climate_floods), y = ClimateValue, fill = yearlyclimaticfactors)) + theme_classic() + geom_bar(stat = 'identity', position="dodge", color="black", size=.5, width=.8) + geom_line(data = df, aes(y = Station1Value/rescale.factor, x=Year_climate_floods , group=station1), linetype = "dashed")+ geom_line(data = df, aes(y = Station2Value/rescale.factor, x=Year_climate_floods , group=station2, size=1), linetype = "solid", size=1) +scale_x_continuous(name="Year", breaks=c(2016,2017, 2018))+ scale_y_continuous(name = "Climate value", sec.axis = sec_axis(trans = ~.*rescale.factor, name = "Station value", breaks=c(0,500000,1000000,1500000),labels = scales::comma)) + theme(axis.text=element_text(size=14),axis.title=element_text(size=16, face="bold"), legend.position = "bottom") + scale_fill_manual(name="Climate factor", values=c("red", "green", "blue", "yellow"))
enter image description here