2016-09-29 40 views
2

下午好,ggplot订单数据圆形阴谋

我想知道如果有人能指出我正确的方向来解决循环阴谋问题。我有一些样本数据,我正在尝试制作类似于以下图片的内容,仅显示8周的定向数据,风险值从非常低的风险(在数据中表示为“0”到高风险表示为“4”集。

这是在油漆做,我试图创造一些与R.以下为8周的数据图。该图只显示了各15度的方向,以最低的风险每周最高。enter image description here 的例子表示以下颜色:

白色=非常低,绿色=低,黄色=中,橙=高和红色=很高

我试图摄制尽管类似这样的设计,但如上图所示,无论每个15度区间的星期数如何,都需要整理出最低到最高的分辨率。

到目前为止我的代码让我:

enter image description here

什么,我努力修复是:

  1. 从极高到极低的每个15度报告的顺序在数据上没有任何空白(例如,如果2周的数据仅存在2周 - 图中的0-15度)

  2. 传说从非常低到非常高的

的顺序我已经试过scale_fill_manual但我觉得我不使用这一权利。

我的代码是迄今:

ggplot(dat, aes(Arc, "", fill=Risk)) + 
    geom_bar(width=14.5, stat='identity', colour=("grey90")) + 
    scale_fill_manual(values = c("Red", "orange","green","yellow","white")) + 
    coord_polar(start= 0)+ 
    labs(x = '', y = '') + 

    theme_bw() + 

    theme(panel.border = element_blank(), 
     legend.key = element_blank(), 
     axis.ticks = element_blank(), 
     axis.text.y = element_blank(), 
     axis.text.x = element_blank(), 
     panel.grid = element_blank(), 
     legend.position="bottom") 

和我的样本输入数据是:

dput(dat) 
structure(list(Arc = c(7.5, 22.5, 37.5, 52.5, 67.5, 82.5, 97.5, 
112.5, 127.5, 142.5, 157.5, 172.5, 187.5, 202.5, 217.5, 232.5, 
247.5, 262.5, 277.5, 292.5, 307.5, 322.5, 337.5, 352.5, 7.5, 
22.5, 37.5, 52.5, 67.5, 82.5, 97.5, 112.5, 127.5, 142.5, 157.5, 
172.5, 187.5, 202.5, 217.5, 232.5, 247.5, 262.5, 277.5, 292.5, 
307.5, 322.5, 337.5, 352.5, 7.5, 22.5, 37.5, 52.5, 67.5, 82.5, 
97.5, 112.5, 127.5, 142.5, 157.5, 172.5, 187.5, 202.5, 217.5, 
232.5, 247.5, 262.5, 277.5, 292.5, 307.5, 322.5, 337.5, 352.5, 
7.5, 22.5, 37.5, 52.5, 67.5, 82.5, 97.5, 112.5, 127.5, 142.5, 
157.5, 172.5, 187.5, 202.5, 217.5, 232.5, 247.5, 262.5, 277.5, 
292.5, 307.5, 322.5, 337.5, 352.5, 7.5, 22.5, 37.5, 52.5, 67.5, 
82.5, 97.5, 112.5, 127.5, 142.5, 157.5, 172.5, 187.5, 202.5, 
217.5, 232.5, 247.5, 262.5, 277.5, 292.5, 307.5, 322.5, 337.5, 
352.5, 7.5, 22.5, 37.5, 52.5, 67.5, 82.5, 97.5, 112.5, 127.5, 
142.5, 157.5, 172.5, 187.5, 202.5, 217.5, 232.5, 247.5, 262.5, 
277.5, 292.5, 307.5, 322.5, 337.5, 352.5, 7.5, 22.5, 37.5, 52.5, 
67.5, 82.5, 97.5, 112.5, 127.5, 142.5, 157.5, 172.5, 187.5, 202.5, 
217.5, 232.5, 247.5, 262.5, 277.5, 292.5, 307.5, 322.5, 337.5, 
352.5, 7.5, 22.5, 37.5, 52.5, 67.5, 82.5, 97.5, 112.5, 127.5, 
142.5, 157.5, 172.5, 187.5, 202.5, 217.5, 232.5, 247.5, 262.5, 
277.5, 292.5, 307.5, 322.5, 337.5, 352.5), RiskV = c(0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 3L, 
3L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
1L, 2L, 3L, 3L, 4L, 4L, 4L, 4L, 3L, 3L, 2L, 2L, 2L, 1L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 2L, 3L, 3L, 3L, 
3L, 2L, 2L, 2L, 2L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 2L, 2L, 
2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 2L, 2L, 3L, 3L, 3L, 3L, 
3L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 3L, 3L, 2L, 1L, 1L, 0L, 1L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 2L, 3L, 3L, 3L, 3L, 
3L, 2L, 2L, 2L, 2L, 1L, 1L, 0L, 0L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L), week = c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L), 
    Risk = structure(c(5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 
    3L, 1L, 1L, 1L, 1L, 4L, 4L, 1L, 1L, 3L, 5L, 5L, 5L, 5L, 5L, 
    5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 3L, 1L, 1L, 4L, 4L, 
    4L, 4L, 1L, 1L, 3L, 3L, 3L, 2L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
    5L, 5L, 5L, 5L, 5L, 5L, 3L, 3L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 
    3L, 3L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 
    1L, 1L, 1L, 1L, 1L, 3L, 2L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
    5L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 
    3L, 2L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
    5L, 3L, 1L, 1L, 1L, 4L, 4L, 4L, 1L, 1L, 3L, 2L, 2L, 5L, 2L, 
    5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 3L, 1L, 1L, 
    1L, 1L, 1L, 3L, 3L, 3L, 3L, 2L, 2L, 5L, 5L, 2L, 2L, 3L, 3L, 
    3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 3L), .Label = c("High", "Low", "Medium", "Very High", 
    "Very Low"), class = "factor")), .Names = c("Arc", "RiskV", 
"week", "Risk"), class = "data.frame", row.names = c(NA, -192L 
)) 

如果有人能指出我在哪里,我错了,这将是巨大的,在此先感谢

+3

如果我加上'水平= C( “非常高”, “高”, “中”, “低”, “极低”)'后'类=“因子”'当定义风险在dat,我设置的因素水平的顺序,并得到正确的顺序与正确的颜色相关的图例。 – Haboryme

+0

@Haboryme,谢谢你的评论。我只是想知道我该如何设置课程?我之前没有使用过这个 – Achak

+1

对于风险类别是因素,可以用因子()来完成。例如,风险=因素(c(“低”,“低”,“高”,“中”),水平= c(“低”,“中”,“高”))。这是否回答你关于课堂的问题? – Haboryme

回答

1

为了有一个很好的显示,我删除了具有“非常低”风险的值

newdata=dat%>%filter(RiskV>=1) 

我改变了关卡的级别,以便“非常低”的级别不会混淆图例。

newdata$Risk<-factor(newdata$Risk,levels=c("Very High","High","Medium","Low")) 

和情节:

ggplot(newdata, aes(Arc)) + 
    geom_bar(width=14.5, stat='identity',position = "stack",colour=("grey90"),aes(y=1,fill=Risk)) + 
    coord_polar()+ 
scale_fill_manual(values = c("Red", "orange","green","yellow")) 
+0

感谢@Haboryme,这回答了我所有的问题,并且在我们讨论过的时候完美地工作! – Achak