# Session 8 install.packages("ggplot2") library("ggplot2") # get the data salary <- read.table("http://faculty.washington.edu/kenrice/rintro/salary.txt", header=TRUE) # examples provided qplot(salary, geom="density", fill=gender, data=salary, xlab="Monthly Salary", ylab="Density") qplot(salary, geom="density", fill=gender, data=salary, xlab="Monthly Salary", ylab="Density", alpha=0.5) # the "alpha" adds transparency - see also adjustcolor() #Q2 qplot(salary, geom="density", fill=rank, data=salary, xlab="Monthly Salary", ylab="Density", alpha=0.5) #gray=NA ranks, for which we know salaries... nicer to omit these is.missing <- is.na(salary$salary) | is.na(salary$rank) salary2 <- salary[!is.missing ,] qplot(salary, geom="density", fill=rank, data=salary2, xlab="Monthly Salary", ylab="Density", alpha=0.5) # taking away the transparency information in the legend qplot(salary, geom="density", fill=rank, data=salary2, xlab="Monthly Salary", ylab="Density", alpha=0.5) + guides(alpha = "none") ## Same plot using the ggplot() function ggplot(data=salary2, aes(x=salary, fill = rank,alpha=0.5) ) + xlab("Monthly Salary")+ylab("Density")+geom_density() ggplot(data=salary2, aes(x=salary, fill = rank,alpha=0.5) ) + xlab("Monthly Salary")+ylab("Density")+geom_density() ggplot(data=salary2, aes(x=salary, fill = rank,alpha=0.5) ) + geom_density() #Q3 qplot(salary, geom="histogram", data=salary2, xlab="Monthly Salary", ylab="Density", alpha=0.5) qplot(salary, geom="histogram", fill=rank, data=salary2, xlab="Monthly Salary", ylab="Density", alpha=0.1) # within rank - first approach uses interaction qplot(salary, geom="histogram", fill=interaction(rank,gender), data=salary2, xlab="Monthly Salary", ylab="Density", alpha=0.5) # a bit harder to see what's happening with many colors # slightly more sophisticated, after qplot() can add a 'facet' qplot(salary, geom="histogram", fill=gender, data=salary2, xlab="Monthly Salary", ylab="Density", alpha=0.5) + facet_wrap(~ rank) # note non-standard syntax; qplot( outcome , data, fill etc + facet # Q4 - example first ggplot(data=salary2, aes(x = gender, y = salary, fill = gender) ) + geom_boxplot() ggplot(data=salary2, aes(x = rank, y = salary, fill = gender) ) + geom_boxplot() ggplot(data=salary2, aes(x = rank, y = salary, fill = gender) ) + geom_boxplot() + facet_wrap(~field) # given rank and field, if anything median women are better off (not Deans etc, though) # Q5 - try your own versions # some of these take a few seconds to plot - be patient! ggplot(data=salary2, aes(x = factor(startyr), y = salary, fill = gender) ) + geom_boxplot() + facet_wrap(~rank) ggplot(data=salary2, aes(x = factor(startyr), y = salary) ) + geom_boxplot() + facet_wrap(~gender + rank) # not too bad - compare the rows ggplot(data=salary2, aes(x = factor(startyr), y = salary, fill = gender) ) + geom_boxplot() + facet_wrap(~rank + field) ggplot(data=salary2, aes(x = startyr, y = salary, col = gender) ) + geom_point(shape=1) + facet_wrap(~rank + field)