2017-09-29 16 views
0

極座標プロットを作成して、特定の方向で百分率を表示するが、棒グラフの一部として削除されているにもかかわらず、極座標プロットの作成に役立ちます。ここで極プロット(ggplot2)の最も外側のリングを削除する

が再現可能なコードです:

library(ggplot2) 

perc_df=data.frame(id=c(125,126,127,128,129,130),percentile=c(.50,.75,.99,.27,.12,.66)) 

cxc <- ggplot(perc_df, aes(x = id)) + 
    geom_bar(width = 1, aes(weight = percentile, fill = ..count..)) + 
    scale_y_continuous(limits = c(0,1),breaks=seq(0, 1, .25),expand=c(0,0)) + 
    scale_fill_gradient2(low = 'red', high = 'green',mid='yellow', limits=c(0,1),midpoint=.5,guide = "colourbar") 

cxc + coord_polar(theta = 'x',start = 2.6)+ guides(fill=FALSE) + 
    theme(axis.title.x=element_blank(),axis.text.x=element_blank(),axis.ticks.x=element_blank(),axis.title.y=element_blank(), 
     axis.text.y=element_blank(),axis.ticks.y=element_blank(),plot.title = element_text(lineheight=.8, face="bold",hjust = 0.5), 
     panel.border = element_blank()) 

これは、生成されたものである。

radar

これは非常に近いですが、我々は1のパーセンタイルは、最終的な円になりたいですプロットの外側の輪を持つよりもむしろプロットすること。

編集:私は既に答えをここに組み込むことを試みましたが、運が全くありません。 Remove extra space and ring at the edge of a polar plot

+0

をあなたがリンクしている答えでうまくいかないのですか?これは私にその質問の重複のように見えます。 – aosmith

答えて

2

回答は非常に簡単です。 geom_hlineを追加する必要があります(geom_barを追加する前に追加することをお勧めします)。 x軸の変数は数値ではないので、geom_vlineはあなたのケースでは意味をなさないと私は考えていません。

私は1つの行を追加しました:

geom_hline(yintercept = seq(0, 1, by = 0.25), colour = "grey90", size = 0.2) 

全体のコードは次のようになります。

perc_df <- data.frame(id = c(125, 126, 127, 128, 129, 130), 
         percentile = c(0.50, 0.75, 0.99, 0.27, 0.12, 0.66)) 

library(ggplot2) 
ggplot(perc_df, aes(id)) + 
    geom_hline(yintercept = seq(0, 1, by = 0.25), colour = "grey90", size = 0.2) + 
    geom_bar(aes(weight = percentile, fill = ..count..), 
      width = 1,) + 
    scale_y_continuous(limits = c(0, 1), 
         breaks = seq(0, 1, 0.25), 
         expand = c(0, 0)) + 
    scale_fill_gradient2(low = "red", mid="yellow", high = "green", 
         limits = c(0, 1), midpoint = 0.5, 
         guide = "colourbar") + 
    coord_polar(theta = "x", start = 2.6) + 
    guides(fill = FALSE) + 
    theme_bw() + 
    theme(axis.title = element_blank(), 
      panel.border = element_blank(), 
      legend.key = element_blank(), 
      axis.ticks = element_blank(), 
      axis.text = element_blank(), 
      panel.grid = element_blank(), 
      plot.title = element_text(lineheight = 0.8, face = "bold", 
            hjust = 0.5)) 

そしてそれは、このようなプロット作成する:あなたは、より特異的であることができる

enter image description here

+0

私が間違っていたことをよくわからない、非常によく似たコードを試しました、ありがとう! – BaseballR

+0

@BaseballR Happens :-)それが助けられたら私の答えを受け入れることができます – PoGibas

関連する問題