2016-09-29 10 views
2

こんにちは、誰かが円形プロットの問題を解決するために正しい方向に私を指摘することができれば、私は疑問に思ってggplotの発注データ

。私はいくつかのサンプルデータを持っており、次の図のようなものを作成しようとしています。わずか8週間の方向性データを示し、非常に低いリスク(「0」で表される危険性が高いデータから「4

これはペイントで行われ、Rで何かを作成しようとしています。次の8週間のデータプロットです。プロットは、各15度の方向毎に最も低い週から最も高い週ごとのリスクを示しています。enter image description here 色:私はREPROしようとした

非常に高い

=高い=オレンジ、赤、媒体=黄色、低=緑、非常に低い=白このような同様の設計をしていますが、上の図に示すように、各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で( "非常に高い"、 "高"、 "中"、 "低"、 "非常に低い")'後の 'クラスを追加する場合= "factor" 'リスクをdatに定義するとき、私は因子のレベルの順序を設定し、正しい色に関連付けられた正しい順序で凡例を取得します。 – Haboryme

+0

@Haboryme、ご意見ありがとうございます。私はどのようにクラスを設定するのですか?前にこれを使用していません – Achak

+1

クラスがfactorであるRiskについては、factor()で行うことができます。たとえば、リスク=因子(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