R 圆形条形图-标记

R 圆形条形图-标记,r,ggplot2,label,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

我试图用一个圆形的条形图显示足球队比赛的分钟数。但是标签不是线性的,就像我需要它们在一条直线上一样。下面是完整的代码

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) 

如果您包含一个简单的示例输入,可以用来测试和验证可能的解决方案,那么就更容易帮助您。我们不能使用“mins.csv”,因为我们的机器中没有它。最好将数据共享为
dput()
,这样我们就可以从问题本身复制/粘贴数据。我们不需要您的实际数据,只需要足够的数据就可以重新创建类似的绘图。@MrFlick多谢了,刚刚更新了问题。在geom_text()中,将angle参数更改为angle=0@SusanSwitzer但是标签会重叠,并且不会与条对齐,我希望标签与条对齐;你说它们不与横杆对齐是什么意思?现在还不清楚你到底想让这个看起来像什么。听起来你必须手动放置标签,除非你能从数学上描述你想让它们去哪里。
Edit : the input is in the below format

Player  Mins

a       20

b       30 

c       40

d       50

e       60