2009-12-26 21 views
36

Esiste un comando per aggiungere facilmente una griglia a un grafico R?Griglia in un grafico R

+1

Forse prendere in considerazione la modifica della risposta accettata a [questo] (http://stackoverflow.com/a/42729195/680068)? – zx8754

+0

O meglio ancora, usa ggplot2 per la stampa. Ha un sacco di impostazioni predefinite davvero fantastiche (comprese le griglie, che possono essere personalizzate) e ha un grammer molto naturale e ponderato per assegnare attributi estetici agli aspetti dei tuoi grafici in base ai dati con cui stai lavorando. È il – metasoarous

risposta

11

Se non si utilizza un intervallo di selezione personalizzato, è possibile controllare la griglia e gli assi dei parametri direttamente dal comando plot():

plot(cumsum(rnorm(100)), type='l', panel.first=grid()) 

Il plot.default() documentazione fornisce ulteriori informazioni su questi parametri.

+0

Attenzione, non funziona se si utilizza il metodo '' (formula x ~ y, panel.first = grid()) ' – rvezy

44

Vedi help(grid) che funziona con grafica standard - breve esempio:

R> set.seed(42) 
R> plot(cumsum(rnorm(100)), type='l') 
R> grid() 

I ggplot2 pacchetto di default a mostrare griglie grazie alla sua filosofia 'Grammatica di Grafica'. E ha una funzione panel.grid() che è possibile utilizzare nelle funzioni del pannello personalizzato.

A proposito, ci sono funzioni di ricerca di aiuto come ad es. help.search("something") e c'è un intero pacchetto chiamato sos per rendere più proficue le ricerche web di R.

+0

Nei casi in cui vogliamo una griglia in background, vedi [sotto risposta] (http://stackoverflow.com/a/42729195/680068). – zx8754

54

Il comando della griglia di comando sembra disegnare linee di griglia dove sia mai stato. Io di solito uso abline per mettere le linee esattamente dove voglio. Ad esempio,

abline(v=(seq(0,100,25)), col="lightgray", lty="dotted") 
abline(h=(seq(0,100,25)), col="lightgray", lty="dotted") 

Buona fortuna!

+7

È fantastico. 'grid()' ha disperatamente bisogno di argomenti per dove posizionare la prima linea della griglia su ciascun asse. Questo è un ottimo sostituto. – Hank

5

Sono d'accordo con cbare. Utilizzare abline per disegnare le linee solo dove realmente necessario.

Esempio dal mio ultimo codice:

abline(v=c(39448, 39814), col="grey40") 
abline(h=c(-0.6, -0.4, -0.2, 0.2,0.4,0.6), col="grey10", lty="dotted") 

ricordare che:

v è per linee verticali. h per orizzontale.

sfruttare i comandi

lty per linea tratteggiata color per lineare di luce colorata

per ottenere "no griglia pesante".

Problemi correlati