Numbers Behind the Game: Canucks @ Habs (2/25/2020)

The Vancouver Canucks completed a comeback victory in Montreal with the final score of 4-3 in overtime. A strong performance from the Canucks’ top forward line and a particularly dazzling performance from Jake Virtanen helped the cause, while the Habs’ noted struggle in 5v4 situations continued.

all stats courtesy of naturalhattrick.com

library(tidyverse)

Generating Shots at Even-Strength:

van_ind <- read.table(file = "~/Desktop/blog/van_data.csv", header = T)
mtl_ind <- read.table(file = "~/Desktop/blog/mtl_data.csv", header = T)
van_ind <- mutate(van_ind, shots_per_TOI = Shots / TOI)
mtl_ind <- mutate(mtl_ind, shots_per_TOI = Shots / TOI)
ggplot(mtl_ind, aes(x = reorder(Player, Shots / TOI), y = Shots / TOI)) + geom_bar(stat = "identity") + coord_flip() + labs(title = "MTL Shots per Time on Ice", subtitle = "5v5") + xlab("Player")

ggplot(van_ind, aes(x = reorder(Player, Shots / TOI), y = Shots / TOI)) + geom_bar(stat = "identity") + coord_flip() + labs(title = "VAN Shots per Time on Ice", subtitle = "5v5") + xlab("Player")

The forward line of Domi-Weal-Byron did well despite the loss in generating shots at even strength. The trio of Tatar-Evans-Weise failed to generate a single shot at 5v5.

Jake Virtanen continues his hot streak by generating the most number of shots per time spent on the ice at even strength. Elias Petterson seems to defer shot-taking duties to his trigger-happy linemates in J.T. Miller and Tyler Toffoli.

mtl_ice <- read.table(file = "~/Desktop/blog/mtl_ice.csv", header = T)
van_ice <- read.table(file = "~/Desktop/blog/van_ice.csv", header = T)
ggplot(mtl_ice, aes(x = Player, y = CF..Rel)) + geom_bar(aes(fill = TOI), stat = "identity") + coord_flip() + labs(title = "MTL Relative CF% and ice time", subtitle = "5v5") 

ggplot(van_ice, aes(x = Player, y = CF..Rel)) + geom_bar(aes(fill = TOI), stat = "identity") + coord_flip() + labs(title = "VAN Relative CF% and ice time", subtitle = "5v5") 

The forward line of Byron-Domi-Weal seemed to have had a standout performance despite the loss. Defensive pairing of Jeff Petry and Brett Kulak did well to prevent chances against while leading in ice time. On the other end of the spectrum, it was a night to forget for the trio of Dale Weise, Jake Evans, and Arthuri Lehkonen.

The top Canucks line of Petterson-Miller-Toffoli caused havoc at the Habs expense, generating most combined corsi-for events at even strength. Jake Virtanen once again did well in creating chances.

ggplot(mtl_ice, aes(x = Player, y = SF..Rel)) + geom_bar(aes(fill = TOI), stat = "identity") + coord_flip() + labs(title = "MTL Relative Shots-for % and ice time", subtitle = "5v5") 

ggplot(van_ice, aes(x = Player, y = SF..Rel)) + geom_bar(aes(fill = TOI), stat = "identity") + coord_flip() + labs(title = "VAN Relative Shots-for % and ice time", subtitle = "5v5") 

The Domi line shared the bulk of Habs’ shots at even strength. Meanwhile their fourth line were not only buried in CF%, but SF% as well.

Tyler Motte in particular, partnered with veterans Brandon Sutter and Jay Beagle did not fare well in preventing shots against.

mtl_ice <- mutate(mtl_ice, total_faceoffs = Off..Zone.Faceoffs + Neu..Zone.Faceoffs + Def..Zone.Faceoffs)
van_ice <- mutate(van_ice, total_faceoffs = Off..Zone.Faceoffs + Neu..Zone.Faceoffs + Def..Zone.Faceoffs)

Zone Deployment

library(ggrepel)
ggplot(van_ice, aes(x = Def..Zone.Faceoffs, y = Off..Zone.Faceoffs)) + geom_jitter(stat = "identity", aes(color = reorder(Player, Def..Zone.Faceoffs)))  + geom_label_repel(aes(label = Player)) + theme(legend.position = "none") + labs(title = "VAN Zone Deployment", subtitle = "5v5") + geom_abline(slope = 1, intercept = 0, linetype = "dashed", color = "red")

ggplot(mtl_ice, aes(x = Def..Zone.Faceoffs, y = Off..Zone.Faceoffs)) + geom_jitter(stat = "identity", aes(color = reorder(Player, Def..Zone.Faceoffs)))  + geom_label_repel(aes(label = Player)) + theme(legend.position = "none") + labs(title = "MTL Zone Deployment", subtitle = "5v5") + geom_abline(slope = 1, intercept = 0, linetype = "dashed", color = "red")

