50 votes

Changer la couleur d'arrière-plan du tracé R

Très bien, disons que j'ai l'intrigue suivante.

 df = data.frame(date=c(rep(2008:2013, by=1)),
                value=c(303,407,538,696,881,1094))

barplot(df$value, main="TITLE", col="gray", ylab="People", xlab="Years")

Comment changer le fond en bleu marine ?

Je sais que c'est possible avec ggplot2, mais je ne sais pas si je peux le faire avec des graphiques de base.

62voto

Owen Points 14439

Comme

 par(bg = 'blue')
# Now do plot

49voto

joran Points 68079

Une recherche Google plus tard, nous avons appris que vous pouvez définir la couleur d'arrière-plan du périphérique de traçage comme l'indique Owen. Si vous voulez juste que la région de traçage soit modifiée, vous devez faire quelque chose comme ce qui est décrit dans ce fil R-Help :

 plot(df)
rect(par("usr")[1],par("usr")[3],par("usr")[2],par("usr")[4],col = "gray")
points(df)

La fonction barplot a un add que vous devrez probablement utiliser.

3voto

CCurtis Points 311

Vieille question mais j'ai une bien meilleure façon de le faire. Plutôt que d'utiliser rect() utilisez polygon . Cela vous permet de tout garder dans plot sans utiliser points . De plus, vous n'avez pas du tout à vous soucier de par . Si vous souhaitez que les choses restent automatisées, faites en sorte que les coordonnées de polygon soient fonction de vos données.

 plot.new()
polygon(c(-min(df[,1])^2,-min(df[,1])^2,max(df[,1])^2,max(df[,1])^2),c(-min(df[,2])^2,max(df[,2])^2,max(df[,2])^2,-min(df[,2])^2), col="grey")
par(new=T)
plot(df)

3voto

K9_ Points 31

J'utilise abline() avec des lignes verticales extrêmement larges pour remplir l'espace du tracé :

abline(v = xpoints, col = "grey90", lwd = 80)

Vous devez créer le cadre, puis les ablines, puis tracer les points pour qu'ils soient visibles en haut. Vous pouvez même utiliser une deuxième abline() pour placer de fines lignes blanches ou noires sur le gris, si vous le souhaitez.

Exemple:

 xpoints = 1:20
y = rnorm(20)
plot(NULL,ylim=c(-3,3),xlim=xpoints)
abline(v=xpoints,col="gray90",lwd=80)
abline(v=xpoints,col="white")
abline(h = 0, lty = 2) 
points(xpoints, y, pch = 16, cex = 1.2, col = "red")

1voto

Melo Jrf Points 29

Après avoir combiné les informations de ce fil avec le R-help ?rect , j'ai créé ce joli graphique pour les données de rythme circadien ( 24h plot ). Le script pour les rectangles d'arrière-plan est le suivant :

script racine :

 >rect(xleft, ybottom, xright, ytop, col = NA, border = NULL)

Mon scénario :

 >i <- 24*(0:8)
>rect(8+i, 1, 24+i, 130, col = "lightgrey", border=NA)
>rect(8+i, -10, 24+i, 0.1, col = "black", border=NA)

L'idée est de représenter des jours de 24 heures avec 8 h de lumière et 16 h d'obscurité.

À votre santé,

Romário

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X