2013-07-11 19 views
8

Sto creando molti grafici (ciascuno come immagine separata) che tutti devono avere limiti di asse identici. Quando si utilizza ylim, i segni di graduazione vengono posizionati in modo impacciato ai bordi estremi e le etichette di graduazione vengono omesse per i valori estremi.Ticks ed etichette degli assi esatti in R Lattice xyplot

library(lattice) 
x=1:100 
y=10+20*(runif(100)) 
xyplot(y~x)     # Case 1 - automatic ylim 
xyplot(y~x, ylim=c(10,20)) # Case 2 - specified ylim 

Nel caso 1, le zecche assi e le etichette vengono generati automaticamente a (y = 10,15,20,25,30). Tutti i segni di graduazione sono etichettati e vi è un riempimento verticale per i segni di graduazione estremi (y = 10 e y = 30) nel rettangolo di stampa.

Nel caso 2, quando si specificano i valori ylim, i segni di graduazione vengono generati a (y = 10,12,14,16,18,20) ma le etichette appaiono solo per (y = 12,14,16,18). Le etichette di graduazione mancano agli estremi. Inoltre, non vi è alcun riempimento verticale per i segni di graduazione estremi nel rettangolo di stampa.

C'è un modo per specificare ylim e avere ancora i segni di graduazione e le etichette escono in modo simile al caso 1?

Più in generale, quando si specifica ylim:
1. come è possibile specificare esattamente dove va ogni segno di spunta?
2. come è possibile specificare esattamente quali contrassegni vengono etichettati?

+1

'xyplot' tipicamente blocca i limiti x e y per estendere il 4% sopra e sotto l'intervallo di x. –

risposta

13

per ottenere i vostri segni di graduazione ed etichette in cui si desidera, si può fare qualcosa sulla falsariga di:

xyplot(
    y~x, 
    ylim=c(10,20), 
    scales=list(
    y=list(
     at=seq(10,20,2), 
     labels=c("a","","b","","c","")) 
    ) 
) 

Il problema imbottitura, io non sono sicuro di come affrontare, tranne per la regolazione manuale della ylim= argomenti.

1

Il riempimento è controllato in lattice.options con axis.padding. Vedere? Lattice.options

+0

metti la tua risposta breve nel commento – Damirchi

+0

Spiacente, non posso ancora non avere 50 reputazione. Ho provato – Irenabyss

+1

@Damirchi Non è una buona pratica mettere le risposte nei commenti, anche se sono molto brevi. – Ajean

Problemi correlati