2017-09-29 3 views
0

J'essaie de construire une parcelle polaire pour montrer des percentiles dans certaines directions, mais j'ai du mal à enlever l'anneau le plus à l'extérieur de la parcelle polaire, même si elle a été enlevée cela aide à construire l'intrigue polaire.Retirer l'anneau le plus à l'extérieur de la parcelle polaire (ggplot2)

Voici le code reproductible:

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()) 

C'est ce produit:

radar

Ceci est très proche, mais nous voulons centiles de 1 à être au dernier cercle de la comploter plutôt que d'avoir cette bague extérieure de l'intrigue.

Editer: J'ai déjà essayé d'incorporer les réponses ici, mais sans aucune chance. Remove extra space and ring at the edge of a polar plot

+0

Pouvez-vous être plus précis sur Qu'est-ce qui ne fonctionne pas dans la réponse à laquelle vous liez? Cela ressemble à une copie de cette question pour moi. – aosmith

Répondre

2

Réponse dans cette question est assez simple. Vous devez ajouter geom_hline (vous les voulez probablement avant d'ajouter geom_bar). Je ne pense pas que geom_vline ait du sens dans votre cas car les variables sur l'axe des x ne sont pas numériques.

I a ajouté une ligne:

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

code complet ressemble à ceci:

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)) 

Et il produit intrigue comme ceci:

enter image description here

+0

Je ne sais pas ce que je faisais mal, j'ai essayé le code très similaire, merci! – BaseballR

+0

@BaseballR Happens :-) Vous pouvez accepter ma réponse si cela vous a aidé – PoGibas