web-dev-qa-db-fra.com

intrigue légendes sans bordure et avec fond blanc

J'ai une légende dans une parcelle de terrain avec une ligne (à partir d'une déclaration abline). Comment puis-je obtenir que l'abline devienne invisible à proximité de la légende? Cela devrait être réalisable en définissant le fond de la légende en blanc, sans bordure, mais comment puis-je y parvenir? Supposons que le graphique devrait ressembler à ceci:

windows.options(width=30, height=12)
plot(1:10)
abline(v=seq(1,10,1), col='grey', lty='dotted')
legend(4.8, 3, "This legend text should not be disturbed by the dotted grey lines")

Et pour que ce soit un peu plus compliqué: Si la légende interfère avec les points du diagramme de points: Comment puis-je obtenir que les ablines deviennent invisibles à proximité de la légende (comme ci-dessus), mais que les points restent visibles?

windows.options(width=30, height=12)
plot(1:10)
abline(v=seq(1,10,1), col='grey', lty='dotted')
legend(1, 5, "This legend text should not be disturbed by the dotted grey lines, but the plotted dots should still be visible")

Et enfin: y a-t-il un moyen d'introduire des sauts de ligne dans les déclarations de légende?

51
biotom

Utilisez l'option bty = "n" dans legend pour supprimer la zone entourant la légende. Par exemple:

legend(1, 5,
       "This legend text should not be disturbed by the dotted grey lines,\nbut the plotted dots should still be visible",
       bty = "n")
95
mayank

Comme documenté dans ?legend tu fais ça comme ça:

plot(1:10,type = "n")
abline(v=seq(1,10,1), col='grey', lty='dotted')
legend(1, 5, "This legend text should not be disturbed by the dotted grey lines,\nbut the plotted dots should still be visible",box.lwd = 0,box.col = "white",bg = "white")
points(1:10,1:10)

enter image description here

Les sauts de ligne sont obtenus avec le nouveau caractère de ligne \n. Rendre les points encore visibles se fait simplement en changeant l'ordre du tracé. Rappelez-vous que tracer dans R, c'est comme dessiner sur un morceau de papier: chaque chose que vous tracez sera placée au-dessus de ce qui se trouve actuellement là-bas.

Notez que le texte de la légende est coupé parce que les dimensions du tracé ont été réduites (windows.options n’existe pas sur toutes les plates-formes R).

23
joran