首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图帮助-圆周图

图帮助-圆周图
EN

Stack Overflow用户
提问于 2020-03-03 22:40:57
回答 3查看 170关注 0票数 2

我都不知道从何说起这个。我已经看过GGPlot和巧妙的等等,试图找到正确的东西,但没有遇到任何事情。

不过,这是我的数据的例子。

代码语言:javascript
复制
Skill <- c("Tackling", "Shooting", "Technique", "Passing", "Pace", "Stamina")
Grade <- c("A", "C", "C", "B", "A", "B")
data <- data.frame(Skill, Grade)

这是我想要的那种图

我是一名足球球探,如果能有这样的图表来比较我们的球员和我正在球探的球员,那就太棒了。

所以如果分数是D,它就会显示红色,如果分数是C,它会显示红色和橙色。等。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-03 23:09:51

这与你想要的非常接近:

代码语言:javascript
复制
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()) 

票数 3
EN

Stack Overflow用户

发布于 2020-03-03 22:51:31

这个怎么样?

代码语言:javascript
复制
library(ggplot2)

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

要使所有级别低于级别编码,您需要在dataframe中拥有所有较低的级别,这在某种程度上是多余的。不是吗?

票数 1
EN

Stack Overflow用户

发布于 2020-03-03 22:54:34

代码语言:javascript
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60516592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档