我正在尝试使用圆形条形图显示一支足球队的上场时间。但是标签不是线性的,就像我需要它们在一条直线上一样。完整代码如下
library(tidyverse)
df <- read_csv("F:/Others/football analytics/realmadrid/mins.csv")
data <- data.frame(
individual= df$Player,
group=c( rep('A', 1), rep('B', 12), rep('C', 6), rep('D', 8)) ,
value=df$Min
)
data$id <- seq(1, nrow(data))
label_data <- data
number_of_bar <- nrow(label_data)
angle <- 90 - 360 * (label_data$id-0.7) /number_of_bar
label_data$hjust <- ifelse( angle < -90, 1, 0)
label_data$angle <- ifelse(angle < -90, angle+180, angle)
ggplot(data, aes(x=id, y=value, fill=group)) +
geom_bar(stat="identity", alpha=0.5) +
ylim(-100,120) +
theme_minimal() +
theme(
legend.position = "none",
axis.text = element_blank(),
axis.title = element_blank(),
panel.grid = element_blank()
) +
coord_polar() +
geom_text(data=label_data, aes(x=id, y=value + 5, label=individual, hjust = hjust), color="black", fontface="bold",alpha=0.6, size=2.5,angle= label_data$angle, inherit.aes = FALSE)
这是我得到的输出
有人可以帮忙吗?非常感谢!
Edit : the input is in the below format
Player Mins
a 20
b 30
c 40
d 50
e 60