2017-07-29 4 views
0

Je suis en train de faire une boxplot d'une assez grande base de données pour illustrer la durée de la température (variabilité météorologique) par jour de l'année:Choisissez la fréquence des étiquettes d'axe x dans boxplot r

boxplot(Datasubset$Temp~Datasubset$Day,las=2,data=Datasubset,main="Weather Variability",xlab=names(Datasubset)[1],ylab=names(Datasubset)[3]) 

La trame de données Datasubset ressemble à ceci:

Day Hour Temp 
1/1/2015 1 3 
2/1/2015 2 4 
[...] [...] [...] 
31/12/2015 8760 2 

Cependant, mon axe x montre trop de valeurs ce qui signifie qu'elles se chevauchent et deviennent illisibles. Serait-il possible de réguler la fréquence des étiquettes de l'axe x? Par exemple, ne montrer qu'une étiquette tous les 10 ou 20 jours?

De plus, mes commandes xlab et ylab me semblent un peu artificielles. Est-il possible de faire référence au nom de la colonne dans la trame de données d'une manière plus naturelle?

Ce sont probablement des choses simples mais je n'arrive pas à trouver de réponses dans? Boxplot.

Merci d'avance.

+0

Comme pour l'axe, voir la fonction 'staxlab', paquet' plotrix'. –

+0

Si vous utilisez l'argument 'data', vous n'avez pas besoin de répéter le nom data.frame dans la formule. c.-à-d. utiliser 'boxplot (Temp ~ Day, data = Datasubset, ...)' –

Répondre

1

Vous pouvez accomplir ceci en supprimant l'axe x et en créant ensuite votre propre axe personnalisé. Par exemple,

# Create example data similar to what you described: 
Datasubset <- data.frame(Day=as.Date(16436:16800, origin='1970-01-01'), 
         Temp=sample(1:10, 365, replace=TRUE)) 
# Make the boxplot, without x-axis ticks by specifying xaxt='n': 
boxplot(Temp ~ Day, data=Datasubset, las=2, main="Weather Variability", 
     xlab='Day', ylab='Temp', xaxt='n') 
# Make a vector of values to draw ticks at: 
ticks <- seq(from=1, to=365, by=90) 
# And draw the axis: 
axis(1, las=1, at=ticks, labels=Datasubset$Day[ticks]) 

crée l'intrigue suivante:

Weather Variability Plot

Pour plus d'informations, consultez les pages d'aide pour par (en particulier l'option xaxt) et axis en exécutant help('par') ou help('axis').

+0

Ceci est parfait et très utile, merci beaucoup! – panajach