簡體   English   中英

圖形幫助 - 圓形條形圖

[英]Graph Help - Circular Barplot

我不知道從哪里開始。 我看過 GGPlot 和 plotly 等試圖找到正確的東西,但沒有遇到任何事情。

這是我的數據的例子

Skill <- c("Tackling", "Shooting", "Technique", "Passing", "Pace", "Stamina")
Grade <- c("A", "C", "C", "B", "A", "B")
data <- data.frame(Skill, Grade)

這是我想要的那種圖表在此處輸入圖片說明

我是一名足球球探,能夠有這樣的圖表來比較我們擁有的球員和我正在尋找的球員,真是太棒了。

所以如果等級是 D,它只會顯示紅色,如果等級是 C,它會顯示紅色和橙色。 等等。

這非常接近您想要的:

Skill <- c("Tackling", "Shooting", "Technique", "Passing", "Pace", "Stamina")
Grade <- c("A", "C", "C", "B", "A", "B")
data <- data.frame(Skill, Grade)

library(ggplot2)
library(dplyr)

data$grade <- factor(data$Grade, levels=c("D","C","B","A"))
data$grade2 <- recode(data$grade, A="B")
data$grade3 <- recode(data$grade2, B="C")
data$grade4 <- recode(data$grade3, C="D")

ggplot(data, aes(x=Skill, y=grade)) + 
  geom_bar(stat="identity", fill="green",col="black",width=1)  + 
  geom_bar(aes(y=grade2),stat="identity", fill="yellow",col="black",width=1)  + 
  geom_bar(aes(y=grade3),stat="identity", fill="orange",col="black",width=1)  + 
  geom_bar(aes(y=grade4),stat="identity", fill="red",col="black",width=1)  + 
  scale_y_discrete(limits = c("D","C","B","A")) + 
  coord_polar(start = pi/6) + theme_bw() + theme(axis.text.y = element_blank()) + 
  theme(axis.ticks = element_blank(), axis.title = element_blank()) 


在此處輸入圖片說明

這個怎么樣

library(ggplot2)

ggplot(data = data, aes(Skill, Grade, fill = Grade)) + 
      geom_tile() +
      coord_polar() +
      theme_bw()

要編碼等級以下的所有級別,您需要在dataframe包含所有這些較低級別,這在某種程度上是多余的。 不會吧?

d = transform(data, gr = as.numeric(factor(data$Grade, c("D", "C", "B", "A"))))
d = do.call(rbind, lapply(split(d, d$Skill), function(x){
    foo = with(x, setNames(data.frame(Skill[1], Grade[1], seq(gr)), names(x)))
}))

library(ggplot2)
ggplot(d, aes(Skill, gr, fill = factor(gr, 4:1))) +
    geom_col() +
    coord_polar()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM