From 0bfaac698cd341a6c223efe225a4c7e3b596c007 Mon Sep 17 00:00:00 2001
From: Grant McDermott <grant.mcdermott@gmail.com>
Date: Sat, 19 Jul 2025 13:49:45 -0700
Subject: [PATCH 1/9] text.width = NA

---
 R/draw_legend.R | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/R/draw_legend.R b/R/draw_legend.R
index ce960e6b..5aabce45 100644
--- a/R/draw_legend.R
+++ b/R/draw_legend.R
@@ -331,6 +331,14 @@ draw_legend = function(
 
       legend_args[["horiz"]] = TRUE
 
+      # tighter labeling
+      # See: https://github.com/grantmcdermott/tinyplot/issues/434
+      if (!gradient) {
+        legend_args[["text.width"]] = NA
+        nlabs = length(legend_args[["legend"]])
+        legend_args[["legend"]][-nlabs] = paste(legend_args[["legend"]][-nlabs], " ")
+      }
+
       # Catch for horizontal ribbon legend spacing
       if (type=="ribbon" && isTRUE(legend_args[["horiz"]])) {
         if (legend_args[["pt.lwd"]] == 1) {

From 5863ca22eddae422a49cf189b9c799e0bfb963d5 Mon Sep 17 00:00:00 2001
From: Grant McDermott <grant.mcdermott@gmail.com>
Date: Sat, 19 Jul 2025 14:23:06 -0700
Subject: [PATCH 2/9] catch for user-specified ncol

---
 R/draw_legend.R | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/R/draw_legend.R b/R/draw_legend.R
index 5aabce45..3f627aa8 100644
--- a/R/draw_legend.R
+++ b/R/draw_legend.R
@@ -329,7 +329,9 @@ draw_legend = function(
         }
       }
 
-      legend_args[["horiz"]] = TRUE
+      # enforce horizontal legend if user hasn't specified ncol arg
+      # (exception: gradient legends at bottom/top are always horizontal)
+      if (is.null(legend_args[["ncol"]]) || gradient) legend_args[["horiz"]] = TRUE
 
       # tighter labeling
       # See: https://github.com/grantmcdermott/tinyplot/issues/434
@@ -340,7 +342,8 @@ draw_legend = function(
       }
 
       # Catch for horizontal ribbon legend spacing
-      if (type=="ribbon" && isTRUE(legend_args[["horiz"]])) {
+      # if (type=="ribbon" && isTRUE(legend_args[["horiz"]])) {
+      if (type=="ribbon") {
         if (legend_args[["pt.lwd"]] == 1) {
           legend_args[["x.intersp"]] = 1
         } else {

From 31b6673a8390edf16eda17d61b275b2ff639d8a0 Mon Sep 17 00:00:00 2001
From: Grant McDermott <grant.mcdermott@gmail.com>
Date: Sat, 19 Jul 2025 14:44:15 -0700
Subject: [PATCH 3/9] move horiz spacing logic to catch right!/left! ncol > 1
 cases too

---
 R/draw_legend.R | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/R/draw_legend.R b/R/draw_legend.R
index 3f627aa8..5435e88d 100644
--- a/R/draw_legend.R
+++ b/R/draw_legend.R
@@ -333,31 +333,32 @@ draw_legend = function(
       # (exception: gradient legends at bottom/top are always horizontal)
       if (is.null(legend_args[["ncol"]]) || gradient) legend_args[["horiz"]] = TRUE
 
-      # tighter labeling
+    } else {
+      
+      legend_args[["inset"]] = 0
+      if (new_plot && draw) plot.new()
+      
+    }
+  
+    # Additional tweaks for horiz and/or multi-column legends
+    if (isTRUE(legend_args[["horiz"]]) ||  !is.null(legend_args[["ncol"]])) {
+      # tighter horizontal labelling
       # See: https://github.com/grantmcdermott/tinyplot/issues/434
       if (!gradient) {
         legend_args[["text.width"]] = NA
         nlabs = length(legend_args[["legend"]])
         legend_args[["legend"]][-nlabs] = paste(legend_args[["legend"]][-nlabs], " ")
       }
-
-      # Catch for horizontal ribbon legend spacing
-      # if (type=="ribbon" && isTRUE(legend_args[["horiz"]])) {
+      # catch for horizontal ribbon legend spacing
       if (type=="ribbon") {
         if (legend_args[["pt.lwd"]] == 1) {
           legend_args[["x.intersp"]] = 1
         } else {
           legend_args[["x.intersp"]] = 0.5
         }
-      } else if (gradient && isTRUE(legend_args[["horiz"]])) {
+      } else if (gradient) {
         legend_args[["x.intersp"]] = 0.5
       }
-      
-    } else {
-      
-      legend_args[["inset"]] = 0
-      if (new_plot && draw) plot.new()
-      
     }
     
     #

From fc89596ef0653db6e77fec17e67504bb67445f9b Mon Sep 17 00:00:00 2001
From: Grant McDermott <grant.mcdermott@gmail.com>
Date: Sat, 19 Jul 2025 14:48:42 -0700
Subject: [PATCH 4/9] update tests

---
 .../_tinysnapshot/density_legend_bottom.svg   |  8 ++++----
 .../_tinysnapshot/legend_default_legend.svg   | 20 +++++++++----------
 .../_tinysnapshot/legend_formula_legend.svg   | 20 +++++++++----------
 .../_tinysnapshot/legend_keyword_default.svg  | 18 ++++++++---------
 .../_tinysnapshot/legend_keyword_formula.svg  | 18 ++++++++---------
 .../legend_keyword_outerbottom.svg            | 18 ++++++++---------
 .../_tinysnapshot/legend_keyword_outertop.svg | 18 ++++++++---------
 .../_tinysnapshot/legend_lmar_bottom.svg      | 20 +++++++++----------
 .../_tinysnapshot/legend_lmar_top.svg         | 20 +++++++++----------
 .../_tinysnapshot/legend_multiline_bottom.svg | 20 +++++++++----------
 .../_tinysnapshot/legend_multiline_top.svg    | 20 +++++++++----------
 .../_tinysnapshot/readme_legend_bottom.svg    | 20 +++++++++----------
 .../_tinysnapshot/restore_par_bottom.svg      | 14 ++++++-------
 .../_tinysnapshot/tinytheme_legend_bottom.svg |  8 ++++----
 14 files changed, 121 insertions(+), 121 deletions(-)

diff --git a/inst/tinytest/_tinysnapshot/density_legend_bottom.svg b/inst/tinytest/_tinysnapshot/density_legend_bottom.svg
index dacb7d94..c9088eb3 100644
--- a/inst/tinytest/_tinysnapshot/density_legend_bottom.svg
+++ b/inst/tinytest/_tinysnapshot/density_legend_bottom.svg
@@ -26,11 +26,11 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<line x1='224.63' y1='488.16' x2='246.23' y2='488.16' style='stroke-width: 0.75;' />
-<line x1='274.50' y1='488.16' x2='296.10' y2='488.16' style='stroke-width: 0.75; stroke: #DF536B;' />
+<line x1='221.30' y1='488.16' x2='242.90' y2='488.16' style='stroke-width: 0.75;' />
+<line x1='277.83' y1='488.16' x2='299.43' y2='488.16' style='stroke-width: 0.75; stroke: #DF536B;' />
 <text x='266.40' y='473.76' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='16.67px' lengthAdjust='spacingAndGlyphs'>am</text>
-<text x='257.03' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>0</text>
-<text x='306.90' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>1</text>
+<text x='253.70' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>0  </text>
+<text x='310.23' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>1</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0NDQuOTY='>
diff --git a/inst/tinytest/_tinysnapshot/legend_default_legend.svg b/inst/tinytest/_tinysnapshot/legend_default_legend.svg
index fed1ab42..82de1245 100644
--- a/inst/tinytest/_tinysnapshot/legend_default_legend.svg
+++ b/inst/tinytest/_tinysnapshot/legend_default_legend.svg
@@ -26,18 +26,18 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<rect x='193.02' y='459.36' width='146.76' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
-<circle cx='203.82' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='232.09' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<rect x='179.71' y='459.36' width='173.38' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
+<circle cx='190.51' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='225.44' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
 <circle cx='260.36' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
-<circle cx='288.64' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
-<circle cx='316.91' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<circle cx='295.29' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='330.22' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='473.76' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='93.34px' lengthAdjust='spacingAndGlyphs'>Month of the year</text>
-<text x='214.62' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='242.89' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='299.44' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='327.71' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='201.31' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='236.24' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='306.09' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='341.02' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0NDQuOTY='>
diff --git a/inst/tinytest/_tinysnapshot/legend_formula_legend.svg b/inst/tinytest/_tinysnapshot/legend_formula_legend.svg
index fed1ab42..82de1245 100644
--- a/inst/tinytest/_tinysnapshot/legend_formula_legend.svg
+++ b/inst/tinytest/_tinysnapshot/legend_formula_legend.svg
@@ -26,18 +26,18 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<rect x='193.02' y='459.36' width='146.76' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
-<circle cx='203.82' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='232.09' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<rect x='179.71' y='459.36' width='173.38' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
+<circle cx='190.51' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='225.44' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
 <circle cx='260.36' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
-<circle cx='288.64' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
-<circle cx='316.91' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<circle cx='295.29' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='330.22' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='473.76' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='93.34px' lengthAdjust='spacingAndGlyphs'>Month of the year</text>
-<text x='214.62' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='242.89' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='299.44' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='327.71' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='201.31' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='236.24' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='306.09' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='341.02' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0NDQuOTY='>
diff --git a/inst/tinytest/_tinysnapshot/legend_keyword_default.svg b/inst/tinytest/_tinysnapshot/legend_keyword_default.svg
index 7807b4fc..39bb588a 100644
--- a/inst/tinytest/_tinysnapshot/legend_keyword_default.svg
+++ b/inst/tinytest/_tinysnapshot/legend_keyword_default.svg
@@ -26,17 +26,17 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<circle cx='203.82' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='232.09' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<circle cx='190.51' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='225.44' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
 <circle cx='260.36' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
-<circle cx='288.64' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
-<circle cx='316.91' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<circle cx='295.29' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='330.22' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='473.76' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='33.34px' lengthAdjust='spacingAndGlyphs'>Month</text>
-<text x='214.62' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='242.89' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='299.44' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='327.71' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='201.31' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='236.24' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='306.09' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='341.02' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0NDQuOTY='>
diff --git a/inst/tinytest/_tinysnapshot/legend_keyword_formula.svg b/inst/tinytest/_tinysnapshot/legend_keyword_formula.svg
index 7807b4fc..39bb588a 100644
--- a/inst/tinytest/_tinysnapshot/legend_keyword_formula.svg
+++ b/inst/tinytest/_tinysnapshot/legend_keyword_formula.svg
@@ -26,17 +26,17 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<circle cx='203.82' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='232.09' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<circle cx='190.51' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='225.44' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
 <circle cx='260.36' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
-<circle cx='288.64' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
-<circle cx='316.91' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<circle cx='295.29' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='330.22' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='473.76' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='33.34px' lengthAdjust='spacingAndGlyphs'>Month</text>
-<text x='214.62' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='242.89' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='299.44' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='327.71' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='201.31' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='236.24' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='306.09' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='341.02' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0NDQuOTY='>
diff --git a/inst/tinytest/_tinysnapshot/legend_keyword_outerbottom.svg b/inst/tinytest/_tinysnapshot/legend_keyword_outerbottom.svg
index 7807b4fc..39bb588a 100644
--- a/inst/tinytest/_tinysnapshot/legend_keyword_outerbottom.svg
+++ b/inst/tinytest/_tinysnapshot/legend_keyword_outerbottom.svg
@@ -26,17 +26,17 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<circle cx='203.82' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='232.09' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<circle cx='190.51' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='225.44' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
 <circle cx='260.36' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
-<circle cx='288.64' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
-<circle cx='316.91' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<circle cx='295.29' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='330.22' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='473.76' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='33.34px' lengthAdjust='spacingAndGlyphs'>Month</text>
-<text x='214.62' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='242.89' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='299.44' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='327.71' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='201.31' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='236.24' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='306.09' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='341.02' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0NDQuOTY='>
diff --git a/inst/tinytest/_tinysnapshot/legend_keyword_outertop.svg b/inst/tinytest/_tinysnapshot/legend_keyword_outertop.svg
index de95ed57..4f514de5 100644
--- a/inst/tinytest/_tinysnapshot/legend_keyword_outertop.svg
+++ b/inst/tinytest/_tinysnapshot/legend_keyword_outertop.svg
@@ -26,17 +26,17 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<circle cx='203.82' cy='87.84' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='232.09' cy='87.84' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<circle cx='190.51' cy='87.84' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='225.44' cy='87.84' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
 <circle cx='260.36' cy='87.84' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
-<circle cx='288.64' cy='87.84' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
-<circle cx='316.91' cy='87.84' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<circle cx='295.29' cy='87.84' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='330.22' cy='87.84' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='73.44' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='33.34px' lengthAdjust='spacingAndGlyphs'>Month</text>
-<text x='214.62' y='91.97' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='242.89' y='91.97' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='271.16' y='91.97' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='299.44' y='91.97' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='327.71' y='91.97' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='201.31' y='91.97' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='236.24' y='91.97' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='271.16' y='91.97' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='306.09' y='91.97' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='341.02' y='91.97' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MS40NHw1MDQuMDA='>
diff --git a/inst/tinytest/_tinysnapshot/legend_lmar_bottom.svg b/inst/tinytest/_tinysnapshot/legend_lmar_bottom.svg
index 092d655e..348e5bc7 100644
--- a/inst/tinytest/_tinysnapshot/legend_lmar_bottom.svg
+++ b/inst/tinytest/_tinysnapshot/legend_lmar_bottom.svg
@@ -26,18 +26,18 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<rect x='193.02' y='453.60' width='146.76' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
-<circle cx='203.82' cy='482.40' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='232.09' cy='482.40' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<rect x='179.71' y='453.60' width='173.38' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
+<circle cx='190.51' cy='482.40' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='225.44' cy='482.40' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
 <circle cx='260.36' cy='482.40' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
-<circle cx='288.64' cy='482.40' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
-<circle cx='316.91' cy='482.40' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<circle cx='295.29' cy='482.40' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='330.22' cy='482.40' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='468.00' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='33.34px' lengthAdjust='spacingAndGlyphs'>Month</text>
-<text x='214.62' y='486.53' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='242.89' y='486.53' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='271.16' y='486.53' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='299.44' y='486.53' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='327.71' y='486.53' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='201.31' y='486.53' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='236.24' y='486.53' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='271.16' y='486.53' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='306.09' y='486.53' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='341.02' y='486.53' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0MzIuMDA='>
diff --git a/inst/tinytest/_tinysnapshot/legend_lmar_top.svg b/inst/tinytest/_tinysnapshot/legend_lmar_top.svg
index 4d7ce50e..2c1943a7 100644
--- a/inst/tinytest/_tinysnapshot/legend_lmar_top.svg
+++ b/inst/tinytest/_tinysnapshot/legend_lmar_top.svg
@@ -26,18 +26,18 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<rect x='193.02' y='64.80' width='146.76' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
-<circle cx='203.82' cy='93.60' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='232.09' cy='93.60' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<rect x='179.71' y='64.80' width='173.38' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
+<circle cx='190.51' cy='93.60' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='225.44' cy='93.60' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
 <circle cx='260.36' cy='93.60' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
-<circle cx='288.64' cy='93.60' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
-<circle cx='316.91' cy='93.60' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<circle cx='295.29' cy='93.60' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='330.22' cy='93.60' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='79.20' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='33.34px' lengthAdjust='spacingAndGlyphs'>Month</text>
-<text x='214.62' y='97.73' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='242.89' y='97.73' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='271.16' y='97.73' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='299.44' y='97.73' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='327.71' y='97.73' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='201.31' y='97.73' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='236.24' y='97.73' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='271.16' y='97.73' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='306.09' y='97.73' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='341.02' y='97.73' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MS40NHw1MDQuMDA='>
diff --git a/inst/tinytest/_tinysnapshot/legend_multiline_bottom.svg b/inst/tinytest/_tinysnapshot/legend_multiline_bottom.svg
index 62c9f124..21efd3b5 100644
--- a/inst/tinytest/_tinysnapshot/legend_multiline_bottom.svg
+++ b/inst/tinytest/_tinysnapshot/legend_multiline_bottom.svg
@@ -26,21 +26,21 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<rect x='193.02' y='422.30' width='146.76' height='80.26' style='stroke-width: 0.75; fill: #FFFFFF;' />
-<circle cx='203.82' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='232.09' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<rect x='179.71' y='422.30' width='173.38' height='80.26' style='stroke-width: 0.75; fill: #FFFFFF;' />
+<circle cx='190.51' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='225.44' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
 <circle cx='260.36' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
-<circle cx='288.64' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
-<circle cx='316.91' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<circle cx='295.29' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='330.22' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='430.56' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='33.34px' lengthAdjust='spacingAndGlyphs'>Month</text>
 <text x='266.40' y='444.96' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='10.00px' lengthAdjust='spacingAndGlyphs'>of</text>
 <text x='266.40' y='459.36' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='16.67px' lengthAdjust='spacingAndGlyphs'>the</text>
 <text x='266.40' y='473.76' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='23.34px' lengthAdjust='spacingAndGlyphs'>year</text>
-<text x='214.62' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='242.89' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='299.44' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='327.71' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='201.31' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='236.24' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='271.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='306.09' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='341.02' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0MDcuOTA='>
diff --git a/inst/tinytest/_tinysnapshot/legend_multiline_top.svg b/inst/tinytest/_tinysnapshot/legend_multiline_top.svg
index e3e1542f..dadfc476 100644
--- a/inst/tinytest/_tinysnapshot/legend_multiline_top.svg
+++ b/inst/tinytest/_tinysnapshot/legend_multiline_top.svg
@@ -26,21 +26,21 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<rect x='193.02' y='59.04' width='146.76' height='80.26' style='stroke-width: 0.75; fill: #FFFFFF;' />
-<circle cx='203.82' cy='124.90' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='232.09' cy='124.90' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<rect x='179.71' y='59.04' width='173.38' height='80.26' style='stroke-width: 0.75; fill: #FFFFFF;' />
+<circle cx='190.51' cy='124.90' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='225.44' cy='124.90' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
 <circle cx='260.36' cy='124.90' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
-<circle cx='288.64' cy='124.90' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
-<circle cx='316.91' cy='124.90' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<circle cx='295.29' cy='124.90' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='330.22' cy='124.90' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='67.30' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='33.34px' lengthAdjust='spacingAndGlyphs'>Month</text>
 <text x='266.40' y='81.70' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='10.00px' lengthAdjust='spacingAndGlyphs'>of</text>
 <text x='266.40' y='96.10' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='16.67px' lengthAdjust='spacingAndGlyphs'>the</text>
 <text x='266.40' y='110.50' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='23.34px' lengthAdjust='spacingAndGlyphs'>year</text>
-<text x='214.62' y='129.03' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='242.89' y='129.03' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='271.16' y='129.03' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='299.44' y='129.03' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='327.71' y='129.03' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='201.31' y='129.03' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='236.24' y='129.03' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='271.16' y='129.03' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='306.09' y='129.03' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='341.02' y='129.03' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MS40NHw1MDQuMDA='>
diff --git a/inst/tinytest/_tinysnapshot/readme_legend_bottom.svg b/inst/tinytest/_tinysnapshot/readme_legend_bottom.svg
index 0d73f9c2..80898069 100644
--- a/inst/tinytest/_tinysnapshot/readme_legend_bottom.svg
+++ b/inst/tinytest/_tinysnapshot/readme_legend_bottom.svg
@@ -26,18 +26,18 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<rect x='139.02' y='459.36' width='254.76' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
-<line x1='149.82' y1='488.16' x2='171.42' y2='488.16' style='stroke-width: 0.75;' />
-<line x1='199.69' y1='488.16' x2='221.29' y2='488.16' style='stroke-width: 0.75; stroke: #DF536B;' />
+<rect x='125.71' y='459.36' width='281.38' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
+<line x1='136.51' y1='488.16' x2='158.11' y2='488.16' style='stroke-width: 0.75;' />
+<line x1='193.04' y1='488.16' x2='214.64' y2='488.16' style='stroke-width: 0.75; stroke: #DF536B;' />
 <line x1='249.56' y1='488.16' x2='271.16' y2='488.16' style='stroke-width: 0.75; stroke: #61D04F;' />
-<line x1='299.44' y1='488.16' x2='321.04' y2='488.16' style='stroke-width: 0.75; stroke: #2297E6;' />
-<line x1='349.31' y1='488.16' x2='370.91' y2='488.16' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<line x1='306.09' y1='488.16' x2='327.69' y2='488.16' style='stroke-width: 0.75; stroke: #2297E6;' />
+<line x1='362.62' y1='488.16' x2='384.22' y2='488.16' style='stroke-width: 0.75; stroke: #28E2E5;' />
 <text x='266.40' y='473.76' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='93.34px' lengthAdjust='spacingAndGlyphs'>Month of the year</text>
-<text x='182.22' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
-<text x='232.09' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>6</text>
-<text x='281.96' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>7</text>
-<text x='331.84' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>8</text>
-<text x='381.71' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
+<text x='168.91' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='225.44' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='281.96' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='338.49' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='395.02' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>9</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0NDQuOTY='>
diff --git a/inst/tinytest/_tinysnapshot/restore_par_bottom.svg b/inst/tinytest/_tinysnapshot/restore_par_bottom.svg
index f56a9ab6..98b6a146 100644
--- a/inst/tinytest/_tinysnapshot/restore_par_bottom.svg
+++ b/inst/tinytest/_tinysnapshot/restore_par_bottom.svg
@@ -26,14 +26,14 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<rect x='154.26' y='459.36' width='224.28' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
-<circle cx='165.06' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
-<circle cx='238.02' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
-<circle cx='310.98' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
+<rect x='159.28' y='459.36' width='214.25' height='43.20' style='stroke-width: 0.75; fill: #FFFFFF;' />
+<circle cx='170.08' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='233.68' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<circle cx='313.29' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
 <text x='266.40' y='473.76' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='42.69px' lengthAdjust='spacingAndGlyphs'>Species</text>
-<text x='175.86' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='35.34px' lengthAdjust='spacingAndGlyphs'>setosa</text>
-<text x='248.82' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='51.36px' lengthAdjust='spacingAndGlyphs'>versicolor</text>
-<text x='321.78' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='44.03px' lengthAdjust='spacingAndGlyphs'>virginica</text>
+<text x='180.88' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='42.00px' lengthAdjust='spacingAndGlyphs'>setosa  </text>
+<text x='244.48' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='58.02px' lengthAdjust='spacingAndGlyphs'>versicolor  </text>
+<text x='324.09' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='44.03px' lengthAdjust='spacingAndGlyphs'>virginica</text>
 </g>
 <defs>
   <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0NDQuOTY='>
diff --git a/inst/tinytest/_tinysnapshot/tinytheme_legend_bottom.svg b/inst/tinytest/_tinysnapshot/tinytheme_legend_bottom.svg
index bf753938..3e2ce5de 100644
--- a/inst/tinytest/_tinysnapshot/tinytheme_legend_bottom.svg
+++ b/inst/tinytest/_tinysnapshot/tinytheme_legend_bottom.svg
@@ -26,11 +26,11 @@
   </clipPath>
 </defs>
 <g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
-<circle cx='251.27' cy='488.32' r='2.70' style='stroke-width: 0.75; stroke: none; fill: #4E79A7;' />
-<circle cx='279.54' cy='488.32' r='2.70' style='stroke-width: 0.75; stroke: none; fill: #F28E2B;' />
+<circle cx='247.94' cy='488.32' r='2.70' style='stroke-width: 0.75; stroke: none; fill: #4E79A7;' />
+<circle cx='282.87' cy='488.32' r='2.70' style='stroke-width: 0.75; stroke: none; fill: #F28E2B;' />
 <text x='271.44' y='473.92' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='54.67px' lengthAdjust='spacingAndGlyphs'>factor(am)</text>
-<text x='262.07' y='492.45' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>0</text>
-<text x='290.34' y='492.45' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>1</text>
+<text x='258.74' y='492.45' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>0  </text>
+<text x='293.67' y='492.45' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>1</text>
 <text x='47.52' y='31.68' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='209.14px' lengthAdjust='spacingAndGlyphs'>tinytheme("clean") + legend = "bottom!"</text>
 </g>
 <defs>

From 6586cb5614c049bba4aa7237555caefc743fa922 Mon Sep 17 00:00:00 2001
From: Grant McDermott <grant.mcdermott@gmail.com>
Date: Sat, 19 Jul 2025 16:10:31 -0700
Subject: [PATCH 5/9] better catch for spacing of ncol outer column

---
 R/draw_legend.R | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/R/draw_legend.R b/R/draw_legend.R
index 5435e88d..84aeb5f1 100644
--- a/R/draw_legend.R
+++ b/R/draw_legend.R
@@ -214,6 +214,10 @@ draw_legend = function(
       )
       legend_args[["legend"]] = lgnd_labs
     }
+  
+    if (isTRUE(gradient)) {
+      legend_args[["ncol"]] = NULL
+    }
     
     #
     ## legend placement ----
@@ -346,8 +350,11 @@ draw_legend = function(
       # See: https://github.com/grantmcdermott/tinyplot/issues/434
       if (!gradient) {
         legend_args[["text.width"]] = NA
+        # Add a space to all labs except the outer most right ones
         nlabs = length(legend_args[["legend"]])
-        legend_args[["legend"]][-nlabs] = paste(legend_args[["legend"]][-nlabs], " ")
+        nidx = nlabs
+        if (!is.null(legend_args[["ncol"]])) nidx = tail(1:nlabs, (nlabs %/% legend_args[["ncol"]]))
+        legend_args[["legend"]][-nidx] = paste(legend_args[["legend"]][-nidx], " ")
       }
       # catch for horizontal ribbon legend spacing
       if (type=="ribbon") {

From fb5c2de3d376772857646bafc27541103a1cdba9 Mon Sep 17 00:00:00 2001
From: Grant McDermott <grant.mcdermott@gmail.com>
Date: Sat, 19 Jul 2025 16:10:38 -0700
Subject: [PATCH 6/9] extra tests

---
 .../legend_spacing_horiz_label_bottom.svg     | 119 +++++++
 .../legend_spacing_ncol_bottom.svg            | 224 ++++++++++++
 .../legend_spacing_ncol_right.svg             | 327 ++++++++++++++++++
 inst/tinytest/test-legend.R                   |  22 ++
 4 files changed, 692 insertions(+)
 create mode 100644 inst/tinytest/_tinysnapshot/legend_spacing_horiz_label_bottom.svg
 create mode 100644 inst/tinytest/_tinysnapshot/legend_spacing_ncol_bottom.svg
 create mode 100644 inst/tinytest/_tinysnapshot/legend_spacing_ncol_right.svg

diff --git a/inst/tinytest/_tinysnapshot/legend_spacing_horiz_label_bottom.svg b/inst/tinytest/_tinysnapshot/legend_spacing_horiz_label_bottom.svg
new file mode 100644
index 00000000..14f28b3d
--- /dev/null
+++ b/inst/tinytest/_tinysnapshot/legend_spacing_horiz_label_bottom.svg
@@ -0,0 +1,119 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='504.00pt' height='504.00pt' viewBox='0 0 504.00 504.00'>
+<g class='svglite'>
+<defs>
+  <style type='text/css'><![CDATA[
+    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {
+      fill: none;
+      stroke: #000000;
+      stroke-linecap: round;
+      stroke-linejoin: round;
+      stroke-miterlimit: 10.00;
+    }
+    .svglite text {
+      white-space: pre;
+    }
+    .svglite g.glyphgroup path {
+      fill: inherit;
+      stroke: none;
+    }
+  ]]></style>
+</defs>
+<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
+<defs>
+  <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA='>
+    <rect x='0.00' y='0.00' width='504.00' height='504.00' />
+  </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
+<circle cx='124.16' cy='488.16' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='175.08' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #DF536B;' />
+<circle cx='229.36' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #61D04F;' />
+<circle cx='278.96' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #2297E6;' />
+<circle cx='344.56' cy='488.16' r='2.70' style='stroke-width: 0.75; stroke: #28E2E5;' />
+<text x='266.40' y='473.76' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='40.02px' lengthAdjust='spacingAndGlyphs'>Month2</text>
+<text x='134.96' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='29.33px' lengthAdjust='spacingAndGlyphs'>May  </text>
+<text x='185.88' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='32.67px' lengthAdjust='spacingAndGlyphs'>June  </text>
+<text x='240.16' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='28.00px' lengthAdjust='spacingAndGlyphs'>July  </text>
+<text x='289.76' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='44.00px' lengthAdjust='spacingAndGlyphs'>August  </text>
+<text x='355.36' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='58.69px' lengthAdjust='spacingAndGlyphs'>September</text>
+</g>
+<defs>
+  <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw0NDQuOTY='>
+    <rect x='0.00' y='0.00' width='504.00' height='444.96' />
+  </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw0NDQuOTY=)'>
+<text x='266.40' y='442.08' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='21.34px' lengthAdjust='spacingAndGlyphs'>Day</text>
+<text transform='translate(12.96,223.20) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='29.34px' lengthAdjust='spacingAndGlyphs'>Temp</text>
+</g>
+<g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
+<line x1='61.16' y1='387.36' x2='458.40' y2='387.36' style='stroke-width: 0.75;' />
+<line x1='61.16' y1='387.36' x2='61.16' y2='394.56' style='stroke-width: 0.75;' />
+<line x1='127.37' y1='387.36' x2='127.37' y2='394.56' style='stroke-width: 0.75;' />
+<line x1='193.57' y1='387.36' x2='193.57' y2='394.56' style='stroke-width: 0.75;' />
+<line x1='259.78' y1='387.36' x2='259.78' y2='394.56' style='stroke-width: 0.75;' />
+<line x1='325.99' y1='387.36' x2='325.99' y2='394.56' style='stroke-width: 0.75;' />
+<line x1='392.19' y1='387.36' x2='392.19' y2='394.56' style='stroke-width: 0.75;' />
+<line x1='458.40' y1='387.36' x2='458.40' y2='394.56' style='stroke-width: 0.75;' />
+<text x='61.16' y='413.28' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>0</text>
+<text x='127.37' y='413.28' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
+<text x='193.57' y='413.28' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>10</text>
+<text x='259.78' y='413.28' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>15</text>
+<text x='325.99' y='413.28' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>20</text>
+<text x='392.19' y='413.28' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>25</text>
+<text x='458.40' y='413.28' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>30</text>
+<line x1='59.04' y1='354.93' x2='59.04' y2='101.60' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='354.93' x2='51.84' y2='354.93' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='304.27' x2='51.84' y2='304.27' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='253.60' x2='51.84' y2='253.60' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='202.93' x2='51.84' y2='202.93' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='152.27' x2='51.84' y2='152.27' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='101.60' x2='51.84' y2='101.60' style='stroke-width: 0.75;' />
+<text transform='translate(41.76,354.93) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>65</text>
+<text transform='translate(41.76,304.27) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>70</text>
+<text transform='translate(41.76,253.60) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>75</text>
+<text transform='translate(41.76,202.93) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>80</text>
+<text transform='translate(41.76,152.27) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>85</text>
+<text transform='translate(41.76,101.60) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>90</text>
+<polygon points='59.04,387.36 473.76,387.36 473.76,59.04 59.04,59.04 ' style='stroke-width: 0.75;' />
+</g>
+<defs>
+  <clipPath id='cpNTkuMDR8NDczLjc2fDU5LjA0fDM4Ny4zNg=='>
+    <rect x='59.04' y='59.04' width='414.72' height='328.32' />
+  </clipPath>
+</defs>
+<g clip-path='url(#cpNTkuMDR8NDczLjc2fDU5LjA0fDM4Ny4zNg==)'>
+<circle cx='74.40' cy='91.47' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='87.64' cy='81.33' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='100.88' cy='71.20' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='114.12' cy='71.20' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='127.37' cy='132.00' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='140.61' cy='162.40' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='153.85' cy='202.93' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='167.09' cy='223.20' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='180.33' cy='253.60' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='193.57' cy='273.87' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='206.81' cy='192.80' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='220.06' cy='243.47' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='233.30' cy='233.33' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='246.54' cy='294.13' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='259.78' cy='294.13' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='273.02' cy='223.20' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='286.26' cy='334.67' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='299.50' cy='243.47' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='312.74' cy='324.53' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='325.99' cy='182.67' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='339.23' cy='365.07' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='352.47' cy='294.13' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='365.71' cy='192.80' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='378.95' cy='314.40' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='392.19' cy='375.20' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='405.43' cy='304.27' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='418.68' cy='233.33' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='431.92' cy='253.60' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='445.16' cy='243.47' r='2.70' style='stroke-width: 0.75;' />
+<circle cx='458.40' cy='324.53' r='2.70' style='stroke-width: 0.75;' />
+</g>
+</g>
+</svg>
diff --git a/inst/tinytest/_tinysnapshot/legend_spacing_ncol_bottom.svg b/inst/tinytest/_tinysnapshot/legend_spacing_ncol_bottom.svg
new file mode 100644
index 00000000..8c2463a9
--- /dev/null
+++ b/inst/tinytest/_tinysnapshot/legend_spacing_ncol_bottom.svg
@@ -0,0 +1,224 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='504.00pt' height='504.00pt' viewBox='0 0 504.00 504.00'>
+<g class='svglite'>
+<defs>
+  <style type='text/css'><![CDATA[
+    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {
+      fill: none;
+      stroke: #000000;
+      stroke-linecap: round;
+      stroke-linejoin: round;
+      stroke-miterlimit: 10.00;
+    }
+    .svglite text {
+      white-space: pre;
+    }
+    .svglite g.glyphgroup path {
+      fill: inherit;
+      stroke: none;
+    }
+  ]]></style>
+</defs>
+<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
+<defs>
+  <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA='>
+    <rect x='0.00' y='0.00' width='504.00' height='504.00' />
+  </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
+<line x1='119.83' y1='358.56' x2='141.43' y2='358.56' style='stroke-width: 0.75; stroke: #C2DE34;' />
+<line x1='119.83' y1='372.96' x2='141.43' y2='372.96' style='stroke-width: 0.75; stroke: #B7DC39;' />
+<line x1='119.83' y1='387.36' x2='141.43' y2='387.36' style='stroke-width: 0.75; stroke: #ACDA3E;' />
+<line x1='119.83' y1='401.76' x2='141.43' y2='401.76' style='stroke-width: 0.75; stroke: #A1D945;' />
+<line x1='119.83' y1='416.16' x2='141.43' y2='416.16' style='stroke-width: 0.75; stroke: #96D74A;' />
+<line x1='119.83' y1='430.56' x2='141.43' y2='430.56' style='stroke-width: 0.75; stroke: #8AD550;' />
+<line x1='119.83' y1='444.96' x2='141.43' y2='444.96' style='stroke-width: 0.75; stroke: #7ED356;' />
+<line x1='119.83' y1='459.36' x2='141.43' y2='459.36' style='stroke-width: 0.75; stroke: #71D15B;' />
+<line x1='119.83' y1='473.76' x2='141.43' y2='473.76' style='stroke-width: 0.75; stroke: #64CF60;' />
+<line x1='119.83' y1='488.16' x2='141.43' y2='488.16' style='stroke-width: 0.75; stroke: #55CC66;' />
+<line x1='183.03' y1='358.56' x2='204.63' y2='358.56' style='stroke-width: 0.75; stroke: #44C96B;' />
+<line x1='183.03' y1='372.96' x2='204.63' y2='372.96' style='stroke-width: 0.75; stroke: #2EC76F;' />
+<line x1='183.03' y1='387.36' x2='204.63' y2='387.36' style='stroke-width: 0.75; stroke: #0DC574;' />
+<line x1='183.03' y1='401.76' x2='204.63' y2='401.76' style='stroke-width: 0.75; stroke: #00C277;' />
+<line x1='183.03' y1='416.16' x2='204.63' y2='416.16' style='stroke-width: 0.75; stroke: #00BE7B;' />
+<line x1='183.03' y1='430.56' x2='204.63' y2='430.56' style='stroke-width: 0.75; stroke: #00BC7F;' />
+<line x1='183.03' y1='444.96' x2='204.63' y2='444.96' style='stroke-width: 0.75; stroke: #00B982;' />
+<line x1='183.03' y1='459.36' x2='204.63' y2='459.36' style='stroke-width: 0.75; stroke: #00B685;' />
+<line x1='183.03' y1='473.76' x2='204.63' y2='473.76' style='stroke-width: 0.75; stroke: #00B289;' />
+<line x1='183.03' y1='488.16' x2='204.63' y2='488.16' style='stroke-width: 0.75; stroke: #00AF8B;' />
+<line x1='246.23' y1='358.56' x2='267.83' y2='358.56' style='stroke-width: 0.75; stroke: #00AB8D;' />
+<line x1='246.23' y1='372.96' x2='267.83' y2='372.96' style='stroke-width: 0.75; stroke: #00A88F;' />
+<line x1='246.23' y1='387.36' x2='267.83' y2='387.36' style='stroke-width: 0.75; stroke: #00A591;' />
+<line x1='246.23' y1='401.76' x2='267.83' y2='401.76' style='stroke-width: 0.75; stroke: #00A093;' />
+<line x1='246.23' y1='416.16' x2='267.83' y2='416.16' style='stroke-width: 0.75; stroke: #009D94;' />
+<line x1='246.23' y1='430.56' x2='267.83' y2='430.56' style='stroke-width: 0.75; stroke: #009995;' />
+<line x1='246.23' y1='444.96' x2='267.83' y2='444.96' style='stroke-width: 0.75; stroke: #009596;' />
+<line x1='246.23' y1='459.36' x2='267.83' y2='459.36' style='stroke-width: 0.75; stroke: #009197;' />
+<line x1='246.23' y1='473.76' x2='267.83' y2='473.76' style='stroke-width: 0.75; stroke: #008D98;' />
+<line x1='246.23' y1='488.16' x2='267.83' y2='488.16' style='stroke-width: 0.75; stroke: #008998;' />
+<line x1='309.43' y1='358.56' x2='331.03' y2='358.56' style='stroke-width: 0.75; stroke: #008498;' />
+<line x1='309.43' y1='372.96' x2='331.03' y2='372.96' style='stroke-width: 0.75; stroke: #008197;' />
+<line x1='309.43' y1='387.36' x2='331.03' y2='387.36' style='stroke-width: 0.75; stroke: #007C97;' />
+<line x1='309.43' y1='401.76' x2='331.03' y2='401.76' style='stroke-width: 0.75; stroke: #007796;' />
+<line x1='309.43' y1='416.16' x2='331.03' y2='416.16' style='stroke-width: 0.75; stroke: #007395;' />
+<line x1='309.43' y1='430.56' x2='331.03' y2='430.56' style='stroke-width: 0.75; stroke: #006E93;' />
+<line x1='309.43' y1='444.96' x2='331.03' y2='444.96' style='stroke-width: 0.75; stroke: #006991;' />
+<line x1='309.43' y1='459.36' x2='331.03' y2='459.36' style='stroke-width: 0.75; stroke: #006590;' />
+<line x1='309.43' y1='473.76' x2='331.03' y2='473.76' style='stroke-width: 0.75; stroke: #00618E;' />
+<line x1='309.43' y1='488.16' x2='331.03' y2='488.16' style='stroke-width: 0.75; stroke: #005C8D;' />
+<line x1='372.63' y1='358.56' x2='394.23' y2='358.56' style='stroke-width: 0.75; stroke: #00578A;' />
+<line x1='372.63' y1='372.96' x2='394.23' y2='372.96' style='stroke-width: 0.75; stroke: #0C5287;' />
+<line x1='372.63' y1='387.36' x2='394.23' y2='387.36' style='stroke-width: 0.75; stroke: #1D4D85;' />
+<line x1='372.63' y1='401.76' x2='394.23' y2='401.76' style='stroke-width: 0.75; stroke: #274882;' />
+<line x1='372.63' y1='416.16' x2='394.23' y2='416.16' style='stroke-width: 0.75; stroke: #2F437F;' />
+<line x1='372.63' y1='430.56' x2='394.23' y2='430.56' style='stroke-width: 0.75; stroke: #353E7B;' />
+<line x1='372.63' y1='444.96' x2='394.23' y2='444.96' style='stroke-width: 0.75; stroke: #3A3878;' />
+<line x1='372.63' y1='459.36' x2='394.23' y2='459.36' style='stroke-width: 0.75; stroke: #3D3375;' />
+<line x1='372.63' y1='473.76' x2='394.23' y2='473.76' style='stroke-width: 0.75; stroke: #402D71;' />
+<line x1='372.63' y1='488.16' x2='394.23' y2='488.16' style='stroke-width: 0.75; stroke: #44286E;' />
+<text x='266.40' y='344.16' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='30.02px' lengthAdjust='spacingAndGlyphs'>Chick</text>
+<text x='152.23' y='362.69' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>18  </text>
+<text x='152.23' y='377.09' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>16  </text>
+<text x='152.23' y='391.49' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>15  </text>
+<text x='152.23' y='405.89' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>13  </text>
+<text x='152.23' y='420.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>9  </text>
+<text x='152.23' y='434.69' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>20  </text>
+<text x='152.23' y='449.09' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>10  </text>
+<text x='152.23' y='463.49' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='152.23' y='477.89' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>17  </text>
+<text x='152.23' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>19  </text>
+<text x='215.43' y='362.69' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>4  </text>
+<text x='215.43' y='377.09' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='215.43' y='391.49' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='19.11px' lengthAdjust='spacingAndGlyphs'>11  </text>
+<text x='215.43' y='405.89' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>3  </text>
+<text x='215.43' y='420.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>1  </text>
+<text x='215.43' y='434.69' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>12  </text>
+<text x='215.43' y='449.09' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>2  </text>
+<text x='215.43' y='463.49' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='215.43' y='477.89' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>14  </text>
+<text x='215.43' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='278.63' y='362.69' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>24  </text>
+<text x='278.63' y='377.09' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>30  </text>
+<text x='278.63' y='391.49' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>22  </text>
+<text x='278.63' y='405.89' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>23  </text>
+<text x='278.63' y='420.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>27  </text>
+<text x='278.63' y='434.69' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>28  </text>
+<text x='278.63' y='449.09' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>26  </text>
+<text x='278.63' y='463.49' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>25  </text>
+<text x='278.63' y='477.89' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>29  </text>
+<text x='278.63' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>21  </text>
+<text x='341.83' y='362.69' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>33  </text>
+<text x='341.83' y='377.09' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>37  </text>
+<text x='341.83' y='391.49' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>36  </text>
+<text x='341.83' y='405.89' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>31  </text>
+<text x='341.83' y='420.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>39  </text>
+<text x='341.83' y='434.69' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>38  </text>
+<text x='341.83' y='449.09' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>32  </text>
+<text x='341.83' y='463.49' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>40  </text>
+<text x='341.83' y='477.89' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>34  </text>
+<text x='341.83' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>35  </text>
+<text x='405.03' y='362.69' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>44</text>
+<text x='405.03' y='377.09' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>45</text>
+<text x='405.03' y='391.49' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>43</text>
+<text x='405.03' y='405.89' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>41</text>
+<text x='405.03' y='420.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>47</text>
+<text x='405.03' y='434.69' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>49</text>
+<text x='405.03' y='449.09' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>46</text>
+<text x='405.03' y='463.49' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>50</text>
+<text x='405.03' y='477.89' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>42</text>
+<text x='405.03' y='492.29' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>48</text>
+</g>
+<defs>
+  <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHwzMTUuMzY='>
+    <rect x='0.00' y='0.00' width='504.00' height='315.36' />
+  </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHwzMTUuMzY=)'>
+<text x='266.40' y='312.48' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='26.23px' lengthAdjust='spacingAndGlyphs'>Time</text>
+<text transform='translate(12.96,158.40) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='34.69px' lengthAdjust='spacingAndGlyphs'>weight</text>
+</g>
+<g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
+<line x1='74.40' y1='257.76' x2='440.11' y2='257.76' style='stroke-width: 0.75;' />
+<line x1='74.40' y1='257.76' x2='74.40' y2='264.96' style='stroke-width: 0.75;' />
+<line x1='165.83' y1='257.76' x2='165.83' y2='264.96' style='stroke-width: 0.75;' />
+<line x1='257.26' y1='257.76' x2='257.26' y2='264.96' style='stroke-width: 0.75;' />
+<line x1='348.69' y1='257.76' x2='348.69' y2='264.96' style='stroke-width: 0.75;' />
+<line x1='440.11' y1='257.76' x2='440.11' y2='264.96' style='stroke-width: 0.75;' />
+<text x='74.40' y='283.68' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>0</text>
+<text x='165.83' y='283.68' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
+<text x='257.26' y='283.68' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>10</text>
+<text x='348.69' y='283.68' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>15</text>
+<text x='440.11' y='283.68' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>20</text>
+<line x1='59.04' y1='242.23' x2='59.04' y2='78.92' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='242.23' x2='51.84' y2='242.23' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='215.02' x2='51.84' y2='215.02' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='187.80' x2='51.84' y2='187.80' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='160.58' x2='51.84' y2='160.58' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='133.36' x2='51.84' y2='133.36' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='106.14' x2='51.84' y2='106.14' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='78.92' x2='51.84' y2='78.92' style='stroke-width: 0.75;' />
+<text transform='translate(41.76,242.23) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>50</text>
+<text transform='translate(41.76,215.02) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.02px' lengthAdjust='spacingAndGlyphs'>100</text>
+<text transform='translate(41.76,160.58) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.02px' lengthAdjust='spacingAndGlyphs'>200</text>
+<text transform='translate(41.76,106.14) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.02px' lengthAdjust='spacingAndGlyphs'>300</text>
+<polygon points='59.04,257.76 473.76,257.76 473.76,59.04 59.04,59.04 ' style='stroke-width: 0.75;' />
+</g>
+<defs>
+  <clipPath id='cpNTkuMDR8NDczLjc2fDU5LjA0fDI1Ny43Ng=='>
+    <rect x='59.04' y='59.04' width='414.72' height='198.72' />
+  </clipPath>
+</defs>
+<g clip-path='url(#cpNTkuMDR8NDczLjc2fDU5LjA0fDI1Ny43Ng==)'>
+<polyline points='74.40,248.22 110.97,250.40 ' style='stroke-width: 0.75; stroke: #C2DE34;' />
+<polyline points='74.40,247.13 110.97,244.96 147.54,242.78 184.11,241.69 220.69,238.42 257.26,241.69 293.83,240.06 ' style='stroke-width: 0.75; stroke: #B7DC39;' />
+<polyline points='74.40,247.13 110.97,242.78 147.54,238.97 184.11,234.61 220.69,232.44 257.26,232.44 293.83,232.98 330.40,232.44 ' style='stroke-width: 0.75; stroke: #ACDA3E;' />
+<polyline points='74.40,247.13 110.97,243.32 147.54,240.60 184.11,236.79 220.69,234.07 257.26,232.98 293.83,230.80 330.40,231.35 366.97,230.80 403.54,225.36 440.11,219.91 458.40,217.19 ' style='stroke-width: 0.75; stroke: #A1D945;' />
+<polyline points='74.40,246.59 110.97,241.69 147.54,237.33 184.11,232.44 220.69,223.18 257.26,217.19 293.83,220.46 330.40,219.37 366.97,218.83 403.54,215.02 440.11,215.02 458.40,216.10 ' style='stroke-width: 0.75; stroke: #96D74A;' />
+<polyline points='74.40,247.13 110.97,243.87 147.54,240.06 184.11,237.88 220.69,234.07 257.26,229.71 293.83,227.54 330.40,221.00 366.97,216.10 403.54,211.20 440.11,206.85 458.40,205.76 ' style='stroke-width: 0.75; stroke: #8AD550;' />
+<polyline points='74.40,247.13 110.97,245.50 147.54,241.15 184.11,235.16 220.69,229.17 257.26,225.36 293.83,221.00 330.40,217.19 366.97,214.47 403.54,208.48 440.11,204.13 458.40,201.95 ' style='stroke-width: 0.75; stroke: #7ED356;' />
+<polyline points='74.40,246.59 110.97,242.23 147.54,236.25 184.11,230.80 220.69,223.73 257.26,218.83 293.83,209.57 330.40,206.31 366.97,200.86 403.54,196.51 440.11,201.41 ' style='stroke-width: 0.75; stroke: #71D15B;' />
+<polyline points='74.40,246.59 110.97,241.69 147.54,236.25 184.11,230.26 220.69,224.27 257.26,221.00 293.83,216.10 330.40,213.38 366.97,207.94 403.54,202.49 440.11,197.05 458.40,192.15 ' style='stroke-width: 0.75; stroke: #64CF60;' />
+<polyline points='74.40,246.04 110.97,243.32 147.54,239.51 184.11,235.70 220.69,234.07 257.26,230.80 293.83,224.81 330.40,221.55 366.97,211.75 403.54,204.13 440.11,191.06 458.40,183.99 ' style='stroke-width: 0.75; stroke: #55CC66;' />
+<polyline points='74.40,246.59 110.97,242.78 147.54,238.97 184.11,232.98 220.69,229.17 257.26,222.09 293.83,213.93 330.40,210.66 366.97,195.42 403.54,185.62 440.11,182.35 458.40,183.99 ' style='stroke-width: 0.75; stroke: #44C96B;' />
+<polyline points='74.40,247.13 110.97,242.78 147.54,237.33 184.11,229.17 220.69,216.65 257.26,201.95 293.83,192.70 330.40,188.89 366.97,185.07 403.54,182.35 440.11,182.35 458.40,183.99 ' style='stroke-width: 0.75; stroke: #2EC76F;' />
+<polyline points='74.40,246.04 110.97,241.69 147.54,235.16 184.11,223.73 220.69,208.48 257.26,193.78 293.83,178.00 330.40,173.10 366.97,170.38 403.54,169.29 440.11,170.92 458.40,174.19 ' style='stroke-width: 0.75; stroke: #0DC574;' />
+<polyline points='74.40,246.04 110.97,248.22 147.54,239.51 184.11,232.98 220.69,223.73 257.26,215.56 293.83,206.85 330.40,194.33 366.97,180.72 403.54,167.65 440.11,161.67 458.40,159.49 ' style='stroke-width: 0.75; stroke: #00C277;' />
+<polyline points='74.40,246.59 110.97,241.69 147.54,237.33 184.11,234.61 220.69,228.08 257.26,218.83 293.83,211.75 330.40,201.41 366.97,188.34 403.54,176.36 440.11,161.12 458.40,157.86 ' style='stroke-width: 0.75; stroke: #00BE7B;' />
+<polyline points='74.40,247.13 110.97,242.78 147.54,238.97 184.11,235.70 220.69,230.26 257.26,221.55 293.83,204.67 330.40,195.96 366.97,181.26 403.54,168.74 440.11,163.30 458.40,157.86 ' style='stroke-width: 0.75; stroke: #00BC7F;' />
+<polyline points='74.40,247.68 110.97,242.78 147.54,237.88 184.11,230.26 220.69,223.73 257.26,213.38 293.83,203.04 330.40,194.33 366.97,181.26 403.54,167.65 440.11,155.68 458.40,152.41 ' style='stroke-width: 0.75; stroke: #00B982;' />
+<polyline points='74.40,247.13 110.97,246.59 147.54,243.32 184.11,236.79 220.69,226.45 257.26,211.75 293.83,192.70 330.40,180.18 366.97,162.21 403.54,161.12 440.11,149.69 458.40,148.06 ' style='stroke-width: 0.75; stroke: #00B685;' />
+<polyline points='74.40,247.13 110.97,242.78 147.54,235.70 184.11,226.45 220.69,214.47 257.26,199.77 293.83,180.18 330.40,164.93 366.97,145.88 403.54,134.45 440.11,128.46 458.40,124.65 ' style='stroke-width: 0.75; stroke: #00B289;' />
+<polyline points='74.40,247.13 110.97,242.78 147.54,238.42 184.11,230.80 220.69,221.00 257.26,208.48 293.83,189.97 330.40,174.73 366.97,150.78 403.54,133.36 440.11,112.67 458.40,103.42 ' style='stroke-width: 0.75; stroke: #00AF8B;' />
+<polyline points='74.40,246.59 110.97,241.15 147.54,237.88 184.11,229.17 220.69,233.52 257.26,232.44 293.83,231.35 330.40,230.80 366.97,230.26 403.54,230.26 440.11,228.08 458.40,229.17 ' style='stroke-width: 0.75; stroke: #00AB8D;' />
+<polyline points='74.40,246.59 110.97,243.32 147.54,237.33 184.11,230.26 220.69,223.18 257.26,216.10 293.83,206.85 330.40,203.04 366.97,191.61 403.54,187.25 440.11,183.99 458.40,187.80 ' style='stroke-width: 0.75; stroke: #00A88F;' />
+<polyline points='74.40,247.13 110.97,239.51 147.54,234.61 184.11,227.54 220.69,220.46 257.26,217.74 293.83,210.66 330.40,209.03 366.97,198.14 403.54,188.89 440.11,180.18 458.40,178.54 ' style='stroke-width: 0.75; stroke: #00A591;' />
+<polyline points='74.40,246.04 110.97,241.15 147.54,236.25 184.11,229.71 220.69,220.46 257.26,213.38 293.83,200.32 330.40,195.96 366.97,190.52 403.54,180.72 440.11,176.91 458.40,174.19 ' style='stroke-width: 0.75; stroke: #00A093;' />
+<polyline points='74.40,248.22 110.97,244.41 147.54,237.88 184.11,229.71 220.69,222.09 257.26,215.02 293.83,206.85 330.40,202.49 366.97,191.06 403.54,180.72 440.11,168.74 458.40,164.93 ' style='stroke-width: 0.75; stroke: #009D94;' />
+<polyline points='74.40,248.22 110.97,244.41 147.54,237.88 184.11,229.71 220.69,219.37 257.26,207.39 293.83,190.52 330.40,184.53 366.97,169.29 403.54,156.77 440.11,154.04 458.40,142.61 ' style='stroke-width: 0.75; stroke: #009995;' />
+<polyline points='74.40,246.59 110.97,243.32 147.54,238.42 184.11,229.17 220.69,218.83 257.26,207.39 293.83,195.42 330.40,189.43 366.97,177.45 403.54,157.86 440.11,140.98 458.40,132.81 ' style='stroke-width: 0.75; stroke: #009596;' />
+<polyline points='74.40,247.68 110.97,242.78 147.54,235.70 184.11,226.99 220.69,213.93 257.26,201.95 293.83,189.97 330.40,180.18 366.97,162.21 403.54,143.70 440.11,128.46 458.40,125.19 ' style='stroke-width: 0.75; stroke: #009197;' />
+<polyline points='74.40,248.22 110.97,243.32 147.54,237.33 184.11,229.17 220.69,222.09 257.26,211.75 293.83,196.51 330.40,187.80 366.97,167.65 403.54,144.25 440.11,117.57 458.40,101.24 ' style='stroke-width: 0.75; stroke: #008D98;' />
+<polyline points='74.40,247.68 110.97,242.23 147.54,235.70 184.11,222.64 220.69,201.41 257.26,180.72 293.83,151.32 330.40,138.80 366.97,119.75 403.54,102.33 440.11,96.34 458.40,89.26 ' style='stroke-width: 0.75; stroke: #008998;' />
+<polyline points='74.40,248.22 110.97,242.23 147.54,235.16 184.11,227.54 220.69,217.19 257.26,209.03 293.83,194.87 330.40,191.06 366.97,187.25 403.54,189.97 440.11,184.53 458.40,189.43 ' style='stroke-width: 0.75; stroke: #008498;' />
+<polyline points='74.40,247.13 110.97,243.32 147.54,238.97 184.11,232.44 220.69,225.90 257.26,224.27 293.83,213.38 330.40,208.48 366.97,195.96 403.54,183.99 440.11,177.45 458.40,172.55 ' style='stroke-width: 0.75; stroke: #008197;' />
+<polyline points='74.40,248.22 110.97,243.32 147.54,236.25 184.11,228.08 220.69,216.10 257.26,206.31 293.83,190.52 330.40,179.09 366.97,161.67 403.54,145.88 440.11,146.97 458.40,149.69 ' style='stroke-width: 0.75; stroke: #007C97;' />
+<polyline points='74.40,246.59 110.97,240.60 147.54,235.70 184.11,229.71 220.69,223.18 257.26,213.93 293.83,202.49 330.40,194.33 366.97,176.91 403.54,158.40 440.11,141.52 458.40,130.09 ' style='stroke-width: 0.75; stroke: #007796;' />
+<polyline points='74.40,246.59 110.97,242.23 147.54,236.25 184.11,226.99 220.69,221.00 257.26,210.12 293.83,198.68 330.40,189.97 366.97,176.91 403.54,152.96 440.11,133.36 458.40,121.38 ' style='stroke-width: 0.75; stroke: #007395;' />
+<polyline points='74.40,247.13 110.97,242.78 147.54,236.25 184.11,229.17 220.69,216.10 257.26,210.12 293.83,199.77 330.40,185.62 366.97,164.93 403.54,143.16 440.11,117.03 458.40,111.58 ' style='stroke-width: 0.75; stroke: #006E93;' />
+<polyline points='74.40,247.13 110.97,242.78 147.54,234.07 184.11,224.81 220.69,211.20 257.26,199.23 293.83,182.90 330.40,172.01 366.97,149.15 403.54,126.28 440.11,111.04 458.40,103.42 ' style='stroke-width: 0.75; stroke: #006991;' />
+<polyline points='74.40,247.13 110.97,239.51 147.54,233.52 184.11,226.45 220.69,214.47 257.26,204.13 293.83,185.62 330.40,170.38 366.97,152.41 403.54,126.83 440.11,108.86 458.40,94.71 ' style='stroke-width: 0.75; stroke: #006590;' />
+<polyline points='74.40,247.13 110.97,242.78 147.54,235.16 184.11,223.18 220.69,211.20 257.26,196.51 293.83,180.18 330.40,168.20 366.97,141.52 403.54,109.41 440.11,91.44 458.40,83.82 ' style='stroke-width: 0.75; stroke: #00618E;' />
+<polyline points='74.40,247.13 110.97,240.60 147.54,234.61 184.11,222.09 220.69,202.49 257.26,183.44 293.83,160.03 330.40,139.89 366.97,113.22 403.54,88.72 440.11,72.93 458.40,66.40 ' style='stroke-width: 0.75; stroke: #005C8D;' />
+<polyline points='74.40,246.59 110.97,241.69 147.54,234.07 184.11,222.64 220.69,213.38 257.26,205.22 293.83,200.32 330.40,194.33 366.97,190.52 403.54,189.97 ' style='stroke-width: 0.75; stroke: #00578A;' />
+<polyline points='74.40,247.13 110.97,242.23 147.54,236.25 184.11,226.99 220.69,216.10 257.26,205.76 293.83,195.96 330.40,192.70 366.97,189.43 403.54,174.73 440.11,162.21 458.40,162.76 ' style='stroke-width: 0.75; stroke: #0C5287;' />
+<polyline points='74.40,246.59 110.97,239.51 147.54,231.89 184.11,217.19 220.69,198.14 257.26,183.99 293.83,169.29 330.40,167.11 366.97,162.21 403.54,161.67 440.11,161.12 458.40,160.58 ' style='stroke-width: 0.75; stroke: #1D4D85;' />
+<polyline points='74.40,246.59 110.97,241.69 147.54,233.52 184.11,223.18 220.69,213.38 257.26,201.95 293.83,185.07 330.40,186.16 366.97,174.19 403.54,169.29 440.11,161.12 458.40,158.40 ' style='stroke-width: 0.75; stroke: #274882;' />
+<polyline points='74.40,247.13 110.97,240.60 147.54,233.52 184.11,226.45 220.69,215.02 257.26,202.49 293.83,188.89 330.40,183.99 366.97,178.00 403.54,168.74 440.11,155.13 458.40,157.86 ' style='stroke-width: 0.75; stroke: #2F437F;' />
+<polyline points='74.40,247.68 110.97,240.60 147.54,234.61 184.11,223.18 220.69,210.66 257.26,199.77 293.83,186.71 330.40,179.09 366.97,169.29 403.54,158.94 440.11,142.61 458.40,140.44 ' style='stroke-width: 0.75; stroke: #353E7B;' />
+<polyline points='74.40,247.68 110.97,241.15 147.54,235.70 184.11,224.81 220.69,214.47 257.26,204.13 293.83,191.06 330.40,184.53 366.97,175.28 403.54,155.13 440.11,143.70 458.40,139.89 ' style='stroke-width: 0.75; stroke: #3A3878;' />
+<polyline points='74.40,247.13 110.97,240.06 147.54,232.98 184.11,223.73 220.69,212.29 257.26,203.04 293.83,185.07 330.40,174.19 366.97,157.86 403.54,142.07 440.11,125.74 458.40,125.74 ' style='stroke-width: 0.75; stroke: #3D3375;' />
+<polyline points='74.40,246.59 110.97,242.78 147.54,235.16 184.11,223.73 220.69,213.38 257.26,200.86 293.83,182.35 330.40,174.73 366.97,158.40 403.54,142.07 440.11,123.02 458.40,116.48 ' style='stroke-width: 0.75; stroke: #402D71;' />
+<polyline points='74.40,248.22 110.97,242.23 147.54,235.70 184.11,225.90 220.69,212.84 257.26,201.41 293.83,185.62 330.40,176.91 366.97,148.60 403.54,127.37 440.11,104.51 458.40,94.16 ' style='stroke-width: 0.75; stroke: #44286E;' />
+</g>
+</g>
+</svg>
diff --git a/inst/tinytest/_tinysnapshot/legend_spacing_ncol_right.svg b/inst/tinytest/_tinysnapshot/legend_spacing_ncol_right.svg
new file mode 100644
index 00000000..c3d77239
--- /dev/null
+++ b/inst/tinytest/_tinysnapshot/legend_spacing_ncol_right.svg
@@ -0,0 +1,327 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='504.00pt' height='504.00pt' viewBox='0 0 504.00 504.00'>
+<g class='svglite'>
+<defs>
+  <style type='text/css'><![CDATA[
+    .svglite line, .svglite polyline, .svglite polygon, .svglite path, .svglite rect, .svglite circle {
+      fill: none;
+      stroke: #000000;
+      stroke-linecap: round;
+      stroke-linejoin: round;
+      stroke-miterlimit: 10.00;
+    }
+    .svglite text {
+      white-space: pre;
+    }
+    .svglite g.glyphgroup path {
+      fill: inherit;
+      stroke: none;
+    }
+  ]]></style>
+</defs>
+<rect width='100%' height='100%' style='stroke: none; fill: #FFFFFF;'/>
+<defs>
+  <clipPath id='cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA='>
+    <rect x='0.00' y='0.00' width='504.00' height='504.00' />
+  </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
+<line x1='380.64' y1='109.80' x2='394.14' y2='109.80' style='stroke-width: 0.75; stroke: #C2DE34;' />
+<line x1='380.64' y1='127.80' x2='394.14' y2='127.80' style='stroke-width: 0.75; stroke: #B7DC39;' />
+<line x1='380.64' y1='145.80' x2='394.14' y2='145.80' style='stroke-width: 0.75; stroke: #ACDA3E;' />
+<line x1='380.64' y1='163.80' x2='394.14' y2='163.80' style='stroke-width: 0.75; stroke: #A1D945;' />
+<line x1='380.64' y1='181.80' x2='394.14' y2='181.80' style='stroke-width: 0.75; stroke: #96D74A;' />
+<line x1='380.64' y1='199.80' x2='394.14' y2='199.80' style='stroke-width: 0.75; stroke: #8AD550;' />
+<line x1='380.64' y1='217.80' x2='394.14' y2='217.80' style='stroke-width: 0.75; stroke: #7ED356;' />
+<line x1='380.64' y1='235.80' x2='394.14' y2='235.80' style='stroke-width: 0.75; stroke: #71D15B;' />
+<line x1='380.64' y1='253.80' x2='394.14' y2='253.80' style='stroke-width: 0.75; stroke: #64CF60;' />
+<line x1='380.64' y1='271.80' x2='394.14' y2='271.80' style='stroke-width: 0.75; stroke: #55CC66;' />
+<line x1='380.64' y1='289.80' x2='394.14' y2='289.80' style='stroke-width: 0.75; stroke: #44C96B;' />
+<line x1='380.64' y1='307.80' x2='394.14' y2='307.80' style='stroke-width: 0.75; stroke: #2EC76F;' />
+<line x1='380.64' y1='325.80' x2='394.14' y2='325.80' style='stroke-width: 0.75; stroke: #0DC574;' />
+<line x1='380.64' y1='343.80' x2='394.14' y2='343.80' style='stroke-width: 0.75; stroke: #00C277;' />
+<line x1='380.64' y1='361.80' x2='394.14' y2='361.80' style='stroke-width: 0.75; stroke: #00BE7B;' />
+<line x1='380.64' y1='379.80' x2='394.14' y2='379.80' style='stroke-width: 0.75; stroke: #00BC7F;' />
+<line x1='380.64' y1='397.80' x2='394.14' y2='397.80' style='stroke-width: 0.75; stroke: #00B982;' />
+<line x1='422.78' y1='109.80' x2='436.28' y2='109.80' style='stroke-width: 0.75; stroke: #00B685;' />
+<line x1='422.78' y1='127.80' x2='436.28' y2='127.80' style='stroke-width: 0.75; stroke: #00B289;' />
+<line x1='422.78' y1='145.80' x2='436.28' y2='145.80' style='stroke-width: 0.75; stroke: #00AF8B;' />
+<line x1='422.78' y1='163.80' x2='436.28' y2='163.80' style='stroke-width: 0.75; stroke: #00AB8D;' />
+<line x1='422.78' y1='181.80' x2='436.28' y2='181.80' style='stroke-width: 0.75; stroke: #00A88F;' />
+<line x1='422.78' y1='199.80' x2='436.28' y2='199.80' style='stroke-width: 0.75; stroke: #00A591;' />
+<line x1='422.78' y1='217.80' x2='436.28' y2='217.80' style='stroke-width: 0.75; stroke: #00A093;' />
+<line x1='422.78' y1='235.80' x2='436.28' y2='235.80' style='stroke-width: 0.75; stroke: #009D94;' />
+<line x1='422.78' y1='253.80' x2='436.28' y2='253.80' style='stroke-width: 0.75; stroke: #009995;' />
+<line x1='422.78' y1='271.80' x2='436.28' y2='271.80' style='stroke-width: 0.75; stroke: #009596;' />
+<line x1='422.78' y1='289.80' x2='436.28' y2='289.80' style='stroke-width: 0.75; stroke: #009197;' />
+<line x1='422.78' y1='307.80' x2='436.28' y2='307.80' style='stroke-width: 0.75; stroke: #008D98;' />
+<line x1='422.78' y1='325.80' x2='436.28' y2='325.80' style='stroke-width: 0.75; stroke: #008998;' />
+<line x1='422.78' y1='343.80' x2='436.28' y2='343.80' style='stroke-width: 0.75; stroke: #008498;' />
+<line x1='422.78' y1='361.80' x2='436.28' y2='361.80' style='stroke-width: 0.75; stroke: #008197;' />
+<line x1='422.78' y1='379.80' x2='436.28' y2='379.80' style='stroke-width: 0.75; stroke: #007C97;' />
+<line x1='422.78' y1='397.80' x2='436.28' y2='397.80' style='stroke-width: 0.75; stroke: #007796;' />
+<line x1='464.92' y1='109.80' x2='478.42' y2='109.80' style='stroke-width: 0.75; stroke: #007395;' />
+<line x1='464.92' y1='127.80' x2='478.42' y2='127.80' style='stroke-width: 0.75; stroke: #006E93;' />
+<line x1='464.92' y1='145.80' x2='478.42' y2='145.80' style='stroke-width: 0.75; stroke: #006991;' />
+<line x1='464.92' y1='163.80' x2='478.42' y2='163.80' style='stroke-width: 0.75; stroke: #006590;' />
+<line x1='464.92' y1='181.80' x2='478.42' y2='181.80' style='stroke-width: 0.75; stroke: #00618E;' />
+<line x1='464.92' y1='199.80' x2='478.42' y2='199.80' style='stroke-width: 0.75; stroke: #005C8D;' />
+<line x1='464.92' y1='217.80' x2='478.42' y2='217.80' style='stroke-width: 0.75; stroke: #00578A;' />
+<line x1='464.92' y1='235.80' x2='478.42' y2='235.80' style='stroke-width: 0.75; stroke: #0C5287;' />
+<line x1='464.92' y1='253.80' x2='478.42' y2='253.80' style='stroke-width: 0.75; stroke: #1D4D85;' />
+<line x1='464.92' y1='271.80' x2='478.42' y2='271.80' style='stroke-width: 0.75; stroke: #274882;' />
+<line x1='464.92' y1='289.80' x2='478.42' y2='289.80' style='stroke-width: 0.75; stroke: #2F437F;' />
+<line x1='464.92' y1='307.80' x2='478.42' y2='307.80' style='stroke-width: 0.75; stroke: #353E7B;' />
+<line x1='464.92' y1='325.80' x2='478.42' y2='325.80' style='stroke-width: 0.75; stroke: #3A3878;' />
+<line x1='464.92' y1='343.80' x2='478.42' y2='343.80' style='stroke-width: 0.75; stroke: #3D3375;' />
+<line x1='464.92' y1='361.80' x2='478.42' y2='361.80' style='stroke-width: 0.75; stroke: #402D71;' />
+<line x1='464.92' y1='379.80' x2='478.42' y2='379.80' style='stroke-width: 0.75; stroke: #44286E;' />
+<rect x='379.01' y='101.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #C2DE34; fill: #C2DE34; fill-opacity: 0.20;' />
+<rect x='379.01' y='119.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #B7DC39; fill: #B7DC39; fill-opacity: 0.20;' />
+<rect x='379.01' y='137.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #ACDA3E; fill: #ACDA3E; fill-opacity: 0.20;' />
+<rect x='379.01' y='155.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #A1D945; fill: #A1D945; fill-opacity: 0.20;' />
+<rect x='379.01' y='173.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #96D74A; fill: #96D74A; fill-opacity: 0.20;' />
+<rect x='379.01' y='191.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #8AD550; fill: #8AD550; fill-opacity: 0.20;' />
+<rect x='379.01' y='209.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #7ED356; fill: #7ED356; fill-opacity: 0.20;' />
+<rect x='379.01' y='227.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #71D15B; fill: #71D15B; fill-opacity: 0.20;' />
+<rect x='379.01' y='245.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #64CF60; fill: #64CF60; fill-opacity: 0.20;' />
+<rect x='379.01' y='263.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #55CC66; fill: #55CC66; fill-opacity: 0.20;' />
+<rect x='379.01' y='281.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #44C96B; fill: #44C96B; fill-opacity: 0.20;' />
+<rect x='379.01' y='299.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #2EC76F; fill: #2EC76F; fill-opacity: 0.20;' />
+<rect x='379.01' y='317.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #0DC574; fill: #0DC574; fill-opacity: 0.20;' />
+<rect x='379.01' y='335.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00C277; fill: #00C277; fill-opacity: 0.20;' />
+<rect x='379.01' y='353.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00BE7B; fill: #00BE7B; fill-opacity: 0.20;' />
+<rect x='379.01' y='371.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00BC7F; fill: #00BC7F; fill-opacity: 0.20;' />
+<rect x='379.01' y='389.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00B982; fill: #00B982; fill-opacity: 0.20;' />
+<rect x='421.15' y='101.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00B685; fill: #00B685; fill-opacity: 0.20;' />
+<rect x='421.15' y='119.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00B289; fill: #00B289; fill-opacity: 0.20;' />
+<rect x='421.15' y='137.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00AF8B; fill: #00AF8B; fill-opacity: 0.20;' />
+<rect x='421.15' y='155.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00AB8D; fill: #00AB8D; fill-opacity: 0.20;' />
+<rect x='421.15' y='173.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00A88F; fill: #00A88F; fill-opacity: 0.20;' />
+<rect x='421.15' y='191.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00A591; fill: #00A591; fill-opacity: 0.20;' />
+<rect x='421.15' y='209.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00A093; fill: #00A093; fill-opacity: 0.20;' />
+<rect x='421.15' y='227.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #009D94; fill: #009D94; fill-opacity: 0.20;' />
+<rect x='421.15' y='245.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #009995; fill: #009995; fill-opacity: 0.20;' />
+<rect x='421.15' y='263.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #009596; fill: #009596; fill-opacity: 0.20;' />
+<rect x='421.15' y='281.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #009197; fill: #009197; fill-opacity: 0.20;' />
+<rect x='421.15' y='299.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #008D98; fill: #008D98; fill-opacity: 0.20;' />
+<rect x='421.15' y='317.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #008998; fill: #008998; fill-opacity: 0.20;' />
+<rect x='421.15' y='335.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #008498; fill: #008498; fill-opacity: 0.20;' />
+<rect x='421.15' y='353.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #008197; fill: #008197; fill-opacity: 0.20;' />
+<rect x='421.15' y='371.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #007C97; fill: #007C97; fill-opacity: 0.20;' />
+<rect x='421.15' y='389.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #007796; fill: #007796; fill-opacity: 0.20;' />
+<rect x='463.29' y='101.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #007395; fill: #007395; fill-opacity: 0.20;' />
+<rect x='463.29' y='119.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #006E93; fill: #006E93; fill-opacity: 0.20;' />
+<rect x='463.29' y='137.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #006991; fill: #006991; fill-opacity: 0.20;' />
+<rect x='463.29' y='155.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #006590; fill: #006590; fill-opacity: 0.20;' />
+<rect x='463.29' y='173.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00618E; fill: #00618E; fill-opacity: 0.20;' />
+<rect x='463.29' y='191.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #005C8D; fill: #005C8D; fill-opacity: 0.20;' />
+<rect x='463.29' y='209.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #00578A; fill: #00578A; fill-opacity: 0.20;' />
+<rect x='463.29' y='227.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #0C5287; fill: #0C5287; fill-opacity: 0.20;' />
+<rect x='463.29' y='245.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #1D4D85; fill: #1D4D85; fill-opacity: 0.20;' />
+<rect x='463.29' y='263.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #274882; fill: #274882; fill-opacity: 0.20;' />
+<rect x='463.29' y='281.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #2F437F; fill: #2F437F; fill-opacity: 0.20;' />
+<rect x='463.29' y='299.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #353E7B; fill: #353E7B; fill-opacity: 0.20;' />
+<rect x='463.29' y='317.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #3A3878; fill: #3A3878; fill-opacity: 0.20;' />
+<rect x='463.29' y='335.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #3D3375; fill: #3D3375; fill-opacity: 0.20;' />
+<rect x='463.29' y='353.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #402D71; fill: #402D71; fill-opacity: 0.20;' />
+<rect x='463.29' y='371.43' width='16.75' height='16.75' style='stroke-width: 0.00; stroke: #44286E; fill: #44286E; fill-opacity: 0.20;' />
+<text x='439.98' y='90.00' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='30.02px' lengthAdjust='spacingAndGlyphs'>Chick</text>
+<text x='399.54' y='113.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>18  </text>
+<text x='399.54' y='131.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>16  </text>
+<text x='399.54' y='149.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>15  </text>
+<text x='399.54' y='167.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>13  </text>
+<text x='399.54' y='185.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>9  </text>
+<text x='399.54' y='203.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>20  </text>
+<text x='399.54' y='221.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>10  </text>
+<text x='399.54' y='239.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>8  </text>
+<text x='399.54' y='257.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>17  </text>
+<text x='399.54' y='275.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>19  </text>
+<text x='399.54' y='293.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>4  </text>
+<text x='399.54' y='311.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>6  </text>
+<text x='399.54' y='329.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='19.11px' lengthAdjust='spacingAndGlyphs'>11  </text>
+<text x='399.54' y='347.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>3  </text>
+<text x='399.54' y='365.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>1  </text>
+<text x='399.54' y='383.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>12  </text>
+<text x='399.54' y='401.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>2  </text>
+<text x='441.68' y='113.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>5  </text>
+<text x='441.68' y='131.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>14  </text>
+<text x='441.68' y='149.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.33px' lengthAdjust='spacingAndGlyphs'>7  </text>
+<text x='441.68' y='167.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>24  </text>
+<text x='441.68' y='185.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>30  </text>
+<text x='441.68' y='203.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>22  </text>
+<text x='441.68' y='221.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>23  </text>
+<text x='441.68' y='239.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>27  </text>
+<text x='441.68' y='257.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>28  </text>
+<text x='441.68' y='275.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>26  </text>
+<text x='441.68' y='293.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>25  </text>
+<text x='441.68' y='311.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>29  </text>
+<text x='441.68' y='329.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>21  </text>
+<text x='441.68' y='347.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>33  </text>
+<text x='441.68' y='365.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>37  </text>
+<text x='441.68' y='383.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>36  </text>
+<text x='441.68' y='401.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.00px' lengthAdjust='spacingAndGlyphs'>31  </text>
+<text x='483.82' y='113.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>39</text>
+<text x='483.82' y='131.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>38</text>
+<text x='483.82' y='149.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>32</text>
+<text x='483.82' y='167.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>40</text>
+<text x='483.82' y='185.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>34</text>
+<text x='483.82' y='203.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>35</text>
+<text x='483.82' y='221.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>44</text>
+<text x='483.82' y='239.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>45</text>
+<text x='483.82' y='257.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>43</text>
+<text x='483.82' y='275.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>41</text>
+<text x='483.82' y='293.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>47</text>
+<text x='483.82' y='311.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>49</text>
+<text x='483.82' y='329.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>46</text>
+<text x='483.82' y='347.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>50</text>
+<text x='483.82' y='365.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>42</text>
+<text x='483.82' y='383.93' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>48</text>
+</g>
+<defs>
+  <clipPath id='cpMC4wMHwzNjMuMDB8MC4wMHw1MDQuMDA='>
+    <rect x='0.00' y='0.00' width='363.00' height='504.00' />
+  </clipPath>
+</defs>
+<g clip-path='url(#cpMC4wMHwzNjMuMDB8MC4wMHw1MDQuMDA=)'>
+<text x='211.02' y='485.28' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='26.23px' lengthAdjust='spacingAndGlyphs'>Time</text>
+<text transform='translate(12.96,244.80) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='34.69px' lengthAdjust='spacingAndGlyphs'>weight</text>
+</g>
+<g clip-path='url(#cpMC4wMHw1MDQuMDB8MC4wMHw1MDQuMDA=)'>
+<line x1='70.30' y1='430.56' x2='338.34' y2='430.56' style='stroke-width: 0.75;' />
+<line x1='70.30' y1='430.56' x2='70.30' y2='437.76' style='stroke-width: 0.75;' />
+<line x1='137.31' y1='430.56' x2='137.31' y2='437.76' style='stroke-width: 0.75;' />
+<line x1='204.32' y1='430.56' x2='204.32' y2='437.76' style='stroke-width: 0.75;' />
+<line x1='271.33' y1='430.56' x2='271.33' y2='437.76' style='stroke-width: 0.75;' />
+<line x1='338.34' y1='430.56' x2='338.34' y2='437.76' style='stroke-width: 0.75;' />
+<text x='70.30' y='456.48' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>0</text>
+<text x='137.31' y='456.48' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>5</text>
+<text x='204.32' y='456.48' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>10</text>
+<text x='271.33' y='456.48' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>15</text>
+<text x='338.34' y='456.48' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>20</text>
+<line x1='59.04' y1='401.53' x2='59.04' y2='96.21' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='401.53' x2='51.84' y2='401.53' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='350.65' x2='51.84' y2='350.65' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='299.76' x2='51.84' y2='299.76' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='248.87' x2='51.84' y2='248.87' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='197.98' x2='51.84' y2='197.98' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='147.10' x2='51.84' y2='147.10' style='stroke-width: 0.75;' />
+<line x1='59.04' y1='96.21' x2='51.84' y2='96.21' style='stroke-width: 0.75;' />
+<text transform='translate(41.76,401.53) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='13.34px' lengthAdjust='spacingAndGlyphs'>50</text>
+<text transform='translate(41.76,350.65) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.02px' lengthAdjust='spacingAndGlyphs'>100</text>
+<text transform='translate(41.76,299.76) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.02px' lengthAdjust='spacingAndGlyphs'>150</text>
+<text transform='translate(41.76,248.87) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.02px' lengthAdjust='spacingAndGlyphs'>200</text>
+<text transform='translate(41.76,197.98) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.02px' lengthAdjust='spacingAndGlyphs'>250</text>
+<text transform='translate(41.76,147.10) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.02px' lengthAdjust='spacingAndGlyphs'>300</text>
+<text transform='translate(41.76,96.21) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: "Liberation Sans";' textLength='20.02px' lengthAdjust='spacingAndGlyphs'>350</text>
+<polygon points='59.04,430.56 363.00,430.56 363.00,59.04 59.04,59.04 ' style='stroke-width: 0.75;' />
+</g>
+<defs>
+  <clipPath id='cpNTkuMDR8MzYzLjAwfDU5LjA0fDQzMC41Ng=='>
+    <rect x='59.04' y='59.04' width='303.96' height='371.52' />
+  </clipPath>
+</defs>
+<g clip-path='url(#cpNTkuMDR8MzYzLjAwfDU5LjA0fDQzMC41Ng==)'>
+<polygon points='70.30,412.73 97.10,416.80 97.10,416.80 70.30,412.73 ' style='stroke-width: 0.75; stroke: none; fill: #C2DE34; fill-opacity: 0.20;' />
+<polyline points='70.30,412.73 97.10,416.80 ' style='stroke-width: 0.75; stroke: #C2DE34;' />
+<polygon points='70.30,410.69 97.10,406.62 123.91,402.55 150.71,400.52 177.51,394.41 204.32,400.52 231.12,397.46 231.12,397.46 204.32,400.52 177.51,394.41 150.71,400.52 123.91,402.55 97.10,406.62 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #B7DC39; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,406.62 123.91,402.55 150.71,400.52 177.51,394.41 204.32,400.52 231.12,397.46 ' style='stroke-width: 0.75; stroke: #B7DC39;' />
+<polygon points='70.30,410.69 97.10,402.55 123.91,395.43 150.71,387.29 177.51,383.21 204.32,383.21 231.12,384.23 257.92,383.21 257.92,383.21 231.12,384.23 204.32,383.21 177.51,383.21 150.71,387.29 123.91,395.43 97.10,402.55 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #ACDA3E; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,402.55 123.91,395.43 150.71,387.29 177.51,383.21 204.32,383.21 231.12,384.23 257.92,383.21 ' style='stroke-width: 0.75; stroke: #ACDA3E;' />
+<polygon points='70.30,410.69 97.10,403.57 123.91,398.48 150.71,391.36 177.51,386.27 204.32,384.23 231.12,380.16 257.92,381.18 284.73,380.16 311.53,369.98 338.34,359.81 351.74,354.72 351.74,354.72 338.34,359.81 311.53,369.98 284.73,380.16 257.92,381.18 231.12,380.16 204.32,384.23 177.51,386.27 150.71,391.36 123.91,398.48 97.10,403.57 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #A1D945; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,403.57 123.91,398.48 150.71,391.36 177.51,386.27 204.32,384.23 231.12,380.16 257.92,381.18 284.73,380.16 311.53,369.98 338.34,359.81 351.74,354.72 ' style='stroke-width: 0.75; stroke: #A1D945;' />
+<polygon points='70.30,409.68 97.10,400.52 123.91,392.37 150.71,383.21 177.51,365.91 204.32,354.72 231.12,360.82 257.92,358.79 284.73,357.77 311.53,350.65 338.34,350.65 351.74,352.68 351.74,352.68 338.34,350.65 311.53,350.65 284.73,357.77 257.92,358.79 231.12,360.82 204.32,354.72 177.51,365.91 150.71,383.21 123.91,392.37 97.10,400.52 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #96D74A; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,400.52 123.91,392.37 150.71,383.21 177.51,365.91 204.32,354.72 231.12,360.82 257.92,358.79 284.73,357.77 311.53,350.65 338.34,350.65 351.74,352.68 ' style='stroke-width: 0.75; stroke: #96D74A;' />
+<polygon points='70.30,410.69 97.10,404.59 123.91,397.46 150.71,393.39 177.51,386.27 204.32,378.13 231.12,374.05 257.92,361.84 284.73,352.68 311.53,343.52 338.34,335.38 351.74,333.34 351.74,333.34 338.34,335.38 311.53,343.52 284.73,352.68 257.92,361.84 231.12,374.05 204.32,378.13 177.51,386.27 150.71,393.39 123.91,397.46 97.10,404.59 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #8AD550; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,404.59 123.91,397.46 150.71,393.39 177.51,386.27 204.32,378.13 231.12,374.05 257.92,361.84 284.73,352.68 311.53,343.52 338.34,335.38 351.74,333.34 ' style='stroke-width: 0.75; stroke: #8AD550;' />
+<polygon points='70.30,410.69 97.10,407.64 123.91,399.50 150.71,388.30 177.51,377.11 204.32,369.98 231.12,361.84 257.92,354.72 284.73,349.63 311.53,338.43 338.34,330.29 351.74,326.22 351.74,326.22 338.34,330.29 311.53,338.43 284.73,349.63 257.92,354.72 231.12,361.84 204.32,369.98 177.51,377.11 150.71,388.30 123.91,399.50 97.10,407.64 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #7ED356; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,407.64 123.91,399.50 150.71,388.30 177.51,377.11 204.32,369.98 231.12,361.84 257.92,354.72 284.73,349.63 311.53,338.43 338.34,330.29 351.74,326.22 ' style='stroke-width: 0.75; stroke: #7ED356;' />
+<polygon points='70.30,409.68 97.10,401.53 123.91,390.34 150.71,380.16 177.51,366.93 204.32,357.77 231.12,340.47 257.92,334.36 284.73,324.18 311.53,316.04 338.34,325.20 338.34,325.20 311.53,316.04 284.73,324.18 257.92,334.36 231.12,340.47 204.32,357.77 177.51,366.93 150.71,380.16 123.91,390.34 97.10,401.53 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #71D15B; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,401.53 123.91,390.34 150.71,380.16 177.51,366.93 204.32,357.77 231.12,340.47 257.92,334.36 284.73,324.18 311.53,316.04 338.34,325.20 ' style='stroke-width: 0.75; stroke: #71D15B;' />
+<polygon points='70.30,409.68 97.10,400.52 123.91,390.34 150.71,379.14 177.51,367.95 204.32,361.84 231.12,352.68 257.92,347.59 284.73,337.42 311.53,327.24 338.34,317.06 351.74,307.90 351.74,307.90 338.34,317.06 311.53,327.24 284.73,337.42 257.92,347.59 231.12,352.68 204.32,361.84 177.51,367.95 150.71,379.14 123.91,390.34 97.10,400.52 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #64CF60; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,400.52 123.91,390.34 150.71,379.14 177.51,367.95 204.32,361.84 231.12,352.68 257.92,347.59 284.73,337.42 311.53,327.24 338.34,317.06 351.74,307.90 ' style='stroke-width: 0.75; stroke: #64CF60;' />
+<polygon points='70.30,408.66 97.10,403.57 123.91,396.44 150.71,389.32 177.51,386.27 204.32,380.16 231.12,368.97 257.92,362.86 284.73,344.54 311.53,330.29 338.34,305.87 351.74,292.63 351.74,292.63 338.34,305.87 311.53,330.29 284.73,344.54 257.92,362.86 231.12,368.97 204.32,380.16 177.51,386.27 150.71,389.32 123.91,396.44 97.10,403.57 70.30,408.66 ' style='stroke-width: 0.75; stroke: none; fill: #55CC66; fill-opacity: 0.20;' />
+<polyline points='70.30,408.66 97.10,403.57 123.91,396.44 150.71,389.32 177.51,386.27 204.32,380.16 231.12,368.97 257.92,362.86 284.73,344.54 311.53,330.29 338.34,305.87 351.74,292.63 ' style='stroke-width: 0.75; stroke: #55CC66;' />
+<polygon points='70.30,409.68 97.10,402.55 123.91,395.43 150.71,384.23 177.51,377.11 204.32,363.88 231.12,348.61 257.92,342.50 284.73,314.01 311.53,295.69 338.34,289.58 351.74,292.63 351.74,292.63 338.34,289.58 311.53,295.69 284.73,314.01 257.92,342.50 231.12,348.61 204.32,363.88 177.51,377.11 150.71,384.23 123.91,395.43 97.10,402.55 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #44C96B; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,402.55 123.91,395.43 150.71,384.23 177.51,377.11 204.32,363.88 231.12,348.61 257.92,342.50 284.73,314.01 311.53,295.69 338.34,289.58 351.74,292.63 ' style='stroke-width: 0.75; stroke: #44C96B;' />
+<polygon points='70.30,410.69 97.10,402.55 123.91,392.37 150.71,377.11 177.51,353.70 204.32,326.22 231.12,308.92 257.92,301.79 284.73,294.67 311.53,289.58 338.34,289.58 351.74,292.63 351.74,292.63 338.34,289.58 311.53,289.58 284.73,294.67 257.92,301.79 231.12,308.92 204.32,326.22 177.51,353.70 150.71,377.11 123.91,392.37 97.10,402.55 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #2EC76F; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,402.55 123.91,392.37 150.71,377.11 177.51,353.70 204.32,326.22 231.12,308.92 257.92,301.79 284.73,294.67 311.53,289.58 338.34,289.58 351.74,292.63 ' style='stroke-width: 0.75; stroke: #2EC76F;' />
+<polygon points='70.30,408.66 97.10,400.52 123.91,388.30 150.71,366.93 177.51,338.43 204.32,310.95 231.12,281.44 257.92,272.28 284.73,267.19 311.53,265.16 338.34,268.21 351.74,274.31 351.74,274.31 338.34,268.21 311.53,265.16 284.73,267.19 257.92,272.28 231.12,281.44 204.32,310.95 177.51,338.43 150.71,366.93 123.91,388.30 97.10,400.52 70.30,408.66 ' style='stroke-width: 0.75; stroke: none; fill: #0DC574; fill-opacity: 0.20;' />
+<polyline points='70.30,408.66 97.10,400.52 123.91,388.30 150.71,366.93 177.51,338.43 204.32,310.95 231.12,281.44 257.92,272.28 284.73,267.19 311.53,265.16 338.34,268.21 351.74,274.31 ' style='stroke-width: 0.75; stroke: #0DC574;' />
+<polygon points='70.30,408.66 97.10,412.73 123.91,396.44 150.71,384.23 177.51,366.93 204.32,351.66 231.12,335.38 257.92,311.97 284.73,286.53 311.53,262.10 338.34,250.91 351.74,246.84 351.74,246.84 338.34,250.91 311.53,262.10 284.73,286.53 257.92,311.97 231.12,335.38 204.32,351.66 177.51,366.93 150.71,384.23 123.91,396.44 97.10,412.73 70.30,408.66 ' style='stroke-width: 0.75; stroke: none; fill: #00C277; fill-opacity: 0.20;' />
+<polyline points='70.30,408.66 97.10,412.73 123.91,396.44 150.71,384.23 177.51,366.93 204.32,351.66 231.12,335.38 257.92,311.97 284.73,286.53 311.53,262.10 338.34,250.91 351.74,246.84 ' style='stroke-width: 0.75; stroke: #00C277;' />
+<polygon points='70.30,409.68 97.10,400.52 123.91,392.37 150.71,387.29 177.51,375.07 204.32,357.77 231.12,344.54 257.92,325.20 284.73,300.78 311.53,278.39 338.34,249.89 351.74,243.78 351.74,243.78 338.34,249.89 311.53,278.39 284.73,300.78 257.92,325.20 231.12,344.54 204.32,357.77 177.51,375.07 150.71,387.29 123.91,392.37 97.10,400.52 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #00BE7B; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,400.52 123.91,392.37 150.71,387.29 177.51,375.07 204.32,357.77 231.12,344.54 257.92,325.20 284.73,300.78 311.53,278.39 338.34,249.89 351.74,243.78 ' style='stroke-width: 0.75; stroke: #00BE7B;' />
+<polygon points='70.30,410.69 97.10,402.55 123.91,395.43 150.71,389.32 177.51,379.14 204.32,362.86 231.12,331.31 257.92,315.02 284.73,287.55 311.53,264.14 338.34,253.96 351.74,243.78 351.74,243.78 338.34,253.96 311.53,264.14 284.73,287.55 257.92,315.02 231.12,331.31 204.32,362.86 177.51,379.14 150.71,389.32 123.91,395.43 97.10,402.55 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #00BC7F; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,402.55 123.91,395.43 150.71,389.32 177.51,379.14 204.32,362.86 231.12,331.31 257.92,315.02 284.73,287.55 311.53,264.14 338.34,253.96 351.74,243.78 ' style='stroke-width: 0.75; stroke: #00BC7F;' />
+<polygon points='70.30,411.71 97.10,402.55 123.91,393.39 150.71,379.14 177.51,366.93 204.32,347.59 231.12,328.26 257.92,311.97 284.73,287.55 311.53,262.10 338.34,239.71 351.74,233.60 351.74,233.60 338.34,239.71 311.53,262.10 284.73,287.55 257.92,311.97 231.12,328.26 204.32,347.59 177.51,366.93 150.71,379.14 123.91,393.39 97.10,402.55 70.30,411.71 ' style='stroke-width: 0.75; stroke: none; fill: #00B982; fill-opacity: 0.20;' />
+<polyline points='70.30,411.71 97.10,402.55 123.91,393.39 150.71,379.14 177.51,366.93 204.32,347.59 231.12,328.26 257.92,311.97 284.73,287.55 311.53,262.10 338.34,239.71 351.74,233.60 ' style='stroke-width: 0.75; stroke: #00B982;' />
+<polygon points='70.30,410.69 97.10,409.68 123.91,403.57 150.71,391.36 177.51,372.02 204.32,344.54 231.12,308.92 257.92,285.51 284.73,251.92 311.53,249.89 338.34,228.52 351.74,225.46 351.74,225.46 338.34,228.52 311.53,249.89 284.73,251.92 257.92,285.51 231.12,308.92 204.32,344.54 177.51,372.02 150.71,391.36 123.91,403.57 97.10,409.68 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #00B685; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,409.68 123.91,403.57 150.71,391.36 177.51,372.02 204.32,344.54 231.12,308.92 257.92,285.51 284.73,251.92 311.53,249.89 338.34,228.52 351.74,225.46 ' style='stroke-width: 0.75; stroke: #00B685;' />
+<polygon points='70.30,410.69 97.10,402.55 123.91,389.32 150.71,372.02 177.51,349.63 204.32,322.15 231.12,285.51 257.92,257.01 284.73,221.39 311.53,200.02 338.34,188.82 351.74,181.70 351.74,181.70 338.34,188.82 311.53,200.02 284.73,221.39 257.92,257.01 231.12,285.51 204.32,322.15 177.51,349.63 150.71,372.02 123.91,389.32 97.10,402.55 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #00B289; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,402.55 123.91,389.32 150.71,372.02 177.51,349.63 204.32,322.15 231.12,285.51 257.92,257.01 284.73,221.39 311.53,200.02 338.34,188.82 351.74,181.70 ' style='stroke-width: 0.75; stroke: #00B289;' />
+<polygon points='70.30,410.69 97.10,402.55 123.91,394.41 150.71,380.16 177.51,361.84 204.32,338.43 231.12,303.83 257.92,275.33 284.73,230.55 311.53,197.98 338.34,159.31 351.74,142.01 351.74,142.01 338.34,159.31 311.53,197.98 284.73,230.55 257.92,275.33 231.12,303.83 204.32,338.43 177.51,361.84 150.71,380.16 123.91,394.41 97.10,402.55 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #00AF8B; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,402.55 123.91,394.41 150.71,380.16 177.51,361.84 204.32,338.43 231.12,303.83 257.92,275.33 284.73,230.55 311.53,197.98 338.34,159.31 351.74,142.01 ' style='stroke-width: 0.75; stroke: #00AF8B;' />
+<polygon points='70.30,409.68 97.10,399.50 123.91,393.39 150.71,377.11 177.51,385.25 204.32,383.21 231.12,381.18 257.92,380.16 284.73,379.14 311.53,379.14 338.34,375.07 351.74,377.11 351.74,377.11 338.34,375.07 311.53,379.14 284.73,379.14 257.92,380.16 231.12,381.18 204.32,383.21 177.51,385.25 150.71,377.11 123.91,393.39 97.10,399.50 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #00AB8D; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,399.50 123.91,393.39 150.71,377.11 177.51,385.25 204.32,383.21 231.12,381.18 257.92,380.16 284.73,379.14 311.53,379.14 338.34,375.07 351.74,377.11 ' style='stroke-width: 0.75; stroke: #00AB8D;' />
+<polygon points='70.30,409.68 97.10,403.57 123.91,392.37 150.71,379.14 177.51,365.91 204.32,352.68 231.12,335.38 257.92,328.26 284.73,306.88 311.53,298.74 338.34,292.63 351.74,299.76 351.74,299.76 338.34,292.63 311.53,298.74 284.73,306.88 257.92,328.26 231.12,335.38 204.32,352.68 177.51,365.91 150.71,379.14 123.91,392.37 97.10,403.57 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #00A88F; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,403.57 123.91,392.37 150.71,379.14 177.51,365.91 204.32,352.68 231.12,335.38 257.92,328.26 284.73,306.88 311.53,298.74 338.34,292.63 351.74,299.76 ' style='stroke-width: 0.75; stroke: #00A88F;' />
+<polygon points='70.30,410.69 97.10,396.44 123.91,387.29 150.71,374.05 177.51,360.82 204.32,355.73 231.12,342.50 257.92,339.45 284.73,319.10 311.53,301.79 338.34,285.51 351.74,282.46 351.74,282.46 338.34,285.51 311.53,301.79 284.73,319.10 257.92,339.45 231.12,342.50 204.32,355.73 177.51,360.82 150.71,374.05 123.91,387.29 97.10,396.44 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #00A591; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,396.44 123.91,387.29 150.71,374.05 177.51,360.82 204.32,355.73 231.12,342.50 257.92,339.45 284.73,319.10 311.53,301.79 338.34,285.51 351.74,282.46 ' style='stroke-width: 0.75; stroke: #00A591;' />
+<polygon points='70.30,408.66 97.10,399.50 123.91,390.34 150.71,378.13 177.51,360.82 204.32,347.59 231.12,323.17 257.92,315.02 284.73,304.85 311.53,286.53 338.34,279.40 351.74,274.31 351.74,274.31 338.34,279.40 311.53,286.53 284.73,304.85 257.92,315.02 231.12,323.17 204.32,347.59 177.51,360.82 150.71,378.13 123.91,390.34 97.10,399.50 70.30,408.66 ' style='stroke-width: 0.75; stroke: none; fill: #00A093; fill-opacity: 0.20;' />
+<polyline points='70.30,408.66 97.10,399.50 123.91,390.34 150.71,378.13 177.51,360.82 204.32,347.59 231.12,323.17 257.92,315.02 284.73,304.85 311.53,286.53 338.34,279.40 351.74,274.31 ' style='stroke-width: 0.75; stroke: #00A093;' />
+<polygon points='70.30,412.73 97.10,405.60 123.91,393.39 150.71,378.13 177.51,363.88 204.32,350.65 231.12,335.38 257.92,327.24 284.73,305.87 311.53,286.53 338.34,264.14 351.74,257.01 351.74,257.01 338.34,264.14 311.53,286.53 284.73,305.87 257.92,327.24 231.12,335.38 204.32,350.65 177.51,363.88 150.71,378.13 123.91,393.39 97.10,405.60 70.30,412.73 ' style='stroke-width: 0.75; stroke: none; fill: #009D94; fill-opacity: 0.20;' />
+<polyline points='70.30,412.73 97.10,405.60 123.91,393.39 150.71,378.13 177.51,363.88 204.32,350.65 231.12,335.38 257.92,327.24 284.73,305.87 311.53,286.53 338.34,264.14 351.74,257.01 ' style='stroke-width: 0.75; stroke: #009D94;' />
+<polygon points='70.30,412.73 97.10,405.60 123.91,393.39 150.71,378.13 177.51,358.79 204.32,336.40 231.12,304.85 257.92,293.65 284.73,265.16 311.53,241.75 338.34,236.66 351.74,215.29 351.74,215.29 338.34,236.66 311.53,241.75 284.73,265.16 257.92,293.65 231.12,304.85 204.32,336.40 177.51,358.79 150.71,378.13 123.91,393.39 97.10,405.60 70.30,412.73 ' style='stroke-width: 0.75; stroke: none; fill: #009995; fill-opacity: 0.20;' />
+<polyline points='70.30,412.73 97.10,405.60 123.91,393.39 150.71,378.13 177.51,358.79 204.32,336.40 231.12,304.85 257.92,293.65 284.73,265.16 311.53,241.75 338.34,236.66 351.74,215.29 ' style='stroke-width: 0.75; stroke: #009995;' />
+<polygon points='70.30,409.68 97.10,403.57 123.91,394.41 150.71,377.11 177.51,357.77 204.32,336.40 231.12,314.01 257.92,302.81 284.73,280.42 311.53,243.78 338.34,212.23 351.74,196.97 351.74,196.97 338.34,212.23 311.53,243.78 284.73,280.42 257.92,302.81 231.12,314.01 204.32,336.40 177.51,357.77 150.71,377.11 123.91,394.41 97.10,403.57 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #009596; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,403.57 123.91,394.41 150.71,377.11 177.51,357.77 204.32,336.40 231.12,314.01 257.92,302.81 284.73,280.42 311.53,243.78 338.34,212.23 351.74,196.97 ' style='stroke-width: 0.75; stroke: #009596;' />
+<polygon points='70.30,411.71 97.10,402.55 123.91,389.32 150.71,373.04 177.51,348.61 204.32,326.22 231.12,303.83 257.92,285.51 284.73,251.92 311.53,217.32 338.34,188.82 351.74,182.72 351.74,182.72 338.34,188.82 311.53,217.32 284.73,251.92 257.92,285.51 231.12,303.83 204.32,326.22 177.51,348.61 150.71,373.04 123.91,389.32 97.10,402.55 70.30,411.71 ' style='stroke-width: 0.75; stroke: none; fill: #009197; fill-opacity: 0.20;' />
+<polyline points='70.30,411.71 97.10,402.55 123.91,389.32 150.71,373.04 177.51,348.61 204.32,326.22 231.12,303.83 257.92,285.51 284.73,251.92 311.53,217.32 338.34,188.82 351.74,182.72 ' style='stroke-width: 0.75; stroke: #009197;' />
+<polygon points='70.30,412.73 97.10,403.57 123.91,392.37 150.71,377.11 177.51,363.88 204.32,344.54 231.12,316.04 257.92,299.76 284.73,262.10 311.53,218.34 338.34,168.47 351.74,137.94 351.74,137.94 338.34,168.47 311.53,218.34 284.73,262.10 257.92,299.76 231.12,316.04 204.32,344.54 177.51,363.88 150.71,377.11 123.91,392.37 97.10,403.57 70.30,412.73 ' style='stroke-width: 0.75; stroke: none; fill: #008D98; fill-opacity: 0.20;' />
+<polyline points='70.30,412.73 97.10,403.57 123.91,392.37 150.71,377.11 177.51,363.88 204.32,344.54 231.12,316.04 257.92,299.76 284.73,262.10 311.53,218.34 338.34,168.47 351.74,137.94 ' style='stroke-width: 0.75; stroke: #008D98;' />
+<polygon points='70.30,411.71 97.10,401.53 123.91,389.32 150.71,364.89 177.51,325.20 204.32,286.53 231.12,231.57 257.92,208.16 284.73,172.54 311.53,139.97 338.34,128.78 351.74,115.55 351.74,115.55 338.34,128.78 311.53,139.97 284.73,172.54 257.92,208.16 231.12,231.57 204.32,286.53 177.51,325.20 150.71,364.89 123.91,389.32 97.10,401.53 70.30,411.71 ' style='stroke-width: 0.75; stroke: none; fill: #008998; fill-opacity: 0.20;' />
+<polyline points='70.30,411.71 97.10,401.53 123.91,389.32 150.71,364.89 177.51,325.20 204.32,286.53 231.12,231.57 257.92,208.16 284.73,172.54 311.53,139.97 338.34,128.78 351.74,115.55 ' style='stroke-width: 0.75; stroke: #008998;' />
+<polygon points='70.30,412.73 97.10,401.53 123.91,388.30 150.71,374.05 177.51,354.72 204.32,339.45 231.12,312.99 257.92,305.87 284.73,298.74 311.53,303.83 338.34,293.65 351.74,302.81 351.74,302.81 338.34,293.65 311.53,303.83 284.73,298.74 257.92,305.87 231.12,312.99 204.32,339.45 177.51,354.72 150.71,374.05 123.91,388.30 97.10,401.53 70.30,412.73 ' style='stroke-width: 0.75; stroke: none; fill: #008498; fill-opacity: 0.20;' />
+<polyline points='70.30,412.73 97.10,401.53 123.91,388.30 150.71,374.05 177.51,354.72 204.32,339.45 231.12,312.99 257.92,305.87 284.73,298.74 311.53,303.83 338.34,293.65 351.74,302.81 ' style='stroke-width: 0.75; stroke: #008498;' />
+<polygon points='70.30,410.69 97.10,403.57 123.91,395.43 150.71,383.21 177.51,371.00 204.32,367.95 231.12,347.59 257.92,338.43 284.73,315.02 311.53,292.63 338.34,280.42 351.74,271.26 351.74,271.26 338.34,280.42 311.53,292.63 284.73,315.02 257.92,338.43 231.12,347.59 204.32,367.95 177.51,371.00 150.71,383.21 123.91,395.43 97.10,403.57 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #008197; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,403.57 123.91,395.43 150.71,383.21 177.51,371.00 204.32,367.95 231.12,347.59 257.92,338.43 284.73,315.02 311.53,292.63 338.34,280.42 351.74,271.26 ' style='stroke-width: 0.75; stroke: #008197;' />
+<polygon points='70.30,412.73 97.10,403.57 123.91,390.34 150.71,375.07 177.51,352.68 204.32,334.36 231.12,304.85 257.92,283.47 284.73,250.91 311.53,221.39 338.34,223.43 351.74,228.52 351.74,228.52 338.34,223.43 311.53,221.39 284.73,250.91 257.92,283.47 231.12,304.85 204.32,334.36 177.51,352.68 150.71,375.07 123.91,390.34 97.10,403.57 70.30,412.73 ' style='stroke-width: 0.75; stroke: none; fill: #007C97; fill-opacity: 0.20;' />
+<polyline points='70.30,412.73 97.10,403.57 123.91,390.34 150.71,375.07 177.51,352.68 204.32,334.36 231.12,304.85 257.92,283.47 284.73,250.91 311.53,221.39 338.34,223.43 351.74,228.52 ' style='stroke-width: 0.75; stroke: #007C97;' />
+<polygon points='70.30,409.68 97.10,398.48 123.91,389.32 150.71,378.13 177.51,365.91 204.32,348.61 231.12,327.24 257.92,311.97 284.73,279.40 311.53,244.80 338.34,213.25 351.74,191.88 351.74,191.88 338.34,213.25 311.53,244.80 284.73,279.40 257.92,311.97 231.12,327.24 204.32,348.61 177.51,365.91 150.71,378.13 123.91,389.32 97.10,398.48 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #007796; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,398.48 123.91,389.32 150.71,378.13 177.51,365.91 204.32,348.61 231.12,327.24 257.92,311.97 284.73,279.40 311.53,244.80 338.34,213.25 351.74,191.88 ' style='stroke-width: 0.75; stroke: #007796;' />
+<polygon points='70.30,409.68 97.10,401.53 123.91,390.34 150.71,373.04 177.51,361.84 204.32,341.49 231.12,320.11 257.92,303.83 284.73,279.40 311.53,234.62 338.34,197.98 351.74,175.59 351.74,175.59 338.34,197.98 311.53,234.62 284.73,279.40 257.92,303.83 231.12,320.11 204.32,341.49 177.51,361.84 150.71,373.04 123.91,390.34 97.10,401.53 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #007395; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,401.53 123.91,390.34 150.71,373.04 177.51,361.84 204.32,341.49 231.12,320.11 257.92,303.83 284.73,279.40 311.53,234.62 338.34,197.98 351.74,175.59 ' style='stroke-width: 0.75; stroke: #007395;' />
+<polygon points='70.30,410.69 97.10,402.55 123.91,390.34 150.71,377.11 177.51,352.68 204.32,341.49 231.12,322.15 257.92,295.69 284.73,257.01 311.53,216.30 338.34,167.45 351.74,157.27 351.74,157.27 338.34,167.45 311.53,216.30 284.73,257.01 257.92,295.69 231.12,322.15 204.32,341.49 177.51,352.68 150.71,377.11 123.91,390.34 97.10,402.55 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #006E93; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,402.55 123.91,390.34 150.71,377.11 177.51,352.68 204.32,341.49 231.12,322.15 257.92,295.69 284.73,257.01 311.53,216.30 338.34,167.45 351.74,157.27 ' style='stroke-width: 0.75; stroke: #006E93;' />
+<polygon points='70.30,410.69 97.10,402.55 123.91,386.27 150.71,368.97 177.51,343.52 204.32,321.13 231.12,290.60 257.92,270.24 284.73,227.50 311.53,184.75 338.34,156.26 351.74,142.01 351.74,142.01 338.34,156.26 311.53,184.75 284.73,227.50 257.92,270.24 231.12,290.60 204.32,321.13 177.51,343.52 150.71,368.97 123.91,386.27 97.10,402.55 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #006991; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,402.55 123.91,386.27 150.71,368.97 177.51,343.52 204.32,321.13 231.12,290.60 257.92,270.24 284.73,227.50 311.53,184.75 338.34,156.26 351.74,142.01 ' style='stroke-width: 0.75; stroke: #006991;' />
+<polygon points='70.30,410.69 97.10,396.44 123.91,385.25 150.71,372.02 177.51,349.63 204.32,330.29 231.12,295.69 257.92,267.19 284.73,233.60 311.53,185.77 338.34,152.18 351.74,125.72 351.74,125.72 338.34,152.18 311.53,185.77 284.73,233.60 257.92,267.19 231.12,295.69 204.32,330.29 177.51,349.63 150.71,372.02 123.91,385.25 97.10,396.44 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #006590; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,396.44 123.91,385.25 150.71,372.02 177.51,349.63 204.32,330.29 231.12,295.69 257.92,267.19 284.73,233.60 311.53,185.77 338.34,152.18 351.74,125.72 ' style='stroke-width: 0.75; stroke: #006590;' />
+<polygon points='70.30,410.69 97.10,402.55 123.91,388.30 150.71,365.91 177.51,343.52 204.32,316.04 231.12,285.51 257.92,263.12 284.73,213.25 311.53,153.20 338.34,119.62 351.74,105.37 351.74,105.37 338.34,119.62 311.53,153.20 284.73,213.25 257.92,263.12 231.12,285.51 204.32,316.04 177.51,343.52 150.71,365.91 123.91,388.30 97.10,402.55 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #00618E; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,402.55 123.91,388.30 150.71,365.91 177.51,343.52 204.32,316.04 231.12,285.51 257.92,263.12 284.73,213.25 311.53,153.20 338.34,119.62 351.74,105.37 ' style='stroke-width: 0.75; stroke: #00618E;' />
+<polygon points='70.30,410.69 97.10,398.48 123.91,387.29 150.71,363.88 177.51,327.24 204.32,291.62 231.12,247.85 257.92,210.20 284.73,160.33 311.53,114.53 338.34,85.01 351.74,72.80 351.74,72.80 338.34,85.01 311.53,114.53 284.73,160.33 257.92,210.20 231.12,247.85 204.32,291.62 177.51,327.24 150.71,363.88 123.91,387.29 97.10,398.48 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #005C8D; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,398.48 123.91,387.29 150.71,363.88 177.51,327.24 204.32,291.62 231.12,247.85 257.92,210.20 284.73,160.33 311.53,114.53 338.34,85.01 351.74,72.80 ' style='stroke-width: 0.75; stroke: #005C8D;' />
+<polygon points='70.30,409.68 97.10,400.52 123.91,386.27 150.71,364.89 177.51,347.59 204.32,332.33 231.12,323.17 257.92,311.97 284.73,304.85 311.53,303.83 311.53,303.83 284.73,304.85 257.92,311.97 231.12,323.17 204.32,332.33 177.51,347.59 150.71,364.89 123.91,386.27 97.10,400.52 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #00578A; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,400.52 123.91,386.27 150.71,364.89 177.51,347.59 204.32,332.33 231.12,323.17 257.92,311.97 284.73,304.85 311.53,303.83 ' style='stroke-width: 0.75; stroke: #00578A;' />
+<polygon points='70.30,410.69 97.10,401.53 123.91,390.34 150.71,373.04 177.51,352.68 204.32,333.34 231.12,315.02 257.92,308.92 284.73,302.81 311.53,275.33 338.34,251.92 351.74,252.94 351.74,252.94 338.34,251.92 311.53,275.33 284.73,302.81 257.92,308.92 231.12,315.02 204.32,333.34 177.51,352.68 150.71,373.04 123.91,390.34 97.10,401.53 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #0C5287; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,401.53 123.91,390.34 150.71,373.04 177.51,352.68 204.32,333.34 231.12,315.02 257.92,308.92 284.73,302.81 311.53,275.33 338.34,251.92 351.74,252.94 ' style='stroke-width: 0.75; stroke: #0C5287;' />
+<polygon points='70.30,409.68 97.10,396.44 123.91,382.20 150.71,354.72 177.51,319.10 204.32,292.63 231.12,265.16 257.92,261.08 284.73,251.92 311.53,250.91 338.34,249.89 351.74,248.87 351.74,248.87 338.34,249.89 311.53,250.91 284.73,251.92 257.92,261.08 231.12,265.16 204.32,292.63 177.51,319.10 150.71,354.72 123.91,382.20 97.10,396.44 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #1D4D85; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,396.44 123.91,382.20 150.71,354.72 177.51,319.10 204.32,292.63 231.12,265.16 257.92,261.08 284.73,251.92 311.53,250.91 338.34,249.89 351.74,248.87 ' style='stroke-width: 0.75; stroke: #1D4D85;' />
+<polygon points='70.30,409.68 97.10,400.52 123.91,385.25 150.71,365.91 177.51,347.59 204.32,326.22 231.12,294.67 257.92,296.71 284.73,274.31 311.53,265.16 338.34,249.89 351.74,244.80 351.74,244.80 338.34,249.89 311.53,265.16 284.73,274.31 257.92,296.71 231.12,294.67 204.32,326.22 177.51,347.59 150.71,365.91 123.91,385.25 97.10,400.52 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #274882; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,400.52 123.91,385.25 150.71,365.91 177.51,347.59 204.32,326.22 231.12,294.67 257.92,296.71 284.73,274.31 311.53,265.16 338.34,249.89 351.74,244.80 ' style='stroke-width: 0.75; stroke: #274882;' />
+<polygon points='70.30,410.69 97.10,398.48 123.91,385.25 150.71,372.02 177.51,350.65 204.32,327.24 231.12,301.79 257.92,292.63 284.73,281.44 311.53,264.14 338.34,238.69 351.74,243.78 351.74,243.78 338.34,238.69 311.53,264.14 284.73,281.44 257.92,292.63 231.12,301.79 204.32,327.24 177.51,350.65 150.71,372.02 123.91,385.25 97.10,398.48 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #2F437F; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,398.48 123.91,385.25 150.71,372.02 177.51,350.65 204.32,327.24 231.12,301.79 257.92,292.63 284.73,281.44 311.53,264.14 338.34,238.69 351.74,243.78 ' style='stroke-width: 0.75; stroke: #2F437F;' />
+<polygon points='70.30,411.71 97.10,398.48 123.91,387.29 150.71,365.91 177.51,342.50 204.32,322.15 231.12,297.72 257.92,283.47 284.73,265.16 311.53,245.82 338.34,215.29 351.74,211.21 351.74,211.21 338.34,215.29 311.53,245.82 284.73,265.16 257.92,283.47 231.12,297.72 204.32,322.15 177.51,342.50 150.71,365.91 123.91,387.29 97.10,398.48 70.30,411.71 ' style='stroke-width: 0.75; stroke: none; fill: #353E7B; fill-opacity: 0.20;' />
+<polyline points='70.30,411.71 97.10,398.48 123.91,387.29 150.71,365.91 177.51,342.50 204.32,322.15 231.12,297.72 257.92,283.47 284.73,265.16 311.53,245.82 338.34,215.29 351.74,211.21 ' style='stroke-width: 0.75; stroke: #353E7B;' />
+<polygon points='70.30,411.71 97.10,399.50 123.91,389.32 150.71,368.97 177.51,349.63 204.32,330.29 231.12,305.87 257.92,293.65 284.73,276.35 311.53,238.69 338.34,217.32 351.74,210.20 351.74,210.20 338.34,217.32 311.53,238.69 284.73,276.35 257.92,293.65 231.12,305.87 204.32,330.29 177.51,349.63 150.71,368.97 123.91,389.32 97.10,399.50 70.30,411.71 ' style='stroke-width: 0.75; stroke: none; fill: #3A3878; fill-opacity: 0.20;' />
+<polyline points='70.30,411.71 97.10,399.50 123.91,389.32 150.71,368.97 177.51,349.63 204.32,330.29 231.12,305.87 257.92,293.65 284.73,276.35 311.53,238.69 338.34,217.32 351.74,210.20 ' style='stroke-width: 0.75; stroke: #3A3878;' />
+<polygon points='70.30,410.69 97.10,397.46 123.91,384.23 150.71,366.93 177.51,345.56 204.32,328.26 231.12,294.67 257.92,274.31 284.73,243.78 311.53,214.27 338.34,183.73 351.74,183.73 351.74,183.73 338.34,183.73 311.53,214.27 284.73,243.78 257.92,274.31 231.12,294.67 204.32,328.26 177.51,345.56 150.71,366.93 123.91,384.23 97.10,397.46 70.30,410.69 ' style='stroke-width: 0.75; stroke: none; fill: #3D3375; fill-opacity: 0.20;' />
+<polyline points='70.30,410.69 97.10,397.46 123.91,384.23 150.71,366.93 177.51,345.56 204.32,328.26 231.12,294.67 257.92,274.31 284.73,243.78 311.53,214.27 338.34,183.73 351.74,183.73 ' style='stroke-width: 0.75; stroke: #3D3375;' />
+<polygon points='70.30,409.68 97.10,402.55 123.91,388.30 150.71,366.93 177.51,347.59 204.32,324.18 231.12,289.58 257.92,275.33 284.73,244.80 311.53,214.27 338.34,178.65 351.74,166.43 351.74,166.43 338.34,178.65 311.53,214.27 284.73,244.80 257.92,275.33 231.12,289.58 204.32,324.18 177.51,347.59 150.71,366.93 123.91,388.30 97.10,402.55 70.30,409.68 ' style='stroke-width: 0.75; stroke: none; fill: #402D71; fill-opacity: 0.20;' />
+<polyline points='70.30,409.68 97.10,402.55 123.91,388.30 150.71,366.93 177.51,347.59 204.32,324.18 231.12,289.58 257.92,275.33 284.73,244.80 311.53,214.27 338.34,178.65 351.74,166.43 ' style='stroke-width: 0.75; stroke: #402D71;' />
+<polygon points='70.30,412.73 97.10,401.53 123.91,389.32 150.71,371.00 177.51,346.58 204.32,325.20 231.12,295.69 257.92,279.40 284.73,226.48 311.53,186.79 338.34,144.04 351.74,124.71 351.74,124.71 338.34,144.04 311.53,186.79 284.73,226.48 257.92,279.40 231.12,295.69 204.32,325.20 177.51,346.58 150.71,371.00 123.91,389.32 97.10,401.53 70.30,412.73 ' style='stroke-width: 0.75; stroke: none; fill: #44286E; fill-opacity: 0.20;' />
+<polyline points='70.30,412.73 97.10,401.53 123.91,389.32 150.71,371.00 177.51,346.58 204.32,325.20 231.12,295.69 257.92,279.40 284.73,226.48 311.53,186.79 338.34,144.04 351.74,124.71 ' style='stroke-width: 0.75; stroke: #44286E;' />
+</g>
+</g>
+</svg>
diff --git a/inst/tinytest/test-legend.R b/inst/tinytest/test-legend.R
index e2d15f44..cf72ece3 100644
--- a/inst/tinytest/test-legend.R
+++ b/inst/tinytest/test-legend.R
@@ -40,6 +40,28 @@ expect_snapshot_plot(f, label = "legend_keyword_outertopright")
 f = function() tinyplot(Temp ~ Day | Month, data = aq, legend = "bottomleft!")
 expect_snapshot_plot(f, label = "legend_keyword_outerbottomleft")
 
+# Horizontal and/or multicolumn legend spacing
+
+aq$Month2 = factor(month.name[aq$Month], levels = month.name[5:9])
+f = function() tinyplot(Temp ~ Day | Month2, data = aq, legend = "bottom!")
+expect_snapshot_plot(f, label = "legend_spacing_horiz_label_bottom")
+
+f = function() tinyplot(
+  weight ~ Time | Chick,
+  data = ChickWeight,
+  type = "ribbon", # not necessary for plot but helps to check some internal logic
+  legend = list("right!", ncol = 3)
+)
+expect_snapshot_plot(f, label = "legend_spacing_ncol_right")
+
+f = function() tinyplot(
+  weight ~ Time | Chick,
+  data = ChickWeight,
+  type = "l",
+  legend = list("bottom!", ncol = 5)
+)
+expect_snapshot_plot(f, label = "legend_spacing_ncol_bottom")
+
 # Long legend titles
 
 f = function() tinyplot(

From 336c9623b465355d1aa711b377b9074d02ed2e35 Mon Sep 17 00:00:00 2001
From: Grant McDermott <grant.mcdermott@gmail.com>
Date: Sat, 19 Jul 2025 17:20:00 -0700
Subject: [PATCH 7/9] example for tips vignette

---
 vignettes/tips.qmd | 39 +++++++++++++++++++++++++++++++++++----
 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/vignettes/tips.qmd b/vignettes/tips.qmd
index 63400d52..d477e92a 100644
--- a/vignettes/tips.qmd
+++ b/vignettes/tips.qmd
@@ -13,11 +13,11 @@ package. Please feel free to suggest or add more tips via our [GitHub repo](http
 
 ## Legend
 
-### Opacity (`alpha`)
+### Legend transparency
 
-By default, the legend inherits the opacity of the plotted elements. In some
-cases, this may be undesirable. For example, in the following plot, the legend
-is too light:
+By default, the legend inherits the transparency (`alpha`) of the plotted 
+elements. In some cases, this may be undesirable. For example, in the following
+plot, the legend is too light:
 
 ```{r}
 library(tinyplot)
@@ -38,6 +38,37 @@ tinyplot(y ~ x | z, data = dat, pch = 19, empty = TRUE)
 tinyplot_add(empty = FALSE, alpha = .1)
 ```
 
+### Mulitcolumn legends
+
+For cases where we have many discrete groups, the default single column legend
+can overrun the plot limits. For example:
+
+```{r}
+library(tinyplot)
+
+plt(weight ~ Time | Chick, data = ChickWeight, type = "l")
+```
+
+To solve this undesirable behaviour, simply pass an approporiate `ncol`
+adjustment as part of your legend (list) argument:
+
+```{r}
+plt(weight ~ Time | Chick, data = ChickWeight, type = "l",
+    legend = list(ncol = 3))
+```
+
+The same trick works for horizontal legends and/or legends in other positions,
+as well for other plot types and themes. For example:
+
+```{r}
+plt(weight ~ Time | Chick, data = ChickWeight, type = "l",
+    legend = list("bottom!", ncol = 5))
+```
+
+(Admittedly, the end result is a bit compressed here because of the default 
+aspect ratio that we use for figures on our website. But for regular interactive 
+plots, or plots saved to disk, the aesthetic effect should be quite pleasing.)
+
 ## Labels
 
 ### Direct labels

From 23dc42718ed523b5e908f1f12cef057ff91fd59e Mon Sep 17 00:00:00 2001
From: Grant McDermott <grant.mcdermott@gmail.com>
Date: Sat, 19 Jul 2025 17:52:31 -0700
Subject: [PATCH 8/9] typo

---
 vignettes/tips.qmd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/vignettes/tips.qmd b/vignettes/tips.qmd
index d477e92a..4f8cc026 100644
--- a/vignettes/tips.qmd
+++ b/vignettes/tips.qmd
@@ -38,7 +38,7 @@ tinyplot(y ~ x | z, data = dat, pch = 19, empty = TRUE)
 tinyplot_add(empty = FALSE, alpha = .1)
 ```
 
-### Mulitcolumn legends
+### Multicolumn legends
 
 For cases where we have many discrete groups, the default single column legend
 can overrun the plot limits. For example:

From bfffaa954a7ca96955914f97483332caa1af18cc Mon Sep 17 00:00:00 2001
From: Grant McDermott <grant.mcdermott@gmail.com>
Date: Sat, 19 Jul 2025 17:55:29 -0700
Subject: [PATCH 9/9] news

---
 NEWS.md | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/NEWS.md b/NEWS.md
index 5a33eeb4..16ebcbe2 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -6,6 +6,12 @@ where the formatting is also better._
 
 ## Development
 
+### New features
+
+- Improved horizontal legend spacing, as well as multicolumn legend support. A
+  new example in the "Tips & tricks" vignettes demonstrates the latter.
+  (#446 @grantmcdermott)
+
 ### Internals
 
 - Move `altdoc` from `Suggests` to `Config/Needs/website`.
