Metti una pausa nell’asse Y di un istogramma

Non sono proprio sicuro di come chiamarlo, ma sto cercando di ottenere una sorta di effetto “istogramma rotto” o “gap asse”: http://gnuplot-tricks.blogspot.com/2009/11/broken- histograms.html (esempio è in gnuplot) con R.

Sembra che dovrei usare la funzione gap.plot() del pacchetto plotrix , ma ho visto solo esempi di farlo con grafici a dispersione e linea. Sono stato in grado di aggiungere un’interruzione nella casella attorno alla mia trama e inserire uno zigzag, ma non riesco a capire come ridimensionare i miei assi per ingrandire la parte sotto la pausa.

L’objective è quello di essere in grado di mostrare il valore più alto per una barra veramente grande nel mio istogramma mentre ingrandisco la maggior parte dei miei bidoni che sono significativamente più corti. (Sì, so che questo potrebbe potenzialmente essere fuorviante, ma lo voglio ancora fare se ansible)

Eventuali suggerimenti?

Aggiornamento 5/10/2012 1040 EST:

Se creo un istogramma regolare con i dati e utilizzo <- per salvarlo in una variabile ( hdata <- hist(...) ), ottengo i seguenti valori per le seguenti variabili:

 hdata$breaks [1] 0.00 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.30 0.31 0.32 0.33 [16] 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 [31] 0.49 0.50 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.60 0.61 0.62 0.63 [46] 0.64 0.65 0.66 0.67 0.68 0.69 0.70 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 [61] 0.79 0.80 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.90 0.91 0.92 0.93 [76] 0.94 0.95 0.96 0.97 0.98 0.99 1.00 hdata$counts [1] 675 1 0 1 2 2 0 1 0 2 [11] 1 1 1 2 5 2 1 0 2 0 [21] 2 1 2 2 1 2 2 2 6 1 [31] 0 2 2 2 2 3 5 4 0 1 [41] 5 8 6 4 10 3 7 7 4 3 [51] 7 6 16 11 15 15 16 25 20 22 [61] 31 42 48 62 57 45 69 70 98 104 [71] 79 155 214 277 389 333 626 937 1629 3471 [81] 175786 

Credo di voler usare $breaks come il mio asse x e $counts come il mio asse y.

Potresti usare il gap.barplot dal pacchetto plotrix.

 # install.packages('plotrix', dependencies = TRUE) require(plotrix) example(gap.barplot) 

o

 twogrp<-c(rnorm(10)+4,rnorm(10)+20) gap.barplot(twogrp,gap=c(8,16),xlab="Index",ytics=c(3,6,17,20), ylab="Group values",main="Barplot with gap") 

Ti darò questo, Esempio (gap.barplot)

aggiornamento 2012-05-09 19:15:42 PDT

Sarebbe un'opzione per usare facet_wrap con facet_wrap "free" (o "free_y" )? In questo modo sarai in grado di confrontare i dati fianco a fianco, ma hai scale y diverse

Ecco il mio rapido esempio,

 library('ggplot2') source("http://www.ling.upenn.edu/~joseff/rstudy/data/coins.R") coins$foo <- ifelse(coins$Mass.g >= 10, c("Low"), c("hight")) m <- ggplot(coins, aes(x = Mass.g)) m + geom_histogram(binwidth = 2) + facet_wrap(~ foo, scales = "free") 

Quanto sopra ti darebbe questo, inserisci la descrizione dell'immagine qui

Questo sembra funzionare:

 gap.barplot(hdata$counts,gap=c(4000,175000),xlab="Counts",ytics=c(0,3500,175000), ylab="Frequency",main="Barplot with gap",xtics=hdata$counts)