LeBron James passed Michael Jordan tonight on the NBA’s all time points scored leaderboard, surpassing MJ’s 32,292 career points to vault him into 4th place. While this season has largely been one to forget for the Lakers, LeBron’s pursuit of Kareem Abdul-Jabbar and the possible arrival of Anthony Davis or a second star guarantee that there will be lots of excitement in LA for the next few seasons.
Reflecting briefly on LeBron’s incredible career to date - his year-to-year consistency, which to this point has been unique for any basketball player, ever, truly stands out in its metronomic consistency. Until this season with the Lakers, where he missed time with a groin injury, James has pretty much put up ~ 2,000 points a year, regardless of team, surrounding cast, or circumstance.
As he’s aged, LeBron has also changed how he scores his points. His points scored at the free throw line has declined as he creates a bit less contact in an effort to protect his body, and his points scored behind the three point line has more than double since his rookie year in the league.
Creating a Waterfall Chart of Career Points Scored
If you’re looking to create a waterfall chart of your own that’s similar to this one, feel free to steal from the code below. To make the chart with inset view of scoring per season, we just need to make the two charts separately, and then use cowplot to overlay the bar chart inside a blank space on the waterfall chart.
# Create a color palette for each team pal <- c(LAL = "#FDB927", CLE = "#6F263D", MIA ="#000000") # Create the waterfall plot to show yearly points scored towards total waterfall <- ggplot(stats, aes(x = Season, y = PTS, fill = Tm, label = PTS)) + geom_rect(aes(x = Season, xmin = id - 0.5, xmax = id + 0.5, ymin = Last_PTS, ymax = Total_PTS)) + # Plot each season's points scored geom_text(aes(y = Total_PTS + 600), size = 2) + # Add labels for that season's points above each bar scale_fill_manual("Team", values = pal) + # Use the team colors in the chart, link to fill scale_y_continuous(labels = scales::comma) + theme_minimal() + theme( axis.text.x = element_text(angle = 90, hjust = 1), # Rotate x axis labels ) # Create a very simple bar chart of points per year inset <- ggplot(stats, aes(x = Season, y = PTS, fill = Tm, label = PTS)) + geom_col() + scale_fill_manual(values = pal, guide = FALSE) + # Use team colors in chart scale_y_continuous(labels = scales::comma) + theme_minimal() + labs(x = "Points per Season", y = "") + theme( axis.title.y = element_blank(), # Hide un-needed ticks and grid lines axis.text.y = element_blank(), axis.ticks.y = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank() )
# Load the Cowplot library needed to create ggplot grid graphics and more library(cowplot) ggdraw() + draw_plot(waterfall) + # Make the waterfall plot the main plot draw_plot(inset, x = 0.12, y = .624, width = .2, height = .2) # Add the bar chat as an inset in the top left of the waterfall chart