圆形条形图 - 标签

时间:2021-05-26 17:26:54

标签: r ggplot2 label

我正在尝试使用圆形条形图显示一支足球队的上场时间。但是标签不是线性的,就像我需要它们在一条直线上一样。完整代码如下

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) 

这是我得到的输出

output

有人可以帮忙吗?非常感谢!

Edit : the input is in the below format

Player  Mins

a       20

b       30 

c       40

d       50

e       60

0 个答案:

没有答案