2016-01-15 19 views
5

Sto provando a generare un grafico con le stime e gli intervalli di confidenza dalla stessa regressione per un certo numero di paesi. Ho eseguito le regressioni utilizzando dplyr di group_by(country) e quindi ho aggregato tutti i risultati in un frame di dati con broom di .ggplot2: geom_pointrange() facet_grid() con coord_flip() e scale libere

Quando si crea il grafico da questo frame di dati (chiamato bycountry1), ho eseguito il seguente codice:

ggplot(bycountry1, aes(x = country, y = estimate, ymin = estimate - std.error * 2, ymax = estimate + std.error * 2)) + 
    geom_hline(yintercept = 0, colour = "black", lty = 2) + 
    geom_pointrange() + 
    coord_flip() + facet_grid(. ~ term, scales = "free") 

here is the graph I get

Questo è quello che voglio, se non che mi piacerebbe avere la le scale per ogni casella devono essere diverse, in modo che tutte sembrino più simili alla casella religious1. Dato che è quello con la maggior variabilità, domina la scala, e quindi nella maggior parte delle altre caselle non puoi vedere la varianza. Come mostra il codice sopra, ho indicato scales = "free" in facet_grid() e ho provato tutte le varianti, anche con facet_wrap(), e non riesco a farlo funzionare.

+2

Come sull'utilizzo 'geom_errorbarh' invece di' coord_flip' per ottenere barre di errore orizzontali? – aosmith

+0

Questa è una buona idea. Grazie! L'avevo provato prima e non sembrava un granché, ma ho visto che puoi modificare l'altezza di 'geom_errorbarh' e anche aggiungere un' punto_omestico 'per ottenere esattamente quello che stavo cercando. Ora aggiungerò una risposta con il tuo suggerimento. Grazie ancora! –

risposta

3

Seguendo il suggerimento di aosmith, l'ho fatto funzionare usando geom_errorbarh e rimuovendo coord_flip(). Ho anche dovuto impostare height su geom_errorbarh su 0 e aggiungere un geom_point per il preventivo. Ecco il codice:

ggplot(bycountry1, aes(y = country, x = estimate, xmin = estimate - std.error * 2, xmax = estimate + std.error * 2)) + 
    geom_vline(xintercept = 0, colour = "black", lty = 2) + 
    geom_point() + 
    geom_errorbarh(height = 0) + 
    facet_grid(. ~ term, scales = "free") 

E l'immagine risultante

enter image description here

Problemi correlati