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