Canucks’ top offensive line of Petterson-Miller-Toffoli were, as expected, heavily favoured to start in the offensive zone. They were often complemented with the defensive pairing of Chris Tanev and Quinn Hughes. Edler-Stetcher pairing meanwhile shared the burden of heavy defensive deployment, as well with the shutdown forward line of Beagle-Motte-Sutter – explaining the negatively skewed Corsi-For numbers.

The performance of the Max Domi line is even more impressive by the fact that their deployment was fairly even across the offensive-defensive zones. The trio of Drouin-Suzuki-Armia, meanwhile, enjoyed a more favorable deployment despite their lack of production. As usual, captain Shea Weber was on the ice for the highest number of defensive zone starts.

Forward Lines Performance

Results grouped by line combinations reflect analysis above.

mtl_fwds <- read.table(file = "~/Desktop/blog/mtl_fwds.csv", header = T)
van_fwds <- read.table(file = "~/Desktop/blog/van_fwds.csv", header = T)
mtl_fwds <- transform(mtl_fwds, lines = paste(Player.1, Player.2, Player.3, sep = " ")) 
van_fwds <- transform(van_fwds, lines = paste(Player.1, Player.2, Player.3, sep = " "))
ggplot(mtl_fwds, aes(x = lines, y = CF..Rel)) + geom_bar(stat = "identity", aes(fill = TOI)) + coord_flip() + labs(title = "MTL Forward Line Combinations and CF% Rel", subtitle = "5v5")

ggplot(van_fwds, aes(x = lines, y = CF..Rel)) + geom_bar(stat = "identity", aes(fill = TOI)) + coord_flip() + labs(title = "VAN Forward Line Combinations and CF% Rel", subtitle = "5v5")

ggplot(mtl_fwds, aes(x = lines, y = SF..Rel)) + geom_bar(stat = "identity", aes(fill = TOI)) + coord_flip() + labs(title = "MTL Forward Line Combinations and Rel. Shots-for %", subtitle = "5v5") + theme(plot.title = element_text(size = 10))

ggplot(van_fwds, aes(x = lines, y = SF..Rel)) + geom_bar(stat = "identity", aes(fill = TOI)) + coord_flip() + labs(title = "VAN Forward Line Combinations and Rel. Shots-for %", subtitle = "5v5")  + theme(plot.title = element_text(size = 10))

The Petterson line did well in driving play with ample amount of ice time and offensive zone starts, while the Virtanen line did well in generating shots in limited ice time.

Habs’ fourth line were buried in scoring chances and in generating shots. The Domi line were the only forward trio to have relative SF% in the positives.

Special Teams

van_pp <- read.table(file = "~/Desktop/blog/van_pp.csv", header = T)
mtl_pp <- read.table(file = "~/Desktop/blog/mtl_pp.csv", header = T)
van_pp2 <- van_pp[which(van_pp$TOI != 0),] 
mtl_pp2 <- mtl_pp[which(mtl_pp$TOI != 0),] 
ggplot(mtl_pp2, aes(x = reorder(Player, TOI), y = CF)) + geom_point(stat = "identity", aes(color = TOI)) + coord_flip() + labs(title = "MTL Powerplay Corsi-For Events", subtitle = "Decreasing TOI down y-axis, 5v4 only") + xlab("Player")

ggplot(van_pp2, aes(x = reorder(Player, TOI), y = CF)) + geom_point(stat = "identity", aes(color = TOI)) + coord_flip() + labs(title = "VAN Powerplay Corsi-For Events", subtitle = "Decreasing TOI down y-axis, 5v4 only") + xlab("Player")

There was just a single corsi-for event for the Habs on the power-play.

The top power-play unit for the Canucks received significant majority of ice time at 5v4, but the second unit did well in creating chances in their sole opportunity.

van_pk <- read.table(file = "~/Desktop/blog/van_pk.csv", header = T)
mtl_pk <- read.table(file = "~/Desktop/blog/mtl_pk.csv", header = T)
van_pk2 <- van_pk[which(van_pk$TOI != 0),] 
mtl_pk2 <- mtl_pk[which(mtl_pk$TOI != 0),] 
ggplot(mtl_pk2, aes(x = reorder(Player, TOI), y = CA)) + geom_point(stat = "identity", aes(color = TOI)) + coord_flip() + labs(title = "MTL Penalty Kill Corsi-Against Events", subtitle = "Decreasing TOI down y-axis, 4v5 only") + xlab("Player")

ggplot(van_pk2, aes(x = reorder(Player, TOI), y = CA)) + geom_point(stat = "identity", aes(color = TOI)) + coord_flip() + labs(title = "VAN Penalty Kill Corsi-Against Events", subtitle = "Decreasing TOI down y-axis, 4v5 only") + xlab("Player")

It was a rough night for the pairing of Weber-Chiarot on the penalty kill.

The Canucks did well in suppressing scoring chances on the penalty kill.

Conclusion

The Canucks keep on rolling, chasing the top seed in the Pacific Division. Jake Virtanen is having a stand-out year and did well to capitalize on his chances this game. Meanwhile in Montreal, it seems that after the trade-deadline-subtractions in the lineup there is a need for tightening in the defensive zone.