library(ggplot2) values1 <- c(rnorm(100, mean=50, sd=15), rnorm(100, mean=75, sd=15), rnorm(100, mean=100, sd=15)) values2 <- c(rnorm(100, mean=20, sd=10), rnorm(100, mean=30, sd=10),rnorm(100, mean=40, sd=10)) values3 <- runif(300, min = 1, max = 6) df <- data.frame(values1, values2, values3) #scatter plot ggplot(df, aes(values1, values2)) + geom_point(aes(size=values3)) #adding transparency to the dots with alpha= ggplot(df, aes(values1, values2)) + geom_point(aes(size=values3), alpha=.3) #adding color ggplot(df, aes(values1, values2)) + geom_point(aes(size=values3), color="blue", alpha=.3) #colorscaling with viridis ggplot(df, aes(values1, values2)) + geom_point(aes(size=values3, color=values3), alpha=.5) + scale_color_viridis_c()