{"id":7586,"date":"2026-09-16T21:13:36","date_gmt":"2026-09-16T21:13:36","guid":{"rendered":"http:\/\/french.arabpsychology.com\/statistics\/comment-changer-position-legende-ggplot2-exemples\/"},"modified":"2026-09-16T21:13:45","modified_gmt":"2026-09-16T21:13:45","slug":"comment-changer-position-legende-ggplot2-exemples","status":"publish","type":"psych_stat","link":"https:\/\/french.arabpsychology.com\/?psych_stat=comment-changer-position-legende-ggplot2-exemples","title":{"rendered":"Comment changer la position de la l\u00e9gende dans ggplot2 (avec des exemples)"},"content":{"rendered":"<p>La transmission visuelle de r\u00e9sultats empiriques complexes repose sur un \u00e9quilibre rigoureux entre pr\u00e9cision s\u00e9miotique, lisibilit\u00e9 spatiale et \u00e9conomie cognitive. Dans l&rsquo;\u00e9cosyst\u00e8me de programmation statistique R, l&rsquo;extension <a rel=\"noopener noreferrer\" href=\"https:\/\/ggplot2.tidyverse.org\/\">ggplot2<\/a>, con\u00e7ue par Hadley Wickham sur les fondements th\u00e9oriques \u00e9tablis par Leland Wilkinson dans son ouvrage fondateur <em>The Grammar of Graphics<\/em>, s&rsquo;est impos\u00e9e comme la norme de r\u00e9f\u00e9rence pour la production de figures scientifiques. N\u00e9anmoins, si la modularit\u00e9 de cette grammaire permet d&rsquo;associer intuitivement des dimensions de donn\u00e9es \u00e0 des variables esth\u00e9tiques telles que la couleur, la forme ou la taille, la disposition par d\u00e9faut des \u00e9l\u00e9ments d&rsquo;accompagnement textuel \u2014 et singuli\u00e8rement celle de la l\u00e9gende \u2014 constitue fr\u00e9quemment un \u00e9cueil majeur pour la publication acad\u00e9mique. Une l\u00e9gende mal positionn\u00e9e alt\u00e8re le balayage visuel, fragmente l&rsquo;attention du lecteur et gaspille une surface graphique pr\u00e9cieuse au d\u00e9triment de la r\u00e9solution des observations.<\/p>\n<p>Le contr\u00f4le chirurgical de l&#8217;emplacement de la l\u00e9gende ne rel\u00e8ve pas d&rsquo;une simple coquetterie esth\u00e9tique, mais proc\u00e8de d&rsquo;une v\u00e9ritable d\u00e9marche m\u00e9thodologique visant \u00e0 maximiser le ratio donn\u00e9es-encre th\u00e9oris\u00e9 par Edward Tufte. Les configurations standardis\u00e9es de <code>ggplot2<\/code> rel\u00e8guent syst\u00e9matiquement les cl\u00e9s d&rsquo;identification sur le flanc droit du trac\u00e9. Cette disposition lat\u00e9rale externe entra\u00eene une asym\u00e9trie spatiale et impose un co\u00fbt cognitif \u00e9lev\u00e9 lors de l&rsquo;examen de visualisations denses, le regard de l&rsquo;observateur devant osciller en permanence entre les grappes de donn\u00e9es et la bordure extr\u00eame du graphique. D\u00e8s lors que l&rsquo;on manipule des trac\u00e9s \u00e0 panneaux multiples, des s\u00e9ries temporelles longitudinales ou des surfaces de corr\u00e9lation complexes, la capacit\u00e9 \u00e0 relocaliser la l\u00e9gende \u2014 que ce soit sur les marges p\u00e9riph\u00e9riques ou directement immerg\u00e9e \u00e0 l&rsquo;int\u00e9rieur du rep\u00e8re cart\u00e9sien \u2014 devient une comp\u00e9tence indispensable pour tout statisticien, bio-informaticien ou chercheur en sciences sociales.<\/p>\n<p>Ce guide exhaustif a pour ambition d&rsquo;explorer de mani\u00e8re approfondie l&rsquo;ensemble des m\u00e9canismes, des fonctions et des param\u00e8tres r\u00e9gissant la g\u00e9om\u00e9trie, l&rsquo;orientation, la justification et la personnalisation des l\u00e9gendes au sein de <code>ggplot2<\/code>. \u00c0 travers une progression m\u00e9thodique articul\u00e9e autour d&rsquo;exemples reproductibles et d&rsquo;analyses th\u00e9oriques pointues, nous d\u00e9taillerons les syntaxes canoniques permises par le syst\u00e8me th\u00e9matique, les interactions subtiles entre les fonctions <code>theme()<\/code> et <code>guides()<\/code>, ainsi que les strat\u00e9gies d&rsquo;optimisation indispensables \u00e0 la conformit\u00e9 avec les normes \u00e9ditoriales internationales les plus strictes, \u00e0 l&rsquo;instar des recommandations de l&rsquo;American Psychological Association (APA).<\/p>\n<h2>1. Fondements et r\u00f4le cognitif de la disposition des l\u00e9gendes sous ggplot2<\/h2>\n<h3>1.1 Charge cognitive et ergonomie visuelle des graphiques statistiques<\/h3>\n<p>L&rsquo;efficacit\u00e9 d&rsquo;une repr\u00e9sentation graphique scientifique se mesure \u00e0 l&rsquo;aune de la vitesse et de la fid\u00e9lit\u00e9 avec lesquelles l&rsquo;appareil cognitif humain d\u00e9code les relations quantitatives sous-jacentes. Selon la th\u00e9orie de la charge cognitive initialement formul\u00e9e par John Sweller, la m\u00e9moire de travail dispose de ressources de traitement strictement limit\u00e9es. Dans le cadre de la lecture d&rsquo;un graphique, toute op\u00e9ration mentale qui ne participe pas directement \u00e0 la compr\u00e9hension du ph\u00e9nom\u00e8ne statistique \u00e9tudi\u00e9 constitue une charge cognitive extrins\u00e8que. Une l\u00e9gende rel\u00e9gu\u00e9e \u00e0 la p\u00e9riph\u00e9rie d&rsquo;un trac\u00e9 g\u00e9n\u00e8re ce que les psychologues de la perception nomment l&rsquo;effet d&rsquo;attention divis\u00e9e (<em>split-attention effect<\/em>). L&rsquo;observateur est contraint de m\u00e9moriser temporairement une modalit\u00e9 de couleur ou de forme, de d\u00e9tacher son regard de la zone d&rsquo;int\u00e9r\u00eat focal, de rep\u00e9rer l&rsquo;\u00e9tiquette correspondante sur la marge droite, puis de r\u00e9ancrer son regard au sein du plan g\u00e9om\u00e9trique pour valider son inf\u00e9rence.<\/p>\n<p>Ce trajet saccadique oculaire incessant allonge le temps d&rsquo;acc\u00e8s s\u00e9mantique et induit une fatigue visuelle qui alt\u00e8re la d\u00e9tection des structures globales, des discontinuit\u00e9s ou des valeurs aberrantes. Les principes psychophysiques r\u00e9gissant la perception visuelle, en particulier la loi de proximit\u00e9 issue de la th\u00e9orie de la Gestalt, d\u00e9montrent sans ambigu\u00eft\u00e9 que des \u00e9l\u00e9ments spatiaux proches sont spontan\u00e9ment appr\u00e9hend\u00e9s comme appartenant \u00e0 une m\u00eame entit\u00e9 logique. En rapprochant la l\u00e9gende des donn\u00e9es observ\u00e9es, ou en l&rsquo;ins\u00e9rant dans un espace r\u00e9siduel non exploit\u00e9 du syst\u00e8me de coordonn\u00e9es cart\u00e9siennes, le concepteur du graphique r\u00e9duit drastiquement la distance euclidienne parcourue par l&rsquo;\u0153il, fluidifie la trajectoire du regard et permet une int\u00e9gration pr\u00e9-attentive des cl\u00e9s de classification cat\u00e9gorielle.<\/p>\n<h3>1.2 L&rsquo;architecture du syst\u00e8me th\u00e9matique de ggplot2<\/h3>\n<p>Pour ma\u00eetriser la manipulation des l\u00e9gendes, il est indispensable de comprendre la dichotomie fondamentale sur laquelle repose le moteur de rendu de <code>ggplot2<\/code>. D&rsquo;une part, la structure g\u00e9om\u00e9trique profonde associe les variables du tableau de donn\u00e9es aux canaux perceptifs via l&rsquo;instruction <code>aes()<\/code> et mat\u00e9rialise les observations au travers des couches <code>geom_*()<\/code>. D&rsquo;autre part, le syst\u00e8me th\u00e9matique, gouvern\u00e9 par la fonction <a rel=\"noopener noreferrer\" href=\"https:\/\/ggplot2.tidyverse.org\/reference\/theme.html\">theme()<\/a>, administre l&rsquo;ensemble des attributs non li\u00e9s aux donn\u00e9es (<em>non-data ink<\/em>), englobant la typographie, les quadrillages, les axes et l&rsquo;encadrement des l\u00e9gendes. Cette s\u00e9paration stricte garantit une modularit\u00e9 absolue : la modification de l&rsquo;habillage th\u00e9matique ne corrompt jamais l&rsquo;int\u00e9grit\u00e9 des transformations math\u00e9matiques sous-jacentes.<\/p>\n<p>L&rsquo;architecture de <code>theme()<\/code> fonctionne selon un mod\u00e8le hi\u00e9rarchique arborescent h\u00e9rit\u00e9 du moteur sous-jacent de R, la biblioth\u00e8que <code>grid<\/code>. Les arguments th\u00e9matiques relatifs aux guides sont organis\u00e9s selon une nomenclature rigoureuse d\u00e9butant par le pr\u00e9fixe <code>legend.<\/code>. L&rsquo;\u00e9valuation de ces arguments s&rsquo;effectue de mani\u00e8re s\u00e9quentielle le long du pipeline de composition graphique reli\u00e9 par l&rsquo;op\u00e9rateur d&rsquo;addition binaire <code>+<\/code>. Les propri\u00e9t\u00e9s cosm\u00e9tiques attribu\u00e9es tardivement \u00e9crasent syst\u00e9matiquement les param\u00e8tres d\u00e9finis en amont. Ainsi, lorsqu&rsquo;un utilisateur applique un th\u00e8me pr\u00e9d\u00e9fini global tel que <code>theme_bw()<\/code> ou <code>theme_classic()<\/code>, il est imp\u00e9ratif d&rsquo;injecter les instructions de personnalisation fine de la l\u00e9gende post\u00e9rieurement \u00e0 cette d\u00e9claration globale, sous peine de voir les ajustements \u00e9cras\u00e9s par les valeurs par d\u00e9faut dudit mod\u00e8le.<\/p>\n<h3>1.3 Pr\u00e9paration des donn\u00e9es d&rsquo;exp\u00e9rimentation et environnement R<\/h3>\n<p>Afin de garantir une reproductibilit\u00e9 imm\u00e9diate de l&rsquo;ensemble des d\u00e9monstrations pr\u00e9sent\u00e9es dans cet article, nous mobilisons un environnement de travail \u00e9pur\u00e9 et stabilis\u00e9 reposant sur le c\u0153ur de la collection <a rel=\"noopener noreferrer\" href=\"https:\/\/www.tidyverse.org\/\">tidyverse<\/a>. Les donn\u00e9es exploit\u00e9es pour les premi\u00e8res d\u00e9clinaisons proviennent du jeu de donn\u00e9es morphom\u00e9triques historique collect\u00e9 par Edgar Anderson et popularis\u00e9 par Ronald Fisher, le c\u00e9l\u00e8bre jeu de donn\u00e9es <code>iris<\/code>, int\u00e9gr\u00e9 nativement dans la distribution de base de R. Ce jeu de donn\u00e9es pr\u00e9sente l&rsquo;avantage p\u00e9dagogique de poss\u00e9der trois classes botaniques distinctes caract\u00e9ris\u00e9es par des gradients continus de longueurs et de largeurs de s\u00e9pales et de p\u00e9tales.<\/p>\n<p>Pour initialiser la session d&rsquo;analyse, l&rsquo;environnement doit \u00eatre configur\u00e9 via le chargement explicite des biblioth\u00e8ques n\u00e9cessaires. Nous d\u00e9finissons un canevas graphique minimaliste qui servira d&rsquo;\u00e9talon comparatif tout au long des sections subs\u00e9quentes. Ce canevas met en relation la longueur des s\u00e9pales (axe des abscisses) avec la largeur des s\u00e9pales (axe des ordonn\u00e9es), tout en modulant la pigmentation des marqueurs en fonction de l&rsquo;esp\u00e8ce taxonomique. La syntaxe canonique de base s&rsquo;\u00e9tablit comme suit :<\/p>\n<p><code>library(ggplot2)<\/code><br \/>\n<code>library(dplyr)<\/code><br \/>\n<code>p_base &lt;- ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +<\/code><br \/>\n<code>&nbsp;&nbsp;geom_point(size = 3, alpha = 0.85) +<\/code><br \/>\n<code>&nbsp;&nbsp;labs(x = \"Longueur des s\u00e9pales (cm)\", y = \"Largeur des s\u00e9pales (cm)\", color = \"Esp\u00e8ce\")<\/code><\/p>\n<p>Ce mod\u00e8le graphique g\u00e9n\u00e9rique produit par d\u00e9faut un positionnement p\u00e9riph\u00e9rique standard. \u00c0 partir de cette r\u00e9f\u00e9rence, nous allons diss\u00e9quer l&rsquo;ensemble des alt\u00e9rations syntaxiques envisageables pour restructurer la r\u00e9partition spatiale de l&rsquo;information.<\/p>\n<h2>2. Syntaxe fondamentale : la fonction theme() et l&rsquo;argument legend.position<\/h2>\n<h3>2.1 Anatomie g\u00e9n\u00e9rale de l&rsquo;argument legend.position<\/h3>\n<p>L&rsquo;argument pivot administrant la localisation spatiale de la bo\u00eete de l\u00e9gende est <code>legend.position<\/code>, accessible exclusivement au sein de la fonction d&rsquo;enveloppe <code>theme()<\/code>. La flexibilit\u00e9 remarquable de cet argument r\u00e9side dans sa capacit\u00e9 polymorphique \u00e0 recevoir deux natures distinctes de param\u00e8tres en entr\u00e9e : d&rsquo;une part, des cha\u00eenes de caract\u00e8res pr\u00e9d\u00e9finies assignant des ancrages marginaux cardinaux, et d&rsquo;autre part, des vecteurs num\u00e9riques bidimensionnels d\u00e9terminant des coordonn\u00e9es proportionnelles \u00e0 l&rsquo;int\u00e9rieur du rep\u00e8re cart\u00e9sien.<\/p>\n<p>Lorsque le param\u00e8tre re\u00e7oit une cha\u00eene de caract\u00e8res, les valeurs conventionnelles reconnues par l&rsquo;interpr\u00e9teur graphique sont strictement limit\u00e9es \u00e0 un ensemble ferm\u00e9 de constantes litt\u00e9rales : <code>\"top\"<\/code> (sommet), <code>\"bottom\"<\/code> (base), <code>\"left\"<\/code> (flanc gauche), <code>\"right\"<\/code> (flanc droit, valeur standard par d\u00e9faut) et <code>\"none\"<\/code> (suppression int\u00e9grale du conteneur). \u00c0 l&rsquo;inverse, l&rsquo;injection d&rsquo;un vecteur num\u00e9rique sous la forme <code>c(x, y)<\/code> d\u00e9clenche un mode de calcul g\u00e9om\u00e9trique fond\u00e9 sur une interpolation bilin\u00e9aire rapport\u00e9e \u00e0 l&rsquo;espace de tra\u00e7age normalis\u00e9, dont l&rsquo;origine et les bornes sup\u00e9rieures font l&rsquo;objet d&rsquo;une formalisation math\u00e9matique explicite d\u00e9taill\u00e9e ult\u00e9rieurement.<\/p>\n<h3>2.2 L&#8217;emplacement par d\u00e9faut sous ggplot2 et ses limites<\/h3>\n<p>La d\u00e9cision architecturale initiale d&rsquo;implanter la l\u00e9gende sur le flanc droit (<code>legend.position = \"right\"<\/code>) trouve sa justification dans une volont\u00e9 d&rsquo;universalit\u00e9 : cet emplacement garantit que la zone rectangulaire de guidage n&rsquo;entrera jamais en collision g\u00e9om\u00e9trique directe avec les formes trac\u00e9es au sein du syst\u00e8me cart\u00e9sien, ind\u00e9pendamment de la dispersion ou de la variance des points de donn\u00e9es. Toutefois, cette s\u00e9curit\u00e9 proc\u00e9durale engendre des d\u00e9s\u00e9quilibres visuels manifestes qui nuisent fr\u00e9quemment \u00e0 la qualit\u00e9 \u00e9ditoriale d&rsquo;un manuscrit scientifique.<\/p>\n<p>En premier lieu, le positionnement lat\u00e9ral droit consomme une part substantielle de la dimension horizontale de la page. Dans les revues acad\u00e9miques structur\u00e9es selon une mise en page stricte \u00e0 deux colonnes (\u00e0 l&rsquo;instar des p\u00e9riodiques publi\u00e9s par l&rsquo;IEEE, Nature Research ou Elsevier), la largeur r\u00e9serv\u00e9e \u00e0 une colonne oscille g\u00e9n\u00e9ralement entre 80 et 88 millim\u00e8tres. L&rsquo;amputation de 20 \u00e0 30 millim\u00e8tres sur la bordure droite pour afficher des \u00e9tiquettes textuelles contraint le panneau de donn\u00e9es principal dans un rectangle \u00e9troit. Les axes num\u00e9riques subissent alors un \u00e9crasement horizontal marqu\u00e9, provoquant une distorsion de l&rsquo;aspect visuel des pentes de r\u00e9gression et augmentant le risque de chevauchement typographique des \u00e9tiquettes des graduations num\u00e9riques (<em>tick labels<\/em>).<\/p>\n<h3>2.3 Coh\u00e9rence syntaxique et int\u00e9gration dans le flux d&rsquo;analyse<\/h3>\n<p>Dans la cha\u00eene d&rsquo;ex\u00e9cution d&rsquo;un script d&rsquo;analyse reproductible, la rigueur structurelle est la cl\u00e9 de vo\u00fbte de la maintenabilit\u00e9 du code. Il est hautement recommand\u00e9 d&rsquo;organiser l&rsquo;appel aux calques cosm\u00e9tiques dans un ordre s\u00e9quentiel invariant : d&rsquo;abord la d\u00e9claration des donn\u00e9es et des correspondances esth\u00e9tiques globales, puis l&rsquo;adjonction des g\u00e9om\u00e9tries math\u00e9matiques (<code>geom_*<\/code>), suivie de la configuration des \u00e9chelles statistiques (<code>scale_*<\/code>), des \u00e9tiquettes contextuelles (<code>labs<\/code>), du th\u00e8me global pr\u00e9configur\u00e9, et enfin de la personnalisation chirurgicale des micro-\u00e9l\u00e9ments th\u00e9matiques via <code>theme()<\/code>.<\/p>\n<p>Pour illustrer la gestion des priorit\u00e9s th\u00e9matiques, consid\u00e9rons le fragment de code ci-dessous. Si l&rsquo;appel \u00e0 <code>theme(legend.position = \"bottom\")<\/code> \u00e9tait intercal\u00e9 en amont de <code>theme_minimal()<\/code>, la routine interne de <code>theme_minimal()<\/code> r\u00e9initialiserait la propri\u00e9t\u00e9 de positionnement \u00e0 sa valeur par d\u00e9faut, an\u00e9antissant l&rsquo;ajustement demand\u00e9. L&rsquo;\u00e9criture rigoureuse et p\u00e9renne s&rsquo;\u00e9tablit selon ce sch\u00e9ma s\u00e9quentiel :<\/p>\n<p><code>p_ordonne &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_minimal(base_size = 12) +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"bottom\")<\/code><\/p>\n<p>L&rsquo;adoption syst\u00e9matique de ce canevas structurel pr\u00e9vient les r\u00e9gressions visuelles silencieuses et assure que chaque surcharge stylistique op\u00e8re sur un socle typographique et spatial parfaitement stabilis\u00e9.<\/p>\n<h2>3. Positionnement p\u00e9riph\u00e9rique externe : configuration sur les quatre marges<\/h2>\n<h3>3.1 Disposition sommitale (\u00ab\u00a0top\u00a0\u00bb) pour optimiser les rapports verticaux<\/h3>\n<p>L&rsquo;\u00e9l\u00e9vation de la bo\u00eete de l\u00e9gende vers la marge sup\u00e9rieure du trac\u00e9 par l&rsquo;assignation de la cha\u00eene textuelle <code>\"top\"<\/code> constitue une strat\u00e9gie particuli\u00e8rement adapt\u00e9e aux graphiques pr\u00e9sentant une forte densit\u00e9 horizontale ou destin\u00e9s \u00e0 s&rsquo;ins\u00e9rer dans des maquettes de documents \u00e0 ratio vertical pr\u00e9dominant. Lorsque cette commande est ex\u00e9cut\u00e9e, le moteur interne de <code>ggplot2<\/code> applique une mutation automatique \u00e0 la topologie de la l\u00e9gende : la structure passe d&rsquo;un empilement vertical natif \u00e0 une distribution horizontale des \u00e9l\u00e9ments graphiques.<\/p>\n<figure class=\"wpt-preserved-image\"><img fetchpriority=\"high\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/ggplotLegendPosition1.png\" alt=\"Example of ggplot2 title on top of plot\" \/><figcaption>Example of ggplot2 title on top of plot<\/figcaption><\/figure>\n<p>Cette transition morphologique aligne les cl\u00e9s d&rsquo;identification de mani\u00e8re s\u00e9quentielle de gauche \u00e0 droite, sous la forme d&rsquo;un ruban d&rsquo;en-t\u00eate positionn\u00e9 imm\u00e9diatement sous le titre g\u00e9n\u00e9ral et les sous-titres de la figure, mais au-dessus de la ligne d\u00e9limitant le panneau sup\u00e9rieur de donn\u00e9es. D&rsquo;un point de vue de l&rsquo;ergonomie de lecture, cet agencement s&rsquo;harmonise id\u00e9alement avec le mouvement oculaire naturel de balayage occidental de type \u00ab Z \u00bb, tel que mis en lumi\u00e8re dans les recherches sur l&rsquo;oculom\u00e9trie men\u00e9es par Colin Ware. Le lecteur appr\u00e9hende d&rsquo;abord l&rsquo;intitul\u00e9 de la figure, int\u00e8gre imm\u00e9diatement la nomenclature chromatique ou g\u00e9om\u00e9trique, puis plonge son regard dans la matrice de donn\u00e9es avec une grille d&rsquo;interpr\u00e9tation d\u00e9j\u00e0 consolid\u00e9e dans sa m\u00e9moire imm\u00e9diate.<\/p>\n<p>Le code d&rsquo;impl\u00e9mentation correspondant s&rsquo;articule comme suit :<\/p>\n<p><code>p_top &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"top\")<\/code><\/p>\n<h3>3.2 Disposition basale (\u00ab\u00a0bottom\u00a0\u00bb) pour les graphiques \u00e9tendus<\/h3>\n<p>\u00c0 l&rsquo;oppos\u00e9 de la marge sup\u00e9rieure, le positionnement basal obtenu via la commande <code>legend.position = \"bottom\"<\/code> d\u00e9place l&rsquo;ensemble des descripteurs sous l&rsquo;axe horizontal des abscisses. Cet agencement conf\u00e8re au panneau de dispersion ou aux diagrammes en barres une amplitude lat\u00e9rale maximale, lib\u00e9rant int\u00e9gralement les limites gauche et droite pour les visualisations n\u00e9cessitant une grande finesse de lecture horizontale, \u00e0 l&rsquo;instar des chronogrammes boursiers ou des s\u00e9ries \u00e9pid\u00e9miologiques \u00e9tendues sur plusieurs d\u00e9cennies.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/ggplotLegendPosition2.png\" alt=\"Example of title on bottom of ggplot2\" \/><figcaption>Example of title on bottom of ggplot2<\/figcaption><\/figure>\n<p>Cependant, l&rsquo;introduction d&rsquo;une l\u00e9gende basale impose une vigilance typographique accrue concernant la s\u00e9paration entre les \u00e9tiquettes num\u00e9riques de l&rsquo;axe des <em>x<\/em>, le titre g\u00e9n\u00e9ral dudit axe et les composants textuels de la l\u00e9gende. Par d\u00e9faut, la proximit\u00e9 spatiale de ces trois couches de texte peut cr\u00e9er une sensation de surcharge et induire des ambigu\u00eft\u00e9s s\u00e9mantiques. Le code suivant met en \u0153uvre cette disposition tout en consolidant l&rsquo;espace vertical disponible :<\/p>\n<p><code>p_bottom &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_light() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"bottom\")<\/code><\/p>\n<p>Dans ce contexte, la l\u00e9gende agit comme une note de bas de graphique structurante, id\u00e9ale pour clore le p\u00e9rim\u00e8tre visuel avant les mentions bibliographiques ou les notes m\u00e9thodologiques de source.<\/p>\n<h3>3.3 Disposition lat\u00e9rale gauche (\u00ab\u00a0left\u00a0\u00bb) versus droite (\u00ab\u00a0right\u00a0\u00bb)<\/h3>\n<p>Bien que moins fr\u00e9quemment exploit\u00e9e dans les publications p\u00e9riodiques conventionnelles, l&rsquo;assignation de la l\u00e9gende sur le flanc gauche \u00e0 l&rsquo;aide de l&rsquo;instruction <code>legend.position = \"left\"<\/code> pr\u00e9sente un int\u00e9r\u00eat m\u00e9thodologique notable dans des contextes analytiques sp\u00e9cifiques. Positionn\u00e9e \u00e0 gauche, la l\u00e9gende intercepte le regard de l&rsquo;analyste avant m\u00eame que celui-ci ne p\u00e9n\u00e8tre dans le rep\u00e8re de coordonn\u00e9es, inversant l&rsquo;ordre traditionnel d&rsquo;assimilation perceptuelle.<\/p>\n<p>Le choix entre flanc gauche et flanc droit doit \u00eatre dict\u00e9 par la nature des \u00e9chelles repr\u00e9sent\u00e9es. Lorsque l&rsquo;axe vertical des ordonn\u00e9es porte des \u00e9tiquettes textuelles allong\u00e9es \u2014 comme c&rsquo;est le cas dans les diagrammes de dispersion horizontaux ou les graphiques de type <em>forest plots<\/em> recensant des \u00e9tudes m\u00e9ta-analytiques \u2014, positionner la l\u00e9gende \u00e0 gauche peut accentuer l&rsquo;\u00e9loignement physique entre le d\u00e9but des barres et le point z\u00e9ro du trac\u00e9. En revanche, si la marge droite doit accueillir des annotations marginales, des droites de r\u00e9gression prolong\u00e9es ou des densit\u00e9s de r\u00e9partition (<em>rug plots<\/em>), le transfert de la l\u00e9gende vers le flanc gauche r\u00e9tablit un \u00e9quilibre esth\u00e9tique global. La mise en \u0153uvre syntaxique s&rsquo;op\u00e8re selon le sch\u00e9ma :<\/p>\n<p><code>p_left &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_classic() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"left\")<\/code><\/p>\n<p>La confrontation rigoureuse de ces quatre ancrages p\u00e9riph\u00e9riques d\u00e9montre que le choix des marges n&rsquo;est jamais neutre : chaque bordure red\u00e9finit la g\u00e9om\u00e9trie du rectangle central et dicte une dynamique attentionnelle propre.<\/p>\n<h2>4. Positionnement relatif \u00e0 l&rsquo;int\u00e9rieur du rep\u00e8re cart\u00e9sien<\/h2>\n<h3>4.1 Le syst\u00e8me de coordonn\u00e9es relatives normalis\u00e9es c(x, y)<\/h3>\n<p>L&rsquo;une des fonctionnalit\u00e9s les plus puissantes et \u00e9l\u00e9gantes de <code>ggplot2<\/code> r\u00e9side dans sa capacit\u00e9 \u00e0 d\u00e9sancrer totalement la l\u00e9gende des marges ext\u00e9rieures pour l&rsquo;implanter directement dans l&rsquo;espace utile du panneau de dessin. Cette op\u00e9ration s&rsquo;accomplit en attribuant \u00e0 <code>legend.position<\/code> un vecteur num\u00e9rique de longueur deux : <code>c(x, y)<\/code>. Il est fondamental de souligner que ces valeurs scalaires ne correspondent aucunement aux unit\u00e9s physiques des donn\u00e9es trac\u00e9es sur les axes (comme les centim\u00e8tres ou les milligrammes), mais s&rsquo;expriment dans un syst\u00e8me d&rsquo;espace unitaire abstrait et normalis\u00e9, variant de 0 \u00e0 1.<\/p>\n<p>Dans ce rep\u00e8re norm\u00e9, le couple <code>c(0, 0)<\/code> d\u00e9signe rigoureusement le coin inf\u00e9rieur gauche du panneau de donn\u00e9es (l&rsquo;intersection minimale des axes), tandis que le couple <code>c(1, 1)<\/code> cible l&rsquo;angle sup\u00e9rieur droit extr\u00eame. Par extension, le centre g\u00e9om\u00e9trique exact du graphique est repr\u00e9sent\u00e9 par les coordonn\u00e9es <code>c(0.5, 0.5)<\/code>. L&rsquo;avantage conceptuel de cette abstraction normalis\u00e9e est consid\u00e9rable : la position de la l\u00e9gende demeure stable m\u00eame si l&rsquo;\u00e9tendue des donn\u00e9es d&rsquo;entr\u00e9e subit un filtrage statistique ou si les \u00e9chelles logarithmiques transforment la dynamique des valeurs brutes. Cette approche permet de valoriser les espaces intra-graphiques sous-utilis\u00e9s (souvent appel\u00e9s \u00ab zones blanches \u00bb ou espaces n\u00e9gatifs), \u00e9vitant ainsi tout gaspillage spatial sur les marges ext\u00e9rieures.<\/p>\n<h3>4.2 Insertion dans les quadrants sup\u00e9rieurs : angles haut-droit et haut-gauche<\/h3>\n<p>Dans une vaste majorit\u00e9 de distributions empiriques, en particulier lors de l&rsquo;\u00e9tude de corr\u00e9lations lin\u00e9aires n\u00e9gatives ou de distributions asym\u00e9triques, certains quadrants du rep\u00e8re demeurent d\u00e9pourvus d&rsquo;observations. L&rsquo;angle sup\u00e9rieur droit constitue fr\u00e9quemment un r\u00e9ceptacle de pr\u00e9dilection pour accueillir une l\u00e9gende compacte sans alt\u00e9rer la lecture du nuage de points.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/ggplotLegendPosition3.png\" alt=\"\" \/><\/figure>\n<p>Pour implanter la bo\u00eete de guidage dans ce secteur, les coordonn\u00e9es relatives doivent cibler une zone comprise entre 0.70 et 0.95 sur chaque axe. Par exemple, l&rsquo;affectation du vecteur <code>c(0.85, 0.85)<\/code> positionnera la bo\u00eete dans l&rsquo;angle sup\u00e9rieur droit. R\u00e9ciproquement, dans les configurations o\u00f9 les valeurs de donn\u00e9es croissent de mani\u00e8re exponentielle le long de la diagonale ascendante, l&rsquo;angle sup\u00e9rieur gauche devient l&rsquo;espace r\u00e9siduel optimal. L&rsquo;insertion s&rsquo;op\u00e8re alors via des coordonn\u00e9es proches de <code>c(0.15, 0.85)<\/code>. L&rsquo;exp\u00e9rimentation suivante mat\u00e9rialise l&rsquo;ancrage haut-droit au sein du nuage de donn\u00e9es <code>iris<\/code> :<\/p>\n<p><code>p_inset_haut_droit &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = c(0.85, 0.85))<\/code><\/p>\n<p>Il convient toutefois de veiller \u00e0 ce que la bo\u00eete ainsi incrust\u00e9e ne masque pas de micro-agr\u00e9gats de donn\u00e9es ou des valeurs atypiques isol\u00e9es situ\u00e9es aux fronti\u00e8res sup\u00e9rieures du nuage.<\/p>\n<h3>4.3 Insertion dans les quadrants inf\u00e9rieurs : angles bas-droit et bas-gauche<\/h3>\n<p>Selon une logique sym\u00e9trique, les structures de donn\u00e9es pr\u00e9sentant des pentes positives prononc\u00e9es lib\u00e8rent les quadrants oppos\u00e9s, \u00e0 savoir les secteurs bas-droit et bas-gauche. L&rsquo;ancrage dans l&rsquo;angle inf\u00e9rieur droit est fr\u00e9quemment mobilis\u00e9 lors de la mod\u00e9lisation de r\u00e9gressions sigmo\u00efdales ou logistiques, o\u00f9 les observations s&rsquo;accumulent au plafond et au plancher des bornes asymptotiques.<\/p>\n<p>L&rsquo;impl\u00e9mentation technique d&rsquo;une incrustation en angle inf\u00e9rieur droit mobilise typiquement un couple de coordonn\u00e9es de l&rsquo;ordre de <code>c(0.85, 0.15)<\/code>, tandis que le secteur inf\u00e9rieur gauche sollicite des valeurs voisines de <code>c(0.15, 0.15)<\/code>. Consid\u00e9rons la syntaxe requise pour une disposition bas-droite :<\/p>\n<p><code>p_inset_bas_droit &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_minimal() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = c(0.85, 0.15))<\/code><\/p>\n<p>Cependant, l&rsquo;utilisation brute de ces coordonn\u00e9es r\u00e9v\u00e8le rapidement une limite structurelle : par d\u00e9faut, le point de r\u00e9f\u00e9rence de la l\u00e9gende qui est align\u00e9 sur ces coordonn\u00e9es normalis\u00e9es n&rsquo;est autre que son propre centre de gravit\u00e9 g\u00e9om\u00e9trique. Il en r\u00e9sulte que des coordonn\u00e9es extr\u00eames comme <code>c(0.95, 0.95)<\/code> ont tendance \u00e0 repousser la moiti\u00e9 droite et la moiti\u00e9 sup\u00e9rieure de la bo\u00eete hors du champ visible du graphique. Pour pallier cette d\u00e9rive d&rsquo;ancrage, il devient indispensable de mobiliser conjointement le param\u00e8tre de justification g\u00e9om\u00e9trique.<\/p>\n<h2>5. Ancrage et alignement de pr\u00e9cision avec legend.justification<\/h2>\n<h3>5.1 R\u00f4le et fonctionnement de l&rsquo;argument legend.justification<\/h3>\n<p>L&rsquo;argument <a rel=\"noopener noreferrer\" href=\"https:\/\/ggplot2.tidyverse.org\/reference\/theme.html\">legend.justification<\/a> constitue le compl\u00e9ment m\u00e9canique indissociable de <code>legend.position<\/code> d\u00e8s lors que l&rsquo;on recherche une rigueur d&rsquo;alignement au millim\u00e8tre pr\u00e8s. Tandis que <code>legend.position<\/code> dicte l&#8217;emplacement g\u00e9ographique du point d&rsquo;ancrage sur la surface du canevas, <code>legend.justification<\/code> d\u00e9termine pr\u00e9cis\u00e9ment quelle partie de la bo\u00eete de l\u00e9gende s&rsquo;accroche audit point.<\/p>\n<p>La m\u00e9taphore de la punaise et de la carte illustre parfaitement cette dynamique : <code>legend.position<\/code> indique l&rsquo;endroit exact du mur o\u00f9 la punaise est plant\u00e9e, tandis que <code>legend.justification<\/code> pr\u00e9cise si la punaise transperce le coin sup\u00e9rieur droit, le centre math\u00e9matique ou le coin inf\u00e9rieur gauche de la carte. Par d\u00e9faut, la valeur assign\u00e9e \u00e0 <code>legend.justification<\/code> est <code>\"center\"<\/code> (ou <code>c(0.5, 0.5)<\/code>). Cette configuration standard explique pourquoi une tentative d&rsquo;alignement avec <code>legend.position = c(1, 1)<\/code> conduit in\u00e9vitablement \u00e0 un d\u00e9bordement partiel de la bo\u00eete en dehors du rep\u00e8re : le centre de la l\u00e9gende \u00e9tant cal\u00e9 sur le sommet du cadre, trois quarts de sa surface s&rsquo;\u00e9chappent hors de la zone de visualisation.<\/p>\n<h3>5.2 Calibration fine par coordonn\u00e9es doubles num\u00e9riques<\/h3>\n<p>Pour obtenir un accostage parfait des bordures de la bo\u00eete de l\u00e9gende le long des axes internes du graphique, la m\u00e9thode la plus \u00e9l\u00e9gante et robuste consiste \u00e0 apparier strictement les coordonn\u00e9es de <code>legend.position<\/code> avec celles de <code>legend.justification<\/code> sous leur forme num\u00e9rique vectorielle. Ainsi, pour sceller la bo\u00eete dans le coin sup\u00e9rieur droit sans le moindre millim\u00e8tre de d\u00e9bordement ext\u00e9rieur ni de collision involontaire, on combinera une position \u00e0 <code>c(1, 1)<\/code> avec une justification \u00e0 <code>c(1, 1)<\/code> :<\/p>\n<p><code>p_calibre_haut_droit &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = c(0.98, 0.98),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.justification = c(1, 1)<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><\/p>\n<p>Dans cette configuration, les valeurs <code>0.98<\/code> introduisent une marge de respiration visuelle infime de deux pour cent par rapport aux lignes noires des axes du cadre, garantissant que le trac\u00e9 de la bordure du graphique ne fusionne pas disgracieusement avec le rectangle de la l\u00e9gende. Le tableau ci-dessous synth\u00e9tise les couples de calibration vectorielle recommand\u00e9s pour les quatre coins cardinaux internes :<\/p>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"border-collapse: collapse;width: 100%;margin: 20px 0\">\n<thead>\n<tr style=\"background-color: #f2f2f2\">\n<th>Emplacement cibl\u00e9<\/th>\n<th>Coordonn\u00e9es legend.position<\/th>\n<th>Coordonn\u00e9es legend.justification<\/th>\n<th>Effet visuel obtenu<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Coin sup\u00e9rieur droit<\/td>\n<td><code>c(0.98, 0.98)<\/code><\/td>\n<td><code>c(1, 1)<\/code><\/td>\n<td>Accrochage interne fluide sous le coin nord-est du rep\u00e8re.<\/td>\n<\/tr>\n<tr>\n<td>Coin sup\u00e9rieur gauche<\/td>\n<td><code>c(0.02, 0.98)<\/code><\/td>\n<td><code>c(0, 1)<\/code><\/td>\n<td>Accrochage interne fluide sous le coin nord-ouest du rep\u00e8re.<\/td>\n<\/tr>\n<tr>\n<td>Coin inf\u00e9rieur droit<\/td>\n<td><code>c(0.98, 0.02)<\/code><\/td>\n<td><code>c(1, 0)<\/code><\/td>\n<td>Accrochage interne reposant sur le coin sud-est du rep\u00e8re.<\/td>\n<\/tr>\n<tr>\n<td>Coin inf\u00e9rieur gauche<\/td>\n<td><code>c(0.02, 0.02)<\/code><\/td>\n<td><code>c(0, 0)<\/code><\/td>\n<td>Accrochage interne reposant sur l&rsquo;origine sud-ouest (z\u00e9ro).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>5.3 Traitement des marges int\u00e9rieures via legend.margin et legend.box.margin<\/h3>\n<p>L&rsquo;insertion d&rsquo;une l\u00e9gende au sein du panneau de donn\u00e9es n\u00e9cessite \u00e9galement un ajustement rigoureux des marges int\u00e9rieures (<em>padding<\/em>) pour \u00e9viter que le conteneur ne prenne une extension spatiale d\u00e9mesur\u00e9e. <code>ggplot2<\/code> distingue deux param\u00e8tres de marge hi\u00e9rarchiquement imbriqu\u00e9s : <code>legend.margin<\/code>, qui gouverne l&rsquo;espace entourant individuellement chaque guide esth\u00e9tique, et <code>legend.box.margin<\/code>, qui encadre le conteneur global englobant les multiples l\u00e9gendes \u00e9ventuelles.<\/p>\n<p>Par d\u00e9faut, ces marges int\u00e8grent des zones tampons blanches relativement volumineuses qui augmentent artificiellement l&#8217;emprise de la bo\u00eete et risquent de masquer des observations sous-jacentes. L&rsquo;optimisation de la compacit\u00e9 passe par l&rsquo;utilisation conjointe de la fonction <code>margin()<\/code> pour compresser ces espaces r\u00e9siduels au strict minimum typographique :<\/p>\n<p><code>p_compacte &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = c(0.98, 0.98),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.justification = c(1, 1),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.margin = margin(t = 2, r = 4, b = 2, l = 4, unit = \"pt\"),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.box.margin = margin(0, 0, 0, 0, unit = \"pt\")<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><\/p>\n<p>Cette densification g\u00e9om\u00e9trique pr\u00e9serve la visibilit\u00e9 des donn\u00e9es adjacentes tout en fournissant une structure d&rsquo;identification imm\u00e9diatement exploitable.<\/p>\n<h2>6. Suppression int\u00e9grale et masquage s\u00e9lectif des l\u00e9gendes<\/h2>\n<h3>6.1 \u00c9limination globale par theme(legend.position = \u00ab\u00a0none\u00a0\u00bb)<\/h3>\n<p>Bien que la l\u00e9gende soit un vecteur fondamental d&rsquo;intelligibilit\u00e9, de nombreuses situations analytiques commandent sa suppression pure et simple. L&rsquo;\u00e9limination int\u00e9grale de toute bo\u00eete de guidage constitue la syntaxe canonique employ\u00e9e d\u00e8s lors que l&rsquo;information cat\u00e9gorielle est rendue redondante par d&rsquo;autres canaux s\u00e9miotiques, ou lorsqu&rsquo;un \u00e9tiquetage textuel direct est appliqu\u00e9 \u00e0 m\u00eame les courbes g\u00e9om\u00e9triques.<\/p>\n<p>L&rsquo;\u00e9radication globale de l&rsquo;appareil de l\u00e9gende s&rsquo;ex\u00e9cute de mani\u00e8re \u00e9l\u00e9gante et concise en passant la valeur textuelle <code>\"none\"<\/code> \u00e0 l&rsquo;argument <code>legend.position<\/code>. Cette op\u00e9ration r\u00e9affecte instantan\u00e9ment la totalit\u00e9 de l&rsquo;espace marginal horizontal et vertical au panneau cart\u00e9sien de donn\u00e9es. La surface d&rsquo;affichage disponible s&rsquo;en trouve agrandie, ce qui optimise la r\u00e9solution visuelle des points :<\/p>\n<p><code>p_sans_legende &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_classic() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"none\")<\/code><\/p>\n<p>Ce proc\u00e9d\u00e9 est tout particuli\u00e8rement recommand\u00e9 lorsque les donn\u00e9es font l&rsquo;objet d&rsquo;une facettisation o\u00f9 chaque sous-groupe est d\u00e9j\u00e0 isol\u00e9 dans un panneau individuel dot\u00e9 d&rsquo;un en-t\u00eate explicite, rendant la l\u00e9gende chromatique strictement tautologique.<\/p>\n<h3>6.2 Masquage au niveau de la couche g\u00e9om\u00e9trique avec show.legend = FALSE<\/h3>\n<p>Dans des contextes analytiques plus nuanc\u00e9s, le praticien peut souhaiter conserver la l\u00e9gende g\u00e9n\u00e9r\u00e9e par une couche g\u00e9om\u00e9trique tout en occultant d\u00e9lib\u00e9r\u00e9ment celle produite par un calque secondaire. Cet arbitrage s&rsquo;av\u00e8re particuli\u00e8rement utile lors de la superposition d&rsquo;annotations, de nuages de dispersion enrichis d&rsquo;une droite de r\u00e9gression globale issue de <code>geom_smooth()<\/code>, ou de l&rsquo;adjonction de contours d&rsquo;intervalles de confiance.<\/p>\n<p>La commande globale <code>theme(legend.position = \"none\")<\/code> est incapable d&rsquo;op\u00e9rer cette distinction fine. L&rsquo;instrument adapt\u00e9 r\u00e9side dans l&rsquo;argument logique <code>show.legend = FALSE<\/code>, directement implant\u00e9 au sein de l&rsquo;instruction g\u00e9om\u00e9trique concern\u00e9e. Consid\u00e9rons l&rsquo;exemple suivant, o\u00f9 une droite de r\u00e9gression lin\u00e9aire est trac\u00e9e au-dessus des observations botaniques d&rsquo;<code>iris<\/code>. Sans intervention, <code>ggplot2<\/code> ajouterait automatiquement une cl\u00e9 de l\u00e9gende parasite mat\u00e9rialisant la ligne de tendance. En appliquant <code>show.legend = FALSE<\/code> sur la couche lissante, seule l&rsquo;esth\u00e9tique relative \u00e0 la distribution factorielle des esp\u00e8ces est conserv\u00e9e :<\/p>\n<p><code>p_selectif &lt;- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +<\/code><br \/>\n<code>&nbsp;&nbsp;geom_point(aes(color = Species), size = 3) +<\/code><br \/>\n<code>&nbsp;&nbsp;geom_smooth(method = \"lm\", color = \"black\", se = FALSE, show.legend = FALSE) +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_minimal()<\/code><\/p>\n<p>Ce m\u00e9canisme garantit que la l\u00e9gende finale demeure circonscrite aux seules variables taxonomiques d&rsquo;int\u00e9r\u00eat exp\u00e9rimental, pr\u00e9servant la nettet\u00e9 interpr\u00e9tative du graphique.<\/p>\n<h3>6.3 Suppression cibl\u00e9e d&rsquo;une esth\u00e9tique particuli\u00e8re via guides()<\/h3>\n<p>Un cas de figure complexe survient fr\u00e9quemment dans les visualisations multivari\u00e9es combinant simultan\u00e9ment plusieurs variables esth\u00e9tiques distinctes, par exemple lorsqu&rsquo;une variable continue r\u00e9git la dimension des marqueurs (<code>size<\/code>) tandis qu&rsquo;une variable qualitative module leur pigmentation (<code>color<\/code>) et qu&rsquo;une troisi\u00e8me gouverne la g\u00e9om\u00e9trie de leur glyphe (<code>shape<\/code>). Dans ce contexte, <code>ggplot2<\/code> construit autant de blocs de l\u00e9gende ind\u00e9pendants qu&rsquo;il existe d&rsquo;esth\u00e9tiques cartographi\u00e9es.<\/p>\n<p>Si l&rsquo;analyste souhaite occulter une seule de ces \u00e9chelles tout en pr\u00e9servant le rendu et l&rsquo;agencement spatial des autres, la fonction d&rsquo;arbitrage de haut niveau <a rel=\"noopener noreferrer\" href=\"https:\/\/ggplot2.tidyverse.org\/reference\/guides.html\">guides()<\/a> offre le levier d&rsquo;action le plus pr\u00e9cis. En assignant la cha\u00eene <code>\"none\"<\/code> \u00e0 l&rsquo;argument d&rsquo;esth\u00e9tique cible au sein de <code>guides()<\/code>, le traceur neutralise sp\u00e9cifiquement la production de ce guide sans d\u00e9naturer le trac\u00e9 des donn\u00e9es :<\/p>\n<p><code>p_multivarie &lt;- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species, size = Petal.Length)) +<\/code><br \/>\n<code>&nbsp;&nbsp;geom_point(alpha = 0.7) +<\/code><br \/>\n<code>&nbsp;&nbsp;guides(size = \"none\") +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"right\")<\/code><\/p>\n<p>Cette approche chirurgicale \u00e9limine la redondance d&rsquo;un descripteur dimensionnel secondaire jug\u00e9 superflu pour l&rsquo;auditoire final, tout en conservant la segmentation chromatique essentielle des cat\u00e9gories d&rsquo;esp\u00e8ces.<\/p>\n<h2>7. Contr\u00f4le de l&rsquo;orientation et structure interne : legend.direction et guides<\/h2>\n<h3>7.1 Basculement de l&rsquo;orientation avec legend.direction<\/h3>\n<p>La disposition spatiale de la l\u00e9gende le long d&rsquo;une bordure ou \u00e0 l&rsquo;int\u00e9rieur du trac\u00e9 ne r\u00e9sout pas \u00e0 elle seule l&rsquo;agencement interne des \u00e9l\u00e9ments qui la composent. L&rsquo;argument <code>legend.direction<\/code> intervient pour arbitrer la lin\u00e9arit\u00e9 du flux de pr\u00e9sentation des symboles et de leurs \u00e9tiquettes textuelles respectives. Cet argument accepte deux \u00e9tats d&rsquo;orientation exclusifs : <code>\"vertical\"<\/code> et <code>\"horizontal\"<\/code>.<\/p>\n<p>Bien que <code>ggplot2<\/code> applique de fa\u00e7on heuristique une orientation verticale lorsque la l\u00e9gende est plac\u00e9e \u00e0 droite ou \u00e0 gauche, et une orientation horizontale lorsqu&rsquo;elle migre au sommet ou \u00e0 la base, cette logique par d\u00e9faut entre parfois en contradiction avec la morphologie intrins\u00e8que du jeu de donn\u00e9es. Par exemple, si une l\u00e9gende plac\u00e9e au bas du trac\u00e9 comporte sept modalit\u00e9s aux libell\u00e9s textuels tr\u00e8s longs, une orientation horizontale stricte sur une seule ligne d\u00e9bordera in\u00e9vitablement sur les c\u00f4t\u00e9s de la page. R\u00e9ciproquement, pour une l\u00e9gende ins\u00e9r\u00e9e \u00e0 l&rsquo;int\u00e9rieur du rep\u00e8re cart\u00e9sien via <code>legend.position = c(0.85, 0.85)<\/code>, il est fr\u00e9quent que le formatage vertical par d\u00e9faut s&rsquo;av\u00e8re trop encombrant en hauteur. L&rsquo;utilisateur peut contraindre explicitement la g\u00e9om\u00e9trie interne via <code>legend.direction<\/code> :<\/p>\n<p><code>p_direction &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = \"top\",<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.direction = \"vertical\"<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><\/p>\n<h3>7.2 Structuration en lignes et colonnes avec guide_legend()<\/h3>\n<p>Pour d\u00e9passer les contraintes binaires de <code>legend.direction<\/code> et modeler pr\u00e9cis\u00e9ment la matrice g\u00e9om\u00e9trique des symboles, il est indispensable de mobiliser la fonction g\u00e9n\u00e9ratrice d&rsquo;\u00e9chelle <code>guide_legend()<\/code>. Cette derni\u00e8re autorise un partitionnement bidimensionnel arbitraire par l&rsquo;interm\u00e9diaire de ses arguments cardinaux <code>nrow<\/code> (nombre de rang\u00e9es horizontales) et <code>ncol<\/code> (nombre de colonnes verticales).<\/p>\n<p>Consid\u00e9rons le cas d&rsquo;une l\u00e9gende comportant douze cat\u00e9gories exp\u00e9rimentales dispos\u00e9e au sommet d&rsquo;une figure. Afficher douze \u00e9l\u00e9ments sur une unique rang\u00e9e engendre une typographie microscopique et illisible. \u00c0 l&rsquo;inverse, laisser les douze modalit\u00e9s sur une seule colonne verticale obstrue le trac\u00e9 des donn\u00e9es. La solution m\u00e9thodologique optimale consiste \u00e0 structurer la l\u00e9gende sous la forme d&rsquo;un tableau \u00e9quilibr\u00e9 de trois rang\u00e9es et quatre colonnes :<\/p>\n<p><code>p_matrice_guide &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;guides(color = guide_legend(nrow = 1, byrow = TRUE)) +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"bottom\")<\/code><\/p>\n<p>L&rsquo;argument logique compl\u00e9mentaire <code>byrow = TRUE<\/code> garantit que l&rsquo;incr\u00e9mentation des modalit\u00e9s s&rsquo;organise horizontalement de gauche \u00e0 droite avant de descendre \u00e0 la ligne suivante, pr\u00e9servant ainsi l&rsquo;ordre alphab\u00e9tique ou logique naturel dans le sens conventionnel de lecture.<\/p>\n<h3>7.3 Agencement de plusieurs blocs de l\u00e9gende avec legend.box<\/h3>\n<p>D\u00e8s lors qu&rsquo;un graphique sollicite simultan\u00e9ment plusieurs dimensions esth\u00e9tiques autonomes (comme <code>color<\/code> pour les groupes et <code>shape<\/code> pour les conditions de traitement), <code>ggplot2<\/code> mat\u00e9rialise deux bo\u00eetes de l\u00e9gendes distinctes r\u00e9unies au sein d&rsquo;un m\u00e9ta-conteneur global (<em>legend box<\/em>). Le contr\u00f4le de l&#8217;empilement mutuel de ces diff\u00e9rents conteneurs est d\u00e9volu \u00e0 l&rsquo;argument <code>legend.box<\/code>.<\/p>\n<p>Par d\u00e9faut, ces blocs multiples sont empil\u00e9s selon un alignement vertical lorsque la position est lat\u00e9rale. Cependant, lors d&rsquo;un positionnement en pied de graphique (<code>\"bottom\"<\/code>), cette superposition verticale cr\u00e9e une perte d&rsquo;espace b\u00e9ante sous le trac\u00e9. En configurant <code>legend.box = \"horizontal\"<\/code>, les deux blocs de l\u00e9gende sont r\u00e9align\u00e9s c\u00f4te \u00e0 c\u00f4te le long de l&rsquo;axe horizontal. De surcro\u00eet, l&rsquo;ajustement fin de la respiration entre les blocs s&rsquo;effectue via <code>legend.spacing<\/code> :<\/p>\n<p><code>p_multi_box &lt;- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species, shape = Species)) +<\/code><br \/>\n<code>&nbsp;&nbsp;geom_point(size = 3) +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = \"bottom\",<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.box = \"horizontal\",<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.spacing.x = unit(1, \"cm\")<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><\/p>\n<p>Ce niveau de modularit\u00e9 garantit un \u00e9quilibre morphologique parfait, m\u00eame face aux architectures graphiques composites les plus charg\u00e9es.<\/p>\n<h2>8. Personnalisation esth\u00e9tique du conteneur de l\u00e9gende<\/h2>\n<h3>8.1 Application d&rsquo;un arri\u00e8re-plan opaque, transparent ou semi-transparent<\/h3>\n<p>L&rsquo;immersion d&rsquo;une l\u00e9gende \u00e0 l&rsquo;int\u00e9rieur du rep\u00e8re cart\u00e9sien normalis\u00e9 pose imm\u00e9diatement le probl\u00e8me de sa visibilit\u00e9 relative et de sa coexistence avec les points de donn\u00e9es situ\u00e9s en arri\u00e8re-plan. Si la bo\u00eete de l\u00e9gende poss\u00e8de un arri\u00e8re-plan rigoureusement opaque, elle occulte irr\u00e9m\u00e9diablement les donn\u00e9es situ\u00e9es sous sa surface, ce qui constitue une faute m\u00e9thodologique majeure pouvant masquer des grappes d&rsquo;\u00e9chantillons cruciales. R\u00e9ciproquement, une bo\u00eete enti\u00e8rement d\u00e9nu\u00e9e d&rsquo;arri\u00e8re-plan expose le texte descriptif \u00e0 des collisions directes avec les donn\u00e9es trac\u00e9es, rendant les libell\u00e9s totalement illisibles.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/ggplotLegendPosition4.png\" alt=\"\" \/><\/figure>\n<p>La solution d&rsquo;ing\u00e9nierie visuelle r\u00e9side dans la modulation de l&rsquo;opacit\u00e9 \u00e0 l&rsquo;aide de l&rsquo;argument <code>legend.background<\/code> coupl\u00e9 \u00e0 la fonction <a rel=\"noopener noreferrer\" href=\"https:\/\/ggplot2.tidyverse.org\/reference\/element.html\">element_rect()<\/a>. L&rsquo;injection d&rsquo;une composante d&rsquo;opacit\u00e9 partielle (canal alpha) au sein de la couleur d&rsquo;arri\u00e8re-plan cr\u00e9e un voile semi-transparent id\u00e9al :<\/p>\n<p><code>p_alpha_box &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = c(0.85, 0.85),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.justification = c(1, 1),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.background = element_rect(fill = alpha(\"white\", 0.75), color = NA)<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><\/p>\n<p>Dans les configurations d&rsquo;affichage o\u00f9 le secteur d&rsquo;ancrage est totalement vierge de toute observation, la bo\u00eete peut \u00eatre rendue enti\u00e8rement translucide via l&rsquo;assignation radicale <code>legend.background = element_blank()<\/code>, assurant une int\u00e9gration d&rsquo;une grande puret\u00e9 visuelle.<\/p>\n<h3>8.2 Encadrement et bordures d\u00e9coratives de la bo\u00eete<\/h3>\n<p>Pour conf\u00e9rer une rigueur g\u00e9om\u00e9trique accrue \u00e0 la l\u00e9gende incrust\u00e9e, l&rsquo;adjonction d&rsquo;une fine bordure p\u00e9riph\u00e9rique permet de d\u00e9limiter formellement le territoire s\u00e9mantique de guidage par rapport \u00e0 l&rsquo;espace physique des donn\u00e9es. L&rsquo;argument <code>element_rect()<\/code> re\u00e7oit alors des param\u00e8tres explicites de couleur (<code>color<\/code> ou <code>colour<\/code>), d&rsquo;\u00e9paisseur de contour (<code>linewidth<\/code>) et \u00e9ventuellement de type de trac\u00e9 (<code>linetype<\/code>).<\/p>\n<p>Il est imp\u00e9ratif d&rsquo;adopter des valeurs de contour mesur\u00e9es afin d&rsquo;\u00e9viter l&rsquo;\u00e9cueil de la surcharge graphique. Une bordure noire \u00e9paisse attire ind\u00fbment l&rsquo;\u0153il au d\u00e9triment des points exp\u00e9rimentaux. Un filet gris discret d&rsquo;une largeur de 0.3 \u00e0 0.5 point remplit parfaitement cet office sans enfreindre la sobri\u00e9t\u00e9 stylistique requise dans les revues \u00e0 comit\u00e9 de lecture :<\/p>\n<p><code>p_bordure &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = c(0.95, 0.95),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.justification = c(1, 1),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.background = element_rect(fill = \"white\", color = \"grey60\", linewidth = 0.4, linetype = \"solid\")<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><\/p>\n<h3>8.3 Personnalisation des symboles et des \u00e9tiquettes textuelles<\/h3>\n<p>L&rsquo;optimisation globale de l&rsquo;interface de guidage exige un contr\u00f4le sym\u00e9trique sur les dimensions internes des symboles (les cl\u00e9s graphiques ou <em>legend keys<\/em>) et sur la hi\u00e9rarchie typographique des descripteurs textuels. L&rsquo;argument <code>legend.key<\/code>, stylis\u00e9 par <code>element_rect()<\/code>, permet notamment de purger l&rsquo;arri\u00e8re-plan gris\u00e2tre historique caract\u00e9ristique du th\u00e8me originel de <code>ggplot2<\/code>.<\/p>\n<p>Par ailleurs, la dimension physique des \u00e9chantillons graphiques se calibre au moyen de <code>legend.key.size<\/code> (ou de ses d\u00e9clinaisons univari\u00e9es <code>legend.key.height<\/code> et <code>legend.key.width<\/code>), tandis que la typographie du titre de l\u00e9gende et des libell\u00e9s de cat\u00e9gories est r\u00e9gie respectivement par <code>legend.title<\/code> et <code>legend.text<\/code>, tous deux pilot\u00e9s par la fonction <a rel=\"noopener noreferrer\" href=\"https:\/\/ggplot2.tidyverse.org\/reference\/element.html\">element_text()<\/a> :<\/p>\n<p><code>p_typo_complete &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = c(0.95, 0.05),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.justification = c(1, 0),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.key = element_blank(),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.key.size = unit(0.5, \"cm\"),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.title = element_text(face = \"bold\", size = 10, color = \"black\"),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.text = element_text(size = 9, face = \"italic\", color = \"grey20\")<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><\/p>\n<p>Cette harmonisation globale garantit que chaque composant microscopique de la l\u00e9gende converge vers une coh\u00e9rence \u00e9ditoriale irr\u00e9prochable.<\/p>\n<h2>9. Gestion des l\u00e9gendes dans les agencements \u00e0 facettes (facet_wrap et facet_grid)<\/h2>\n<h3>9.1 Comportement par d\u00e9faut des l\u00e9gendes sur les panneaux partitionn\u00e9s<\/h3>\n<p>La segmentation d&rsquo;un jeu de donn\u00e9es multidimensionnel en sous-ensembles graphiques homog\u00e8nes constitue l&rsquo;un des piliers m\u00e9thodologiques formalis\u00e9s par Edward Tufte sous l&rsquo;appellation de \u00ab petits multiples \u00bb (<em>small multiples<\/em>). Sous <code>ggplot2<\/code>, ce paradigme est mat\u00e9rialis\u00e9 par les puissantes fonctions de partitionnement spatial <a rel=\"noopener noreferrer\" href=\"https:\/\/ggplot2.tidyverse.org\/reference\/facet_wrap.html\">facet_wrap()<\/a> et <code>facet_grid()<\/code>. Par construction architecturale, le syst\u00e8me extrait automatiquement une l\u00e9gende unifi\u00e9e et centralis\u00e9e pour l&rsquo;ensemble de la matrice de sous-trac\u00e9s, la positionnant par d\u00e9faut sur le flanc ext\u00e9rieur droit du canevas partitionn\u00e9.<\/p>\n<p>Si ce principe de mutualisation centralis\u00e9e \u00e9vite la duplication redondante des cl\u00e9s explicatives au sein de chaque panneau, il g\u00e9n\u00e8re un d\u00e9s\u00e9quilibre spatial particuli\u00e8rement criant sur les agencements massifs comprenant de trois \u00e0 douze facettes. Le panneau global de donn\u00e9es s&rsquo;\u00e9largit consid\u00e9rablement, repoussant la l\u00e9gende \u00e0 une distance physique disproportionn\u00e9e des premiers sous-graphiques situ\u00e9s sur la colonne de gauche. Cette \u00e9longation accentue de nouveau l&rsquo;effet d&rsquo;attention divis\u00e9e et d\u00e9grade l&rsquo;efficacit\u00e9 de la comparaison instantan\u00e9e inter-panneaux.<\/p>\n<h3>9.2 Incrustation de la l\u00e9gende dans une facette vide<\/h3>\n<p>Un d\u00e9fi esth\u00e9tique et spatial r\u00e9current appara\u00eet lorsqu&rsquo;un chercheur d\u00e9ploie un partitionnement via <code>facet_wrap()<\/code> sur une variable factorielle dont le nombre total de modalit\u00e9s ne correspond pas \u00e0 un multiple exact de la grille dimensionnelle choisie (par exemple, 5 modalit\u00e9s r\u00e9parties sur une grille de 2 lignes et 3 colonnes, ou 7 modalit\u00e9s sur une grille 3&#215;3). Ce cas de figure laisse in\u00e9vitablement une ou plusieurs cellules enti\u00e8rement vierges d&rsquo;observations dans les coins de la matrice.<\/p>\n<p>Laisser un quadrant rectangulaire totalement vide au sein d&rsquo;une figure destin\u00e9e \u00e0 une publication prestigieuse constitue un gaspillage d&rsquo;espace flagrant. Bien que les versions standard de <code>ggplot2<\/code> n&rsquo;aient longtemps pas offert de m\u00e9canisme automatis\u00e9 pour r\u00e9soudre cette anomalie, l&rsquo;introduction r\u00e9cente de param\u00e8tres avanc\u00e9s au sein de la fonction <code>facet_wrap()<\/code> (notamment via l&rsquo;argument <code>axes<\/code>) coupl\u00e9e \u00e0 des extensions sp\u00e9cialis\u00e9es ou \u00e0 un r\u00e9glage millim\u00e9tr\u00e9 de coordonn\u00e9es permet d\u00e9sormais d&rsquo;orienter la l\u00e9gende centrale directement dans l&rsquo;enceinte de cette facette orpheline. L&rsquo;astuce consiste \u00e0 combiner une l\u00e9gende sans arri\u00e8re-plan avec des coordonn\u00e9es d&rsquo;insertion calcul\u00e9es par rapport \u00e0 l&#8217;emprise totale du canevas, transformant une lacune g\u00e9om\u00e9trique en un espace informationnel utile.<\/p>\n<h3>9.3 Partage et mutualisation de l\u00e9gendes avec patchwork et cowplot<\/h3>\n<p>Dans le flux d&rsquo;analyse de donn\u00e9es avanc\u00e9es, la production de figures composites associant des types de visualisations radicalement disparates (par exemple, la juxtaposition d&rsquo;un nuage de points corr\u00e9lationnel, d&rsquo;un boxplot de distribution factorielle et d&rsquo;un chronogramme longitudinal) d\u00e9passe le p\u00e9rim\u00e8tre d&rsquo;action du moteur natif de <code>facet_*<\/code>. Les chercheurs recourent alors \u00e0 des extensions de mise en page composite de haut niveau telles que <a rel=\"noopener noreferrer\" href=\"https:\/\/patchwork.data-imaginist.com\/\">patchwork<\/a> ou <code>cowplot<\/code>.<\/p>\n<figure class=\"wpt-preserved-image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/french.arabpsychology.com\/wp-content\/uploads\/2026\/09\/ggplotLegendPosition5.png\" alt=\"\" \/><\/figure>\n<p>Le d\u00e9fi majeur de ces assemblages h\u00e9t\u00e9rog\u00e8nes r\u00e9side dans l&rsquo;apparition r\u00e9currente de l\u00e9gendes dupliqu\u00e9es qui encombrent inutilement chaque panneau \u00e9l\u00e9mentaire. Avec <code>patchwork<\/code>, la rationalisation s&rsquo;ex\u00e9cute avec une remarquable fluidit\u00e9 syntaxique au moyen de l&rsquo;instruction <code>plot_layout(guides = \"collect\")<\/code>. Cette commande inspecte l&rsquo;arbre de composition, identifie les \u00e9chelles esth\u00e9tiques strictement identiques, proc\u00e8de \u00e0 l&rsquo;extraction d&rsquo;une l\u00e9gende mutualis\u00e9e unique et autorise sa relocalisation strat\u00e9gique au sommet ou au bas de l&rsquo;ensemble de la planche composite :<\/p>\n<p><code>library(patchwork)<\/code><br \/>\n<code>p1 &lt;- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) + geom_point() + theme_minimal()<\/code><br \/>\n<code>p2 &lt;- ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) + geom_boxplot() + theme_minimal()<\/code><br \/>\n<code>planche_composite &lt;- (p1 + p2) +<\/code><br \/>\n<code>&nbsp;&nbsp;plot_layout(guides = \"collect\") &amp;<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"bottom\")<\/code><\/p>\n<p>L&rsquo;utilisation de l&rsquo;op\u00e9rateur d&rsquo;application globale <code>&amp;<\/code> assure que l&rsquo;instruction th\u00e9matique s&rsquo;injecte de mani\u00e8re homog\u00e8ne sur chacun des sous-graphiques du tableau composite, conf\u00e9rant \u00e0 la publication une coh\u00e9rence stylistique absolue.<\/p>\n<h2>10. Cas pratiques d&rsquo;application sur donn\u00e9es comportementales et quantitatives<\/h2>\n<h3>10.1 Nuage de points corr\u00e9lationnel avec incrustation interne<\/h3>\n<p>Afin de d\u00e9montrer l&rsquo;int\u00e9r\u00eat translationnel de ces m\u00e9thodologies, d\u00e9veloppons un cas pratique contextualis\u00e9 issu de la psychologie diff\u00e9rentielle et des neurosciences comportementales. Imaginons une \u00e9tude mod\u00e9lisant le temps de r\u00e9action moyen d&rsquo;individus (en millisecondes) en fonction de leur niveau de stress per\u00e7u quantifi\u00e9 sur une \u00e9chelle psychom\u00e9trique standardis\u00e9e, le tout stratifi\u00e9 selon trois profils cliniques distincts : Sujets T\u00e9moins, Groupe Anxi\u00e9t\u00e9 Mod\u00e9r\u00e9e et Groupe Trouble Panique.<\/p>\n<p>Pour des raisons de lisibilit\u00e9 dans le cadre d&rsquo;une communication scientifique, nous choisissons d&rsquo;incruster la l\u00e9gende dans l&rsquo;espace vide situ\u00e9 dans l&rsquo;angle sup\u00e9rieur gauche du graphique, le nuage pr\u00e9sentant une pente corr\u00e9lationnelle ascendante vers la droite. Le script R complet se structure ainsi :<\/p>\n<p><code>set.seed(42)<\/code><br \/>\n<code>n &lt;- 150<\/code><br \/>\n<code>donnees_psycho &lt;- data.frame(<\/code><br \/>\n<code>&nbsp;&nbsp;Stress = runif(n, 10, 50),<\/code><br \/>\n<code>&nbsp;&nbsp;Groupe = factor(rep(c(\"T\u00e9moin\", \"Anxi\u00e9t\u00e9\", \"Panique\"), each = 50))<\/code><br \/>\n<code>)<\/code><br \/>\n<code>donnees_psycho<span class=\"arabpsy-math-inline\" data-latex=\"TempsReaction &lt;- 200 + 3.5 * donnees_psycho\">$TempsReaction &lt;- 200 + 3.5 * donnees_psycho$<\/span>Stress + as.numeric(donnees_psycho$Groupe) * 35 + rnorm(n, 0, 15)<\/code><\/p>\n<p><code>p_cognitif &lt;- ggplot(donnees_psycho, aes(x = Stress, y = TempsReaction, color = Groupe, shape = Groupe)) +<\/code><br \/>\n<code>&nbsp;&nbsp;geom_point(size = 2.8, alpha = 0.8) +<\/code><br \/>\n<code>&nbsp;&nbsp;scale_color_brewer(palette = \"Dark2\") +<\/code><br \/>\n<code>&nbsp;&nbsp;labs(x = \"Score de stress per\u00e7u (PST)\", y = \"Temps de r\u00e9action (ms)\", color = \"Cohorte clinique :\", shape = \"Cohorte clinique :\") +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_classic(base_size = 11) +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = c(0.05, 0.95),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.justification = c(0, 1),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.background = element_rect(fill = alpha(\"white\", 0.6), color = \"grey80\", linewidth = 0.3),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.margin = margin(4, 6, 4, 6)<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><\/p>\n<p>Cette disposition met en valeur les donn\u00e9es exp\u00e9rimentales tout en s&rsquo;assurant qu&rsquo;aucun point n&rsquo;est masqu\u00e9 par la bo\u00eete explicative.<\/p>\n<h3>10.2 Histogrammes superpos\u00e9s et courbes de densit\u00e9 : positionnement en bandeau<\/h3>\n<p>L&rsquo;analyse des formes distributionnelles continues via des courbes d&rsquo;estimation de la densit\u00e9 par noyau (<em>kernel density estimation<\/em>) constitue un second domaine d&rsquo;application critique. Lors de la superposition des densit\u00e9s de probabilit\u00e9 de deux ou trois groupes, la hauteur maximale des courbes atteint g\u00e9n\u00e9ralement son sommet dans la zone m\u00e9diane de l&rsquo;axe des abscisses, laissant la marge sommitale sup\u00e9rieure totalement d\u00e9gag\u00e9e.<\/p>\n<p>Le positionnement de la l\u00e9gende sous la forme d&rsquo;un bandeau sommital horizontal unifi\u00e9 lib\u00e8re l&rsquo;axe des abscisses de toute comp\u00e9tition visuelle avec les libell\u00e9s de donn\u00e9es. La suppression d\u00e9lib\u00e9r\u00e9e des bo\u00eetes individuelles de symboles (<code>legend.key = element_blank()<\/code>) all\u00e8ge consid\u00e9rablement la figure :<\/p>\n<p><code>p_densite &lt;- ggplot(iris, aes(x = Sepal.Length, fill = Species)) +<\/code><br \/>\n<code>&nbsp;&nbsp;geom_density(alpha = 0.45, color = \"white\", linewidth = 0.5) +<\/code><br \/>\n<code>&nbsp;&nbsp;scale_fill_viridis_d(option = \"mako\", begin = 0.2, end = 0.8) +<\/code><br \/>\n<code>&nbsp;&nbsp;labs(x = \"Longueur des s\u00e9pales (cm)\", y = \"Densit\u00e9 estim\u00e9e\", fill = \"Taxonomie :\") +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_minimal(base_size = 12) +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = \"top\",<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.direction = \"horizontal\",<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.justification = \"center\",<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.title = element_text(face = \"bold\", size = 10),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;panel.grid.minor = element_blank()<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><\/p>\n<p>Cette approche garantit une int\u00e9gration naturelle et fluide des descripteurs distributionnels dans la dynamique de lecture de la figure.<\/p>\n<h3>10.3 Graphique longitudinal de profils d&rsquo;\u00e9volution avec \u00e9tiquetage direct<\/h3>\n<p>Dans l&rsquo;analyse de s\u00e9ries temporelles longitudinales regroupant plusieurs cohortes de patients suivis sur de multiples jalons temporels, la confrontation r\u00e9p\u00e9t\u00e9e \u00e0 une l\u00e9gende p\u00e9riph\u00e9rique externe d\u00e9grade s\u00e9v\u00e8rement la lisibilit\u00e9. L&rsquo;\u0153il humain \u00e9prouve de lourdes difficult\u00e9s \u00e0 associer des teintes chromatiques proches r\u00e9parties sur des trajectoires lin\u00e9aires qui s&rsquo;entrecroisent \u00e0 travers le temps.<\/p>\n<p>La m\u00e9thodologie graphique la plus aboutie consiste ici \u00e0 combiner l&rsquo;\u00e9limination totale de la l\u00e9gende conventionnelle via <code>theme(legend.position = \"none\")<\/code> avec un \u00e9tiquetage textuel direct (<em>direct labeling<\/em>) positionn\u00e9 imm\u00e9diatement \u00e0 l&rsquo;extr\u00e9mit\u00e9 terminale de chaque trajectoire temporelle \u00e0 l&rsquo;aide de <code>geom_text()<\/code> ou de l&rsquo;extension de r\u00e9pulsion typographique <a rel=\"noopener noreferrer\" href=\"https:\/\/ggrepel.slowkow.com\/\">ggrepel<\/a> :<\/p>\n<p><code>donnees_suivi &lt;- iris %&gt;%<\/code><br \/>\n<code>&nbsp;&nbsp;group_by(Species) %&gt;%<\/code><br \/>\n<code>&nbsp;&nbsp;summarise(Petal.Length = mean(Petal.Length), Petal.Width = mean(Petal.Width))<\/code><\/p>\n<p><code>p_direct &lt;- ggplot(iris, aes(x = Petal.Length, y = Petal.Width, color = Species)) +<\/code><br \/>\n<code>&nbsp;&nbsp;geom_point(alpha = 0.3) +<\/code><br \/>\n<code>&nbsp;&nbsp;geom_text(data = donnees_suivi, aes(label = Species), hjust = -0.15, fontface = \"bold\", size = 4.5) +<\/code><br \/>\n<code>&nbsp;&nbsp;coord_cartesian(xlim = c(1, 8.5)) +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_classic() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"none\")<\/code><\/p>\n<p>Ce paradigme supprime radicalement toute charge cognitive de d\u00e9codage : le vecteur textuel fait corps avec l&rsquo;observation physique, incarnant l&rsquo;id\u00e9al ergonomique promu par les standards contemporains de la visualisation scientifique.<\/p>\n<h2>11. Exportation scientifique, redimensionnement et conformit\u00e9 aux normes APA<\/h2>\n<h3>11.1 Cons\u00e9quences de ggsave() sur les coordonn\u00e9es relatives de position<\/h3>\n<p>L&rsquo;une des d\u00e9convenues techniques les plus frustrantes rencontr\u00e9es par les chercheurs lors de la pr\u00e9paration de leurs manuscrits concerne la d\u00e9rive spatiale des l\u00e9gendes incrust\u00e9es lors de l&rsquo;exportation sur disque via la commande <a rel=\"noopener noreferrer\" href=\"https:\/\/ggplot2.tidyverse.org\/reference\/ggsave.html\">ggsave()<\/a>. Un graphique dont l&rsquo;ancrage interne para\u00eet rigoureusement millim\u00e9tr\u00e9 au sein de la fen\u00eatre de pr\u00e9visualisation interactive de l&rsquo;environnement RStudio peut voir sa bo\u00eete de l\u00e9gende glisser hors cadre ou heurter les points de donn\u00e9es une fois export\u00e9 dans un fichier externe au format PDF ou PNG.<\/p>\n<p>Ce ph\u00e9nom\u00e8ne physique d\u00e9coule de la nature math\u00e9matique des coordonn\u00e9es normalis\u00e9es <code>c(x, y)<\/code>. Ces valeurs sont relatives aux proportions dimensionnelles globales du p\u00e9riph\u00e9rique graphique ouvert (<em>aspect ratio<\/em>). Si le ratio entre la largeur et la hauteur du trac\u00e9 est modifi\u00e9 lors de l&rsquo;appel de <code>ggsave(filename, width = ..., height = ...)<\/code>, la surface relative du panneau cart\u00e9sien se d\u00e9forme, d\u00e9pla\u00e7ant le point d&rsquo;ancrage calcul\u00e9. La bonne pratique m\u00e9thodologique imp\u00e9rative impose de calibrer les coordonn\u00e9es de <code>legend.position<\/code> exclusivement en observant le rendu produit avec les dimensions physiques finales verrouill\u00e9es dans <code>ggsave()<\/code> :<\/p>\n<p><code>ggsave(\"figure_1.pdf\", plot = p_calibre_haut_droit, width = 16, height = 12, units = \"cm\", dpi = 300)<\/code><\/p>\n<h3>11.2 Alignement strict sur les normes \u00e9ditoriales APA (7e \u00e9dition)<\/h3>\n<p>Les directives \u00e9ditoriales fix\u00e9es par la septi\u00e8me \u00e9dition du manuel de style de l&rsquo;American Psychological Association (APA 7th Edition) dictent des contraintes draconiennes pour la publication des figures quantitatives. L&rsquo;APA proscrit cat\u00e9goriquement les \u00e9l\u00e9ments d\u00e9coratifs non indispensables, les quadrillages verticaux agressifs, ainsi que les encadrements rectangulaires superflus autour des l\u00e9gendes graphiques.<\/p>\n<p>Pour se conformer rigoureusement aux normes de l&rsquo;APA, une figure sous <code>ggplot2<\/code> doit privil\u00e9gier un th\u00e8me sobre d\u00e9pouill\u00e9 de tout trait de cadrage, adosser ses \u00e9tiquettes \u00e0 une police sans-serif standardis\u00e9e (\u00e0 l&rsquo;instar d&rsquo;Arial ou d&rsquo;Helvetica), positionner la l\u00e9gende de pr\u00e9f\u00e9rence sous le graphique ou incrust\u00e9e sans la moindre bordure d\u00e9limitante, et laisser un contraste chromatique compatible avec la reproduction en niveaux de gris. Le bloc de configuration APA se formalise typiquement de la mani\u00e8re suivante :<\/p>\n<p><code>theme_apa &lt;- function(base_size = 11) {<\/code><br \/>\n<code>&nbsp;&nbsp;theme_classic(base_size = base_size) +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = \"bottom\",<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.direction = \"horizontal\",<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.title = element_text(face = \"bold\", size = base_size),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.text = element_text(size = base_size - 1),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.background = element_blank(),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.key = element_blank(),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;axis.line = element_line(linewidth = 0.5, color = \"black\"),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;axis.text = element_text(color = \"black\")<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><br \/>\n<code>}<\/code><\/p>\n<p>Cette matrice stylistique assure une acceptation imm\u00e9diate de la silhouette graphique par les relecteurs et \u00e9diteurs techniques des p\u00e9riodiques internationaux les plus exigeants.<\/p>\n<h3>11.3 Pr\u00e9servation de la nettet\u00e9 et formats vectoriels (PDF, SVG, TIFF)<\/h3>\n<p>L&rsquo;assurance d&rsquo;une nettet\u00e9 parfaite des l\u00e9gendes \u00e0 l&rsquo;impression scientifique requiert un arbitrage rigoureux quant au format de compression du fichier g\u00e9n\u00e9r\u00e9. La typographie d&rsquo;une l\u00e9gende et la minutie des glyphes g\u00e9om\u00e9triques (en particulier les motifs hachur\u00e9s ou les petits marqueurs de dispersion) tol\u00e8rent mal la pixellisation induite par des formats matriciels mal r\u00e9solus comme les formats JPEG ou PNG \u00e0 72 DPI.<\/p>\n<p>Pour les soumissions de manuscrits acad\u00e9miques, les formats vectoriels purs tels que le PDF natif (<code>device = cairo_pdf<\/code>) ou le SVG (<em>Scalable Vector Graphics<\/em>) doivent \u00eatre syst\u00e9matiquement privil\u00e9gi\u00e9s. Dans ces formats, chaque lettre de la l\u00e9gende et chaque contour d&rsquo;ic\u00f4ne sont encod\u00e9s sous la forme d&rsquo;instructions g\u00e9om\u00e9triques polynomiales math\u00e9matiques, autorisant un agrandissement infini sans la moindre d\u00e9gradation de r\u00e9solution. Lorsqu&rsquo;un format matriciel est formellement exig\u00e9 par l&rsquo;\u00e9diteur (exigence fr\u00e9quente pour la plateforme d&rsquo;impression des revues de biologie cellulaire), l&rsquo;exportation doit imp\u00e9rativement cibler le format TIFF non compress\u00e9 avec une r\u00e9solution calibr\u00e9e \u00e0 un seuil minimal de 600 voire 1200 points par pouce :<\/p>\n<p><code>ggsave(\"figure_haute_resolution.tiff\", plot = p_apa, width = 14, height = 10, units = \"cm\", dpi = 600, compression = \"lzw\")<\/code><\/p>\n<h2>12. Diagnostic des anomalies fr\u00e9quentes et synth\u00e8se des meilleures pratiques<\/h2>\n<h3>12.1 R\u00e9solution des conflits caus\u00e9s par l&rsquo;ordre d&rsquo;application des th\u00e8mes<\/h3>\n<p>L&rsquo;anomalie de programmation la plus fr\u00e9quemment constat\u00e9e chez les utilisateurs de <code>ggplot2<\/code> r\u00e9side dans l&rsquo;annulation involontaire de la personnalisation de leur l\u00e9gende par suite d&rsquo;une mauvaise structuration de l&rsquo;ordre d&rsquo;\u00e9valuation des instructions th\u00e9matiques. Un statisticien d\u00e9butant \u00e9crit couramment la s\u00e9quence erron\u00e9e suivante :<\/p>\n<p><code># CODE ERRONE :<\/code><br \/>\n<code>p_err &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"bottom\") +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw()<\/code><\/p>\n<p>Lors de l&rsquo;\u00e9valuation de cette expression, le moteur graphique applique d&rsquo;abord scrupuleusement la position basale sur le canevas, mais l&rsquo;instruction subs\u00e9quente <code>theme_bw()<\/code> \u00e9crase instantan\u00e9ment l&rsquo;ensemble des d\u00e9finitions cosm\u00e9tiques pr\u00e9existantes en restaurant la valeur canonique par d\u00e9faut du th\u00e8me noir et blanc, \u00e0 savoir <code>legend.position = \"right\"<\/code>. La r\u00e8gle d&rsquo;or m\u00e9thodique et absolue s&rsquo;\u00e9nonce donc comme suit : <strong>les th\u00e8mes complets pr\u00e9d\u00e9finis doivent imp\u00e9rativement \u00eatre d\u00e9clar\u00e9s en premier<\/strong>, et les surcharges sp\u00e9cifiques via <code>theme()<\/code> doivent clore la cha\u00eene de commande :<\/p>\n<p><code># CODE CORRECT ET FONCTIONNEL :<\/code><br \/>\n<code>p_valide &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_bw() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(legend.position = \"bottom\")<\/code><\/p>\n<h3>12.2 D\u00e9pannage des l\u00e9gendes tronqu\u00e9es ou repouss\u00e9es hors cadre<\/h3>\n<p>Une seconde pathologie graphique fr\u00e9quente se mat\u00e9rialise lorsque les libell\u00e9s textuels des modalit\u00e9s de l\u00e9gende sont exceptionnellement longs, provoquant le tronquage des derniers caract\u00e8res alphab\u00e9tiques qui s&rsquo;\u00e9chappent hors des marges physiques de l&rsquo;image. Ce d\u00e9faut appara\u00eet particuli\u00e8rement lors de l&rsquo;attribution de la l\u00e9gende \u00e0 droite ou \u00e0 gauche sans redimensionnement appropri\u00e9 des marges d&#8217;emprise globales.<\/p>\n<p>Pour endiguer ce ph\u00e9nom\u00e8ne de cisaillement, deux interventions correctives compl\u00e9mentaires doivent \u00eatre mobilis\u00e9es. La premi\u00e8re consiste \u00e0 \u00e9tendre la marge p\u00e9riph\u00e9rique externe du trac\u00e9 au moyen de l&rsquo;argument <code>plot.margin<\/code> au sein de <code>theme()<\/code>, allouant ainsi une zone tampon confortable pour accueillir les expansions de texte. La seconde m\u00e9thode fait appel \u00e0 la d\u00e9sactivation du m\u00e9canisme de coupure g\u00e9om\u00e9trique au sein du syst\u00e8me de coordonn\u00e9es, via l&rsquo;assignation du param\u00e8tre <code>clip = \"off\"<\/code> au sein de <a rel=\"noopener noreferrer\" href=\"https:\/\/ggplot2.tidyverse.org\/reference\/coord_cartesian.html\">coord_cartesian()<\/a> :<\/p>\n<p><code>p_depannage &lt;- p_base +<\/code><br \/>\n<code>&nbsp;&nbsp;coord_cartesian(clip = \"off\") +<\/code><br \/>\n<code>&nbsp;&nbsp;theme_minimal() +<\/code><br \/>\n<code>&nbsp;&nbsp;theme(<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;plot.margin = margin(t = 15, r = 35, b = 15, l = 15, unit = \"pt\"),<\/code><br \/>\n<code>&nbsp;&nbsp;&nbsp;&nbsp;legend.position = \"right\"<\/code><br \/>\n<code>&nbsp;&nbsp;)<\/code><\/p>\n<p>Cette pr\u00e9caution \u00e9vite tout rognage typographique disgracieux lors du rendu raster ou vectoriel final.<\/p>\n<h3>12.3 Synth\u00e8se op\u00e9rationnelle et liste de contr\u00f4le m\u00e9thodologique<\/h3>\n<p>Pour clore cette analyse technique et fournir aux analystes de donn\u00e9es un cadre de travail imm\u00e9diatement mobilisable en routine professionnelle, nous pr\u00e9sentons ci-dessous une liste de contr\u00f4le m\u00e9thodologique en cinq points cardinaux \u00e0 v\u00e9rifier avant d&rsquo;engager la validation d\u00e9finitive d&rsquo;une figure statistique pour publication :<\/p>\n<ul>\n<li><strong>V\u00e9rification de la pertinence de l&rsquo;information :<\/strong> La pr\u00e9sence de la l\u00e9gende est-elle strictement indispensable, ou peut-elle \u00eatre remplac\u00e9e avec profit par un \u00e9tiquetage textuel direct le long des g\u00e9om\u00e9tries ou par des titres de facettes explicites ?<\/li>\n<li><strong>Optimisation de la trajectoire du regard :<\/strong> La l\u00e9gende est-elle implant\u00e9e de mani\u00e8re \u00e0 minimiser la distance euclidienne avec les donn\u00e9es focales (par exemple par incrustation interne semi-transparente dans un quadrant vide), pr\u00e9venant ainsi la fatigue oculaire li\u00e9e \u00e0 l&rsquo;attention divis\u00e9e ?<\/li>\n<li><strong>Ordre immuable de composition th\u00e9matique :<\/strong> Les r\u00e9glages chirurgicaux de <code>legend.position<\/code> et <code>legend.justification<\/code> sont-ils positionn\u00e9s rigoureusement en aval de toute d\u00e9claration de th\u00e8me pr\u00e9configur\u00e9 au sein du pipeline <code>ggplot2<\/code> ?<\/li>\n<li><strong>Absence absolue d&rsquo;occultation de donn\u00e9es :<\/strong> Si la bo\u00eete de l\u00e9gende est incrust\u00e9e \u00e0 l&rsquo;int\u00e9rieur du plan cart\u00e9sien, son arri\u00e8re-plan poss\u00e8de-t-il une transparence calibr\u00e9e (canal alpha) ou des marges v\u00e9rifi\u00e9es pour garantir qu&rsquo;aucune observation isol\u00e9e n&rsquo;est occult\u00e9e ?<\/li>\n<li><strong>Stabilit\u00e9 g\u00e9om\u00e9trique \u00e0 l&rsquo;exportation :<\/strong> L&rsquo;alignement et les proportions relatives de la bo\u00eete de guidage ont-ils \u00e9t\u00e9 inspect\u00e9s visuellement sur le fichier d&rsquo;exportation final g\u00e9n\u00e9r\u00e9 par <code>ggsave()<\/code> selon ses dimensions physiques r\u00e9elles et son format vectoriel d\u00e9finitif ?<\/li>\n<\/ul>\n<p>En respectant ces pr\u00e9ceptes avec rigueur, le praticien s&rsquo;assure que ses visualisations de donn\u00e9es s&rsquo;\u00e9l\u00e8vent au plus haut degr\u00e9 de pr\u00e9cision quantitative et d&rsquo;\u00e9l\u00e9gance typographique exig\u00e9 par la communaut\u00e9 scientifique internationale.<\/p>\n<h2>R\u00e9f\u00e9rences<\/h2>\n<ul style=\"list-style-type: none;padding-left: 0\">\n<li style=\"margin-bottom: 12px\">American Psychological Association. (2020). <em>Publication manual of the American Psychological Association<\/em> (7th ed.). American Psychological Association. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1037\/0000165-000\">https:\/\/doi.org\/10.1037\/0000165-000<\/a><\/li>\n<li style=\"margin-bottom: 12px\">Cleveland, W. S., &amp; McGill, R. (1984). Graphical perception: Theory, experimentation, and application to the development of graphical methods. <em>Journal of the American Statistical Association<\/em>, 79(387), 531\u2013554. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1080\/01621459.1984.10478080\">https:\/\/doi.org\/10.1080\/01621459.1984.10478080<\/a><\/li>\n<li style=\"margin-bottom: 12px\">Pedersen, T. L. (2020). <em>patchwork: The composer of plots<\/em> (R package version 1.1.1). Comprehensive R Archive Network. <a rel=\"noopener noreferrer\" href=\"https:\/\/CRAN.R-project.org\/package=patchwork\">https:\/\/CRAN.R-project.org\/package=patchwork<\/a><\/li>\n<li style=\"margin-bottom: 12px\">Slowikowski, K. (2021). <em>ggrepel: Automatically position non-overlapping text labels with &lsquo;ggplot2&rsquo;<\/em> (R package version 0.9.1). Comprehensive R Archive Network. <a rel=\"noopener noreferrer\" href=\"https:\/\/CRAN.R-project.org\/package=ggrepel\">https:\/\/CRAN.R-project.org\/package=ggrepel<\/a><\/li>\n<li style=\"margin-bottom: 12px\">Sweller, J. (2011). Cognitive load theory. In J. P. Mestre &amp; B. H. Ross (Eds.), <em>The psychology of learning and motivation: Cognition in education<\/em> (Vol. 55, pp. 37\u201376). Academic Press. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1016\/B973008-01055-6.00002-8\">https:\/\/doi.org\/10.1016\/B973008-01055-6.00002-8<\/a><\/li>\n<li style=\"margin-bottom: 12px\">Tufte, E. R. (2001). <em>The visual display of quantitative information<\/em> (2nd ed.). Graphics Press.<\/li>\n<li style=\"margin-bottom: 12px\">Ware, C. (2019). <em>Information visualization: Perception for design<\/em> (4th ed.). Morgan Kaufmann. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1016\/C2017-0-02058-2\">https:\/\/doi.org\/10.1016\/C2017-0-02058-2<\/a><\/li>\n<li style=\"margin-bottom: 12px\">Wickham, H. (2016). <em>ggplot2: Elegant graphics for data analysis<\/em> (2nd ed.). Springer-Verlag. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1007\/978-3-319-24277-4\">https:\/\/doi.org\/10.1007\/978-3-319-24277-4<\/a><\/li>\n<li style=\"margin-bottom: 12px\">Wilkinson, L. (2005). <em>The grammar of graphics<\/em> (2nd ed.). Springer Science &amp; Business Media. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1007\/0-387-28695-0\">https:\/\/doi.org\/10.1007\/0-387-28695-0<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Guide complet pour ma\u00eetriser le positionnement de la l\u00e9gende dans ggplot2 sous R : syntaxes, coordonn\u00e9es internes, suppression et cas pratiques comment\u00e9s.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","categories":[2193,2687],"tags":[2688,3358,8955,2658,2041],"class_list":["post-7586","psych_stat","type-psych_stat","status-publish","hentry","category-programmation-r","category-visualisation-de-donnees","tag-ggplot2","tag-graphiques-scientifiques","tag-legend-position","tag-r","tag-visualisation-de-donnees"],"_links":{"self":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/7586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat"}],"about":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/types\/psych_stat"}],"author":[{"embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7586"}],"version-history":[{"count":1,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/7586\/revisions"}],"predecessor-version":[{"id":7592,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/7586\/revisions\/7592"}],"wp:attachment":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}