A two year look at the US salary distribution of Data Scientist based upon their experience level shows that Intermediate (SE) Senior-level are the highest paid.

payexplevel <- aggregate.data.frame(ds_salaries_1$salary_in_usd,list(ds_salaries_1$experience_level), FUN=sum)
colnames(payexplevel) <- c("Experience Level", "Salary")
kable((payexplevel), align = rep('c',2))
Experience Level Salary
EN 5424612
EX 5184193
MI 18743160
SE 38812842
ggplot(ds_salaries_1 %>% 
  group_by(experience_level) %>% 
  summarise_at("salary_in_usd", sum, na.rm = TRUE),
  aes(experience_level, salary_in_usd, fill=salary_in_usd))+
  geom_bar(stat = "identity", na.rm = T )+
  labs(title = "2020-2022 Salary by Experience Level", x = "Experience Level", y = "Salary (US Dollars)")+
  theme(legend.position="none",
      axis.text.y=element_blank(),
      axis.ticks.y=element_blank())

Full time employee regardless of experience level are the highest paid.

ggplot(ds_salaries_1, aes(experience_level,salary_in_usd))+
  geom_col(aes(fill = experience_level),position = "dodge", na.rm = T)+
  facet_wrap(~employment_type, nrow = 1)+ labs(title = "US Salary by Employment Type and Experience Level", x = "", y = "US Salary")+
  theme(axis.text.x=element_blank(),
        axis.ticks.x=element_blank())

Year over year salaries increased for Intermediate (SE) Senior-level and Junior (MI) Mid-level employees while Expert (EX) Executive-level and (EN) Entry-level employees saw some volatility.

ggplot(ds_salaries_1 %>% 
  group_by(experience_level, work_year) %>% 
  summarise_at("salary_in_usd", sum, na.rm = TRUE),
  aes(experience_level, salary_in_usd, fill=salary_in_usd))+
  geom_bar(stat = "identity", na.rm = T )+
  labs(title = "Salary per year by Experience Level", x = "Experience Level", y = "Salary (US Dollars)")+
  facet_wrap(~work_year)+
  theme(legend.position="none",
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank())

For Data Science jobs medium size companies are mainly compromised of Intermediate (SE) Senior-level and Junior (MI) Mid-level experiece workers. Across the board regardless of the size of the company the amount of (EN) Entry-level workers remains relatively the same.

ggplot(data = ds_salaries_1) +
  geom_bar(mapping = aes(x= company_size,  fill = experience_level),
  stat = "count", position = "dodge")+
  labs(title = "Number of employees by Company Size", x = "Company Size")+
  guides(guide_legend(title = "Experience Level"))

Regardless of experience level larger companies pay more than a medium or small company.

ggplot(data = ds_salaries_1) +
      geom_bar(mapping = aes(x= company_size, y= salary_in_usd, fill =salary_in_usd),
      stat = "identity", position = "dodge")+
      labs(title = "Salary for Experience level by Company Size", x = "Company Size", y= "US Salary")+
      guides(guide_legend(title = "Experience Level"))+
      facet_wrap(~experience_level, nrow = 1)+
      scale_y_discrete(labels = comma)+
      scale_fill_continuous(labels = comma)