Я работаю над графиком, чтобы показать схемы ударов бейсболистов.
Расположение на сетке соответствует месту удара по мячу, а цвет круга соответствует результату (одиночный, двойной, тройной). , Home Run, Out, жертва мухи).
Я повторяю этот график для нескольких игроков, но не у всех игроков есть попадание во всех категориях.
Я гарантировал, что результаты помечены втого же цвета (иначе было бы странно, если бы homeruns были зелеными для одного игрока, а ауты были зелеными для другого игрока).
Я хотел бы показать легенду, которая включает в себя все результаты (одиночный, двойной, тройной и т. д. ) даже для графиков, которые не отображают каждый из этих результатов. Для человека, просматривающего это, было бы полезно, например, признать, что у конкретного игрока нет домашних пробегов.
Есть какие-нибудь идеи относительно того, что мне не хватает?
#ggspraychart (data = correa, fill_value = "events")
spray_chart <- function(...) {
ggplot(...) +
geom_curve(x = 33, xend = 223, y = -100, yend = -100, curvature = -.65, color = "#36521A") +
geom_segment(x = 128, xend = 33, y =-208, yend = -100, color = "#36521A") +
geom_segment(x = 128, xend = 223, y =-208, yend = -100, color = "#36521A") +
geom_curve(x = 83, xend = 173, y = -155, yend = -156, curvature = -.65, linetype = "dotted", color = "#36521A") +
coord_fixed() +
scale_x_continuous(NULL, limits = c(25, 225))+
scale_y_continuous(NULL, limits = c(-225, -25))
}
spray_chart(PlayerNF_events, aes(x = hc_x, y = -hc_y, color = events)) +
geom_point(size = 5) +
labs(
title = PlayerName,
subtitle = "Regular season 2019 vs TB")+
scale_color_manual(values = c("single" = "#DBA92A", "doule" = "#D98327", "triple" = "#CF5423", "home_run" = "#DE2723", "field_out" = "#3D5A5C", "sac_fly" = "#48475C")) +
theme(
# Remove panel border
panel.border = element_blank(),
# Remove panel grid lines
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
# Remove panel background
panel.background = element_blank(),
# Add axis line
axis.line = element_blank(),
axis.ticks = element_blank(),
axis.text = element_blank()
)