simplecharts

SVG charts without dependencies
git clone https://git.ce9e.org/simplecharts.git

commit
daf4129d9e68071bdb03bece869e4da8363b97f1
parent
af4521ab27add94c79a1d894ebf4b5e8a206c823
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2019-06-04 18:58
add aria attributes

Diffstat

M simplecharts.py 28 +++++++++++++++++++++-------
M tests/no-legend_ColumnRenderer.svg 106 ++++++++++++++++++++++++++++++++-----------------------------
M tests/no-legend_LineRenderer.svg 112 ++++++++++++++++++++++++++++++++-----------------------------
M tests/no-legend_StackedAreaRenderer.svg 112 ++++++++++++++++++++++++++++++++-----------------------------
M tests/no-legend_StackedColumnRenderer.svg 106 ++++++++++++++++++++++++++++++++-----------------------------
M tests/simple_ColumnRenderer.svg 124 ++++++++++++++++++++++++++++++++-----------------------------
M tests/simple_LineRenderer.svg 130 ++++++++++++++++++++++++++++++++-----------------------------
M tests/simple_StackedAreaRenderer.svg 130 ++++++++++++++++++++++++++++++++-----------------------------
M tests/simple_StackedColumnRenderer.svg 124 ++++++++++++++++++++++++++++++++-----------------------------
M tests/single_ColumnRenderer.svg 50 ++++++++++++++++++++++++++++----------------------
M tests/single_LineRenderer.svg 52 +++++++++++++++++++++++++++++-----------------------
M tests/single_StackedAreaRenderer.svg 52 +++++++++++++++++++++++++++++-----------------------
M tests/single_StackedColumnRenderer.svg 50 ++++++++++++++++++++++++++++----------------------

13 files changed, 631 insertions, 545 deletions


diff --git a/simplecharts.py b/simplecharts.py

@@ -91,24 +91,31 @@ class BaseRenderer:
   91    91         s += self.line(0, 0, 0, self.height, self.ui_color)
   92    92         s += self.line(0, self.width, self.height, self.height, self.ui_color)
   93    93 
   -1    94         group = ''
   94    95         for y, value in [
   95    96             (self.height, 0),
   96    97             (self.height / 2, max_value // 2),
   97    98             (0, max_value),
   98    99         ]:
   99    -1             s += self.text(value, -self.char_padding, y, **{
   -1   100             group += self.text(value, -self.char_padding, y, **{
  100   101                 'dominant-baseline': 'middle',
  101   102                 'text-anchor': 'end',
  102   103             })
   -1   104         s += self.element('g', group, **{
   -1   105             'aria-hidden': 'true',
   -1   106         })
  103   107 
   -1   108         group = ''
  104   109         width = self.width / len(rows)
  105   110         y = self.height + self.y_labels / 2
  106   111         for i, row in enumerate(rows):
  107   112             x = (i + 0.5) * width
  108    -1             s += self.text(row['label'], x, y, **{
   -1   113             group += self.text(row['label'], x, y, **{
  109   114                 'dominant-baseline': 'middle',
  110   115                 'text-anchor': 'middle',
   -1   116                 'role': 'columnheader',
  111   117             })
   -1   118         s += self.element('g', group, role='row')
  112   119 
  113   120         return s
  114   121 
@@ -143,7 +150,9 @@ class BaseRenderer:
  143   150             # margin
  144   151             x += self.char_width
  145   152 
  146    -1         return self.element('g', s)
   -1   153         return self.element('g', s, **{
   -1   154             'aria-hidden': 'true',
   -1   155         })
  147   156 
  148   157     def render_rows(self, rows, legend, max_value):
  149   158         raise NotImplementedError
@@ -169,6 +178,7 @@ class BaseRenderer:
  169   178         if legend:
  170   179             content += self.render_legend(legend)
  171   180         content += self.render_rows(data['rows'], legend, max_value)
   -1   181         content = self.element('g', content, role='table')
  172   182 
  173   183         return self.element(
  174   184             'svg',
@@ -196,9 +206,10 @@ class ColumnRenderer(BaseRenderer):
  196   206                     width,
  197   207                     height,
  198   208                     title=self.get_title(rows, legend, i, j),
   -1   209                     role='cell',
  199   210                 )
  200   211             s += self.element(
  201    -1                 'g', group, fill=self.get_color(j), stroke='white'
   -1   212                 'g', group, fill=self.get_color(j), stroke='white', role='row'
  202   213             )
  203   214         return s
  204   215 
@@ -224,10 +235,11 @@ class StackedColumnRenderer(BaseRenderer):
  224   235                     width / 3,
  225   236                     height,
  226   237                     title=self.get_title(rows, legend, i, j),
   -1   238                     role='cell',
  227   239                 )
  228   240         for j, group in enumerate(groups):
  229   241             s += self.element(
  230    -1                 'g', group, fill=self.get_color(j), stroke='white'
   -1   242                 'g', group, fill=self.get_color(j), stroke='white', role='row'
  231   243             )
  232   244         return s
  233   245 
@@ -248,10 +260,11 @@ class LineRenderer(BaseRenderer):
  248   260                     x,
  249   261                     self.height - y,
  250   262                     title=self.get_title(rows, legend, i, j),
   -1   263                     role='cell',
  251   264                 )
  252   265                 points.append((x, self.height - y))
  253   266             dots += self.element(
  254    -1                 'g', group, fill=self.get_color(j), stroke='white'
   -1   267                 'g', group, fill=self.get_color(j), stroke='white', role='row'
  255   268             )
  256   269             s += self.path(points, fill='none', stroke=self.get_color(j))
  257   270         s += dots
@@ -277,10 +290,11 @@ class StackedAreaRenderer(BaseRenderer):
  277   290                     x,
  278   291                     self.height - (prev[i][1] + y),
  279   292                     title=self.get_title(rows, legend, i, j),
   -1   293                     role='cell',
  280   294                 )
  281   295                 points.append((x, prev[i][1] + y))
  282   296             dots += self.element(
  283    -1                 'g', group, fill=self.get_color(j), stroke='white'
   -1   297                 'g', group, fill=self.get_color(j), stroke='white', role='row'
  284   298             )
  285   299             s += self.path([
  286   300                 (x, self.height - y) for x, y in points + list(reversed(prev))

diff --git a/tests/no-legend_ColumnRenderer.svg b/tests/no-legend_ColumnRenderer.svg

@@ -1,53 +1,59 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<g fill="#e41a1c" stroke="white">
   12    -1 		<rect height="240.0" width="32.0" x="32.0" y="239.0">
   13    -1 			<title>3</title>
   14    -1 		</rect>
   15    -1 		<rect height="320.0" width="32.0" x="192.0" y="159.0">
   16    -1 			<title>4</title>
   17    -1 		</rect>
   18    -1 		<rect height="320.0" width="32.0" x="352.0" y="159.0">
   19    -1 			<title>4</title>
   20    -1 		</rect>
   21    -1 		<rect height="400.0" width="32.0" x="512.0" y="79.0">
   22    -1 			<title>5</title>
   23    -1 		</rect>
   24    -1 	</g>
   25    -1 	<g fill="#377eb8" stroke="white">
   26    -1 		<rect height="160.0" width="32.0" x="64.0" y="319.0">
   27    -1 			<title>2</title>
   28    -1 		</rect>
   29    -1 		<rect height="160.0" width="32.0" x="224.0" y="319.0">
   30    -1 			<title>2</title>
   31    -1 		</rect>
   32    -1 		<rect height="240.0" width="32.0" x="384.0" y="239.0">
   33    -1 			<title>3</title>
   34    -1 		</rect>
   35    -1 		<rect height="80.0" width="32.0" x="544.0" y="399.0">
   36    -1 			<title>1</title>
   37    -1 		</rect>
   38    -1 	</g>
   39    -1 	<g fill="#4daf4a" stroke="white">
   40    -1 		<rect height="400.0" width="32.0" x="96.0" y="79.0">
   41    -1 			<title>5</title>
   42    -1 		</rect>
   43    -1 		<rect height="240.0" width="32.0" x="256.0" y="239.0">
   44    -1 			<title>3</title>
   45    -1 		</rect>
   46    -1 		<rect height="320.0" width="32.0" x="416.0" y="159.0">
   47    -1 			<title>4</title>
   48    -1 		</rect>
   49    -1 		<rect height="160.0" width="32.0" x="576.0" y="319.0">
   50    -1 			<title>2</title>
   51    -1 		</rect>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<g fill="#e41a1c" role="row" stroke="white">
   -1    17 			<rect height="240.0" role="cell" width="32.0" x="32.0" y="239.0">
   -1    18 				<title>3</title>
   -1    19 			</rect>
   -1    20 			<rect height="320.0" role="cell" width="32.0" x="192.0" y="159.0">
   -1    21 				<title>4</title>
   -1    22 			</rect>
   -1    23 			<rect height="320.0" role="cell" width="32.0" x="352.0" y="159.0">
   -1    24 				<title>4</title>
   -1    25 			</rect>
   -1    26 			<rect height="400.0" role="cell" width="32.0" x="512.0" y="79.0">
   -1    27 				<title>5</title>
   -1    28 			</rect>
   -1    29 		</g>
   -1    30 		<g fill="#377eb8" role="row" stroke="white">
   -1    31 			<rect height="160.0" role="cell" width="32.0" x="64.0" y="319.0">
   -1    32 				<title>2</title>
   -1    33 			</rect>
   -1    34 			<rect height="160.0" role="cell" width="32.0" x="224.0" y="319.0">
   -1    35 				<title>2</title>
   -1    36 			</rect>
   -1    37 			<rect height="240.0" role="cell" width="32.0" x="384.0" y="239.0">
   -1    38 				<title>3</title>
   -1    39 			</rect>
   -1    40 			<rect height="80.0" role="cell" width="32.0" x="544.0" y="399.0">
   -1    41 				<title>1</title>
   -1    42 			</rect>
   -1    43 		</g>
   -1    44 		<g fill="#4daf4a" role="row" stroke="white">
   -1    45 			<rect height="400.0" role="cell" width="32.0" x="96.0" y="79.0">
   -1    46 				<title>5</title>
   -1    47 			</rect>
   -1    48 			<rect height="240.0" role="cell" width="32.0" x="256.0" y="239.0">
   -1    49 				<title>3</title>
   -1    50 			</rect>
   -1    51 			<rect height="320.0" role="cell" width="32.0" x="416.0" y="159.0">
   -1    52 				<title>4</title>
   -1    53 			</rect>
   -1    54 			<rect height="160.0" role="cell" width="32.0" x="576.0" y="319.0">
   -1    55 				<title>2</title>
   -1    56 			</rect>
   -1    57 		</g>
   52    58 	</g>
   53    59 </svg>

diff --git a/tests/no-legend_LineRenderer.svg b/tests/no-legend_LineRenderer.svg

@@ -1,56 +1,62 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<path d="M 80.0,240.0 L 240.0,160.0 400.0,160.0 560.0,80.0" fill="none" stroke="#e41a1c" />
   12    -1 	<path d="M 80.0,320.0 L 240.0,320.0 400.0,240.0 560.0,400.0" fill="none" stroke="#377eb8" />
   13    -1 	<path d="M 80.0,80.0 L 240.0,240.0 400.0,160.0 560.0,320.0" fill="none" stroke="#4daf4a" />
   14    -1 	<g fill="#e41a1c" stroke="white">
   15    -1 		<circle cx="80.0" cy="240.0" r="3">
   16    -1 			<title>3</title>
   17    -1 		</circle>
   18    -1 		<circle cx="240.0" cy="160.0" r="3">
   19    -1 			<title>4</title>
   20    -1 		</circle>
   21    -1 		<circle cx="400.0" cy="160.0" r="3">
   22    -1 			<title>4</title>
   23    -1 		</circle>
   24    -1 		<circle cx="560.0" cy="80.0" r="3">
   25    -1 			<title>5</title>
   26    -1 		</circle>
   27    -1 	</g>
   28    -1 	<g fill="#377eb8" stroke="white">
   29    -1 		<circle cx="80.0" cy="320.0" r="3">
   30    -1 			<title>2</title>
   31    -1 		</circle>
   32    -1 		<circle cx="240.0" cy="320.0" r="3">
   33    -1 			<title>2</title>
   34    -1 		</circle>
   35    -1 		<circle cx="400.0" cy="240.0" r="3">
   36    -1 			<title>3</title>
   37    -1 		</circle>
   38    -1 		<circle cx="560.0" cy="400.0" r="3">
   39    -1 			<title>1</title>
   40    -1 		</circle>
   41    -1 	</g>
   42    -1 	<g fill="#4daf4a" stroke="white">
   43    -1 		<circle cx="80.0" cy="80.0" r="3">
   44    -1 			<title>5</title>
   45    -1 		</circle>
   46    -1 		<circle cx="240.0" cy="240.0" r="3">
   47    -1 			<title>3</title>
   48    -1 		</circle>
   49    -1 		<circle cx="400.0" cy="160.0" r="3">
   50    -1 			<title>4</title>
   51    -1 		</circle>
   52    -1 		<circle cx="560.0" cy="320.0" r="3">
   53    -1 			<title>2</title>
   54    -1 		</circle>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<path d="M 80.0,240.0 L 240.0,160.0 400.0,160.0 560.0,80.0" fill="none" stroke="#e41a1c" />
   -1    17 		<path d="M 80.0,320.0 L 240.0,320.0 400.0,240.0 560.0,400.0" fill="none" stroke="#377eb8" />
   -1    18 		<path d="M 80.0,80.0 L 240.0,240.0 400.0,160.0 560.0,320.0" fill="none" stroke="#4daf4a" />
   -1    19 		<g fill="#e41a1c" role="row" stroke="white">
   -1    20 			<circle cx="80.0" cy="240.0" r="3" role="cell">
   -1    21 				<title>3</title>
   -1    22 			</circle>
   -1    23 			<circle cx="240.0" cy="160.0" r="3" role="cell">
   -1    24 				<title>4</title>
   -1    25 			</circle>
   -1    26 			<circle cx="400.0" cy="160.0" r="3" role="cell">
   -1    27 				<title>4</title>
   -1    28 			</circle>
   -1    29 			<circle cx="560.0" cy="80.0" r="3" role="cell">
   -1    30 				<title>5</title>
   -1    31 			</circle>
   -1    32 		</g>
   -1    33 		<g fill="#377eb8" role="row" stroke="white">
   -1    34 			<circle cx="80.0" cy="320.0" r="3" role="cell">
   -1    35 				<title>2</title>
   -1    36 			</circle>
   -1    37 			<circle cx="240.0" cy="320.0" r="3" role="cell">
   -1    38 				<title>2</title>
   -1    39 			</circle>
   -1    40 			<circle cx="400.0" cy="240.0" r="3" role="cell">
   -1    41 				<title>3</title>
   -1    42 			</circle>
   -1    43 			<circle cx="560.0" cy="400.0" r="3" role="cell">
   -1    44 				<title>1</title>
   -1    45 			</circle>
   -1    46 		</g>
   -1    47 		<g fill="#4daf4a" role="row" stroke="white">
   -1    48 			<circle cx="80.0" cy="80.0" r="3" role="cell">
   -1    49 				<title>5</title>
   -1    50 			</circle>
   -1    51 			<circle cx="240.0" cy="240.0" r="3" role="cell">
   -1    52 				<title>3</title>
   -1    53 			</circle>
   -1    54 			<circle cx="400.0" cy="160.0" r="3" role="cell">
   -1    55 				<title>4</title>
   -1    56 			</circle>
   -1    57 			<circle cx="560.0" cy="320.0" r="3" role="cell">
   -1    58 				<title>2</title>
   -1    59 			</circle>
   -1    60 		</g>
   55    61 	</g>
   56    62 </svg>

diff --git a/tests/no-legend_StackedAreaRenderer.svg b/tests/no-legend_StackedAreaRenderer.svg

@@ -1,56 +1,62 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">10</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">20</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<path d="M 80.0,407.0 L 240.0,383.0 400.0,383.0 560.0,359.0 560.0,479 400.0,479 240.0,479 80.0,479" fill="#e41a1c" stroke="white" />
   12    -1 	<path d="M 80.0,359.0 L 240.0,335.0 400.0,311.0 560.0,335.0 560.0,359.0 400.0,383.0 240.0,383.0 80.0,407.0" fill="#377eb8" stroke="white" />
   13    -1 	<path d="M 80.0,239.0 L 240.0,263.0 400.0,215.0 560.0,287.0 560.0,335.0 400.0,311.0 240.0,335.0 80.0,359.0" fill="#4daf4a" stroke="white" />
   14    -1 	<g fill="#e41a1c" stroke="white">
   15    -1 		<circle cx="80.0" cy="407.0" r="3">
   16    -1 			<title>3</title>
   17    -1 		</circle>
   18    -1 		<circle cx="240.0" cy="383.0" r="3">
   19    -1 			<title>4</title>
   20    -1 		</circle>
   21    -1 		<circle cx="400.0" cy="383.0" r="3">
   22    -1 			<title>4</title>
   23    -1 		</circle>
   24    -1 		<circle cx="560.0" cy="359.0" r="3">
   25    -1 			<title>5</title>
   26    -1 		</circle>
   27    -1 	</g>
   28    -1 	<g fill="#377eb8" stroke="white">
   29    -1 		<circle cx="80.0" cy="359.0" r="3">
   30    -1 			<title>2</title>
   31    -1 		</circle>
   32    -1 		<circle cx="240.0" cy="335.0" r="3">
   33    -1 			<title>2</title>
   34    -1 		</circle>
   35    -1 		<circle cx="400.0" cy="311.0" r="3">
   36    -1 			<title>3</title>
   37    -1 		</circle>
   38    -1 		<circle cx="560.0" cy="335.0" r="3">
   39    -1 			<title>1</title>
   40    -1 		</circle>
   41    -1 	</g>
   42    -1 	<g fill="#4daf4a" stroke="white">
   43    -1 		<circle cx="80.0" cy="239.0" r="3">
   44    -1 			<title>5</title>
   45    -1 		</circle>
   46    -1 		<circle cx="240.0" cy="263.0" r="3">
   47    -1 			<title>3</title>
   48    -1 		</circle>
   49    -1 		<circle cx="400.0" cy="215.0" r="3">
   50    -1 			<title>4</title>
   51    -1 		</circle>
   52    -1 		<circle cx="560.0" cy="287.0" r="3">
   53    -1 			<title>2</title>
   54    -1 		</circle>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">10</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">20</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<path d="M 80.0,407.0 L 240.0,383.0 400.0,383.0 560.0,359.0 560.0,479 400.0,479 240.0,479 80.0,479" fill="#e41a1c" stroke="white" />
   -1    17 		<path d="M 80.0,359.0 L 240.0,335.0 400.0,311.0 560.0,335.0 560.0,359.0 400.0,383.0 240.0,383.0 80.0,407.0" fill="#377eb8" stroke="white" />
   -1    18 		<path d="M 80.0,239.0 L 240.0,263.0 400.0,215.0 560.0,287.0 560.0,335.0 400.0,311.0 240.0,335.0 80.0,359.0" fill="#4daf4a" stroke="white" />
   -1    19 		<g fill="#e41a1c" role="row" stroke="white">
   -1    20 			<circle cx="80.0" cy="407.0" r="3" role="cell">
   -1    21 				<title>3</title>
   -1    22 			</circle>
   -1    23 			<circle cx="240.0" cy="383.0" r="3" role="cell">
   -1    24 				<title>4</title>
   -1    25 			</circle>
   -1    26 			<circle cx="400.0" cy="383.0" r="3" role="cell">
   -1    27 				<title>4</title>
   -1    28 			</circle>
   -1    29 			<circle cx="560.0" cy="359.0" r="3" role="cell">
   -1    30 				<title>5</title>
   -1    31 			</circle>
   -1    32 		</g>
   -1    33 		<g fill="#377eb8" role="row" stroke="white">
   -1    34 			<circle cx="80.0" cy="359.0" r="3" role="cell">
   -1    35 				<title>2</title>
   -1    36 			</circle>
   -1    37 			<circle cx="240.0" cy="335.0" r="3" role="cell">
   -1    38 				<title>2</title>
   -1    39 			</circle>
   -1    40 			<circle cx="400.0" cy="311.0" r="3" role="cell">
   -1    41 				<title>3</title>
   -1    42 			</circle>
   -1    43 			<circle cx="560.0" cy="335.0" r="3" role="cell">
   -1    44 				<title>1</title>
   -1    45 			</circle>
   -1    46 		</g>
   -1    47 		<g fill="#4daf4a" role="row" stroke="white">
   -1    48 			<circle cx="80.0" cy="239.0" r="3" role="cell">
   -1    49 				<title>5</title>
   -1    50 			</circle>
   -1    51 			<circle cx="240.0" cy="263.0" r="3" role="cell">
   -1    52 				<title>3</title>
   -1    53 			</circle>
   -1    54 			<circle cx="400.0" cy="215.0" r="3" role="cell">
   -1    55 				<title>4</title>
   -1    56 			</circle>
   -1    57 			<circle cx="560.0" cy="287.0" r="3" role="cell">
   -1    58 				<title>2</title>
   -1    59 			</circle>
   -1    60 		</g>
   55    61 	</g>
   56    62 </svg>

diff --git a/tests/no-legend_StackedColumnRenderer.svg b/tests/no-legend_StackedColumnRenderer.svg

@@ -1,53 +1,59 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">10</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">20</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<g fill="#e41a1c" stroke="white">
   12    -1 		<rect height="72.0" width="53.333333333333336" x="53.33333333333333" y="407.0">
   13    -1 			<title>3</title>
   14    -1 		</rect>
   15    -1 		<rect height="96.0" width="53.333333333333336" x="213.33333333333334" y="383.0">
   16    -1 			<title>4</title>
   17    -1 		</rect>
   18    -1 		<rect height="96.0" width="53.333333333333336" x="373.3333333333333" y="383.0">
   19    -1 			<title>4</title>
   20    -1 		</rect>
   21    -1 		<rect height="120.0" width="53.333333333333336" x="533.3333333333334" y="359.0">
   22    -1 			<title>5</title>
   23    -1 		</rect>
   24    -1 	</g>
   25    -1 	<g fill="#377eb8" stroke="white">
   26    -1 		<rect height="48.0" width="53.333333333333336" x="53.33333333333333" y="359.0">
   27    -1 			<title>2</title>
   28    -1 		</rect>
   29    -1 		<rect height="48.0" width="53.333333333333336" x="213.33333333333334" y="335.0">
   30    -1 			<title>2</title>
   31    -1 		</rect>
   32    -1 		<rect height="72.0" width="53.333333333333336" x="373.3333333333333" y="311.0">
   33    -1 			<title>3</title>
   34    -1 		</rect>
   35    -1 		<rect height="24.0" width="53.333333333333336" x="533.3333333333334" y="335.0">
   36    -1 			<title>1</title>
   37    -1 		</rect>
   38    -1 	</g>
   39    -1 	<g fill="#4daf4a" stroke="white">
   40    -1 		<rect height="120.0" width="53.333333333333336" x="53.33333333333333" y="239.0">
   41    -1 			<title>5</title>
   42    -1 		</rect>
   43    -1 		<rect height="72.0" width="53.333333333333336" x="213.33333333333334" y="263.0">
   44    -1 			<title>3</title>
   45    -1 		</rect>
   46    -1 		<rect height="96.0" width="53.333333333333336" x="373.3333333333333" y="215.0">
   47    -1 			<title>4</title>
   48    -1 		</rect>
   49    -1 		<rect height="48.0" width="53.333333333333336" x="533.3333333333334" y="287.0">
   50    -1 			<title>2</title>
   51    -1 		</rect>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">10</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">20</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<g fill="#e41a1c" role="row" stroke="white">
   -1    17 			<rect height="72.0" role="cell" width="53.333333333333336" x="53.33333333333333" y="407.0">
   -1    18 				<title>3</title>
   -1    19 			</rect>
   -1    20 			<rect height="96.0" role="cell" width="53.333333333333336" x="213.33333333333334" y="383.0">
   -1    21 				<title>4</title>
   -1    22 			</rect>
   -1    23 			<rect height="96.0" role="cell" width="53.333333333333336" x="373.3333333333333" y="383.0">
   -1    24 				<title>4</title>
   -1    25 			</rect>
   -1    26 			<rect height="120.0" role="cell" width="53.333333333333336" x="533.3333333333334" y="359.0">
   -1    27 				<title>5</title>
   -1    28 			</rect>
   -1    29 		</g>
   -1    30 		<g fill="#377eb8" role="row" stroke="white">
   -1    31 			<rect height="48.0" role="cell" width="53.333333333333336" x="53.33333333333333" y="359.0">
   -1    32 				<title>2</title>
   -1    33 			</rect>
   -1    34 			<rect height="48.0" role="cell" width="53.333333333333336" x="213.33333333333334" y="335.0">
   -1    35 				<title>2</title>
   -1    36 			</rect>
   -1    37 			<rect height="72.0" role="cell" width="53.333333333333336" x="373.3333333333333" y="311.0">
   -1    38 				<title>3</title>
   -1    39 			</rect>
   -1    40 			<rect height="24.0" role="cell" width="53.333333333333336" x="533.3333333333334" y="335.0">
   -1    41 				<title>1</title>
   -1    42 			</rect>
   -1    43 		</g>
   -1    44 		<g fill="#4daf4a" role="row" stroke="white">
   -1    45 			<rect height="120.0" role="cell" width="53.333333333333336" x="53.33333333333333" y="239.0">
   -1    46 				<title>5</title>
   -1    47 			</rect>
   -1    48 			<rect height="72.0" role="cell" width="53.333333333333336" x="213.33333333333334" y="263.0">
   -1    49 				<title>3</title>
   -1    50 			</rect>
   -1    51 			<rect height="96.0" role="cell" width="53.333333333333336" x="373.3333333333333" y="215.0">
   -1    52 				<title>4</title>
   -1    53 			</rect>
   -1    54 			<rect height="48.0" role="cell" width="53.333333333333336" x="533.3333333333334" y="287.0">
   -1    55 				<title>2</title>
   -1    56 			</rect>
   -1    57 		</g>
   52    58 	</g>
   53    59 </svg>

diff --git a/tests/simple_ColumnRenderer.svg b/tests/simple_ColumnRenderer.svg

@@ -1,62 +1,68 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<g>
   12    -1 		<rect fill="none" height="20" stroke="#333" width="180" x="460" y="-20" />
   13    -1 		<rect fill="#e41a1c" height="10" width="10" x="464" y="-15.0" />
   14    -1 		<text dominant-baseline="middle" fill="#333" x="478" y="-10.0">John</text>
   15    -1 		<rect fill="#377eb8" height="10" width="10" x="528" y="-15.0" />
   16    -1 		<text dominant-baseline="middle" fill="#333" x="542" y="-10.0">Jane</text>
   17    -1 		<rect fill="#4daf4a" height="10" width="10" x="592" y="-15.0" />
   18    -1 		<text dominant-baseline="middle" fill="#333" x="606" y="-10.0">Joe</text>
   19    -1 	</g>
   20    -1 	<g fill="#e41a1c" stroke="white">
   21    -1 		<rect height="240.0" width="32.0" x="32.0" y="239.0">
   22    -1 			<title>3</title>
   23    -1 		</rect>
   24    -1 		<rect height="320.0" width="32.0" x="192.0" y="159.0">
   25    -1 			<title>4</title>
   26    -1 		</rect>
   27    -1 		<rect height="320.0" width="32.0" x="352.0" y="159.0">
   28    -1 			<title>4</title>
   29    -1 		</rect>
   30    -1 		<rect height="400.0" width="32.0" x="512.0" y="79.0">
   31    -1 			<title>5</title>
   32    -1 		</rect>
   33    -1 	</g>
   34    -1 	<g fill="#377eb8" stroke="white">
   35    -1 		<rect height="160.0" width="32.0" x="64.0" y="319.0">
   36    -1 			<title>2</title>
   37    -1 		</rect>
   38    -1 		<rect height="160.0" width="32.0" x="224.0" y="319.0">
   39    -1 			<title>2</title>
   40    -1 		</rect>
   41    -1 		<rect height="240.0" width="32.0" x="384.0" y="239.0">
   42    -1 			<title>3</title>
   43    -1 		</rect>
   44    -1 		<rect height="80.0" width="32.0" x="544.0" y="399.0">
   45    -1 			<title>1</title>
   46    -1 		</rect>
   47    -1 	</g>
   48    -1 	<g fill="#4daf4a" stroke="white">
   49    -1 		<rect height="400.0" width="32.0" x="96.0" y="79.0">
   50    -1 			<title>5</title>
   51    -1 		</rect>
   52    -1 		<rect height="240.0" width="32.0" x="256.0" y="239.0">
   53    -1 			<title>3</title>
   54    -1 		</rect>
   55    -1 		<rect height="320.0" width="32.0" x="416.0" y="159.0">
   56    -1 			<title>4</title>
   57    -1 		</rect>
   58    -1 		<rect height="160.0" width="32.0" x="576.0" y="319.0">
   59    -1 			<title>2</title>
   60    -1 		</rect>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<g aria-hidden="true">
   -1    17 			<rect fill="none" height="20" stroke="#333" width="180" x="460" y="-20" />
   -1    18 			<rect fill="#e41a1c" height="10" width="10" x="464" y="-15.0" />
   -1    19 			<text dominant-baseline="middle" fill="#333" x="478" y="-10.0">John</text>
   -1    20 			<rect fill="#377eb8" height="10" width="10" x="528" y="-15.0" />
   -1    21 			<text dominant-baseline="middle" fill="#333" x="542" y="-10.0">Jane</text>
   -1    22 			<rect fill="#4daf4a" height="10" width="10" x="592" y="-15.0" />
   -1    23 			<text dominant-baseline="middle" fill="#333" x="606" y="-10.0">Joe</text>
   -1    24 		</g>
   -1    25 		<g fill="#e41a1c" role="row" stroke="white">
   -1    26 			<rect height="240.0" role="cell" width="32.0" x="32.0" y="239.0">
   -1    27 				<title>3</title>
   -1    28 			</rect>
   -1    29 			<rect height="320.0" role="cell" width="32.0" x="192.0" y="159.0">
   -1    30 				<title>4</title>
   -1    31 			</rect>
   -1    32 			<rect height="320.0" role="cell" width="32.0" x="352.0" y="159.0">
   -1    33 				<title>4</title>
   -1    34 			</rect>
   -1    35 			<rect height="400.0" role="cell" width="32.0" x="512.0" y="79.0">
   -1    36 				<title>5</title>
   -1    37 			</rect>
   -1    38 		</g>
   -1    39 		<g fill="#377eb8" role="row" stroke="white">
   -1    40 			<rect height="160.0" role="cell" width="32.0" x="64.0" y="319.0">
   -1    41 				<title>2</title>
   -1    42 			</rect>
   -1    43 			<rect height="160.0" role="cell" width="32.0" x="224.0" y="319.0">
   -1    44 				<title>2</title>
   -1    45 			</rect>
   -1    46 			<rect height="240.0" role="cell" width="32.0" x="384.0" y="239.0">
   -1    47 				<title>3</title>
   -1    48 			</rect>
   -1    49 			<rect height="80.0" role="cell" width="32.0" x="544.0" y="399.0">
   -1    50 				<title>1</title>
   -1    51 			</rect>
   -1    52 		</g>
   -1    53 		<g fill="#4daf4a" role="row" stroke="white">
   -1    54 			<rect height="400.0" role="cell" width="32.0" x="96.0" y="79.0">
   -1    55 				<title>5</title>
   -1    56 			</rect>
   -1    57 			<rect height="240.0" role="cell" width="32.0" x="256.0" y="239.0">
   -1    58 				<title>3</title>
   -1    59 			</rect>
   -1    60 			<rect height="320.0" role="cell" width="32.0" x="416.0" y="159.0">
   -1    61 				<title>4</title>
   -1    62 			</rect>
   -1    63 			<rect height="160.0" role="cell" width="32.0" x="576.0" y="319.0">
   -1    64 				<title>2</title>
   -1    65 			</rect>
   -1    66 		</g>
   61    67 	</g>
   62    68 </svg>

diff --git a/tests/simple_LineRenderer.svg b/tests/simple_LineRenderer.svg

@@ -1,65 +1,71 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<g>
   12    -1 		<rect fill="none" height="20" stroke="#333" width="180" x="460" y="-20" />
   13    -1 		<rect fill="#e41a1c" height="10" width="10" x="464" y="-15.0" />
   14    -1 		<text dominant-baseline="middle" fill="#333" x="478" y="-10.0">John</text>
   15    -1 		<rect fill="#377eb8" height="10" width="10" x="528" y="-15.0" />
   16    -1 		<text dominant-baseline="middle" fill="#333" x="542" y="-10.0">Jane</text>
   17    -1 		<rect fill="#4daf4a" height="10" width="10" x="592" y="-15.0" />
   18    -1 		<text dominant-baseline="middle" fill="#333" x="606" y="-10.0">Joe</text>
   19    -1 	</g>
   20    -1 	<path d="M 80.0,240.0 L 240.0,160.0 400.0,160.0 560.0,80.0" fill="none" stroke="#e41a1c" />
   21    -1 	<path d="M 80.0,320.0 L 240.0,320.0 400.0,240.0 560.0,400.0" fill="none" stroke="#377eb8" />
   22    -1 	<path d="M 80.0,80.0 L 240.0,240.0 400.0,160.0 560.0,320.0" fill="none" stroke="#4daf4a" />
   23    -1 	<g fill="#e41a1c" stroke="white">
   24    -1 		<circle cx="80.0" cy="240.0" r="3">
   25    -1 			<title>3</title>
   26    -1 		</circle>
   27    -1 		<circle cx="240.0" cy="160.0" r="3">
   28    -1 			<title>4</title>
   29    -1 		</circle>
   30    -1 		<circle cx="400.0" cy="160.0" r="3">
   31    -1 			<title>4</title>
   32    -1 		</circle>
   33    -1 		<circle cx="560.0" cy="80.0" r="3">
   34    -1 			<title>5</title>
   35    -1 		</circle>
   36    -1 	</g>
   37    -1 	<g fill="#377eb8" stroke="white">
   38    -1 		<circle cx="80.0" cy="320.0" r="3">
   39    -1 			<title>2</title>
   40    -1 		</circle>
   41    -1 		<circle cx="240.0" cy="320.0" r="3">
   42    -1 			<title>2</title>
   43    -1 		</circle>
   44    -1 		<circle cx="400.0" cy="240.0" r="3">
   45    -1 			<title>3</title>
   46    -1 		</circle>
   47    -1 		<circle cx="560.0" cy="400.0" r="3">
   48    -1 			<title>1</title>
   49    -1 		</circle>
   50    -1 	</g>
   51    -1 	<g fill="#4daf4a" stroke="white">
   52    -1 		<circle cx="80.0" cy="80.0" r="3">
   53    -1 			<title>5</title>
   54    -1 		</circle>
   55    -1 		<circle cx="240.0" cy="240.0" r="3">
   56    -1 			<title>3</title>
   57    -1 		</circle>
   58    -1 		<circle cx="400.0" cy="160.0" r="3">
   59    -1 			<title>4</title>
   60    -1 		</circle>
   61    -1 		<circle cx="560.0" cy="320.0" r="3">
   62    -1 			<title>2</title>
   63    -1 		</circle>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<g aria-hidden="true">
   -1    17 			<rect fill="none" height="20" stroke="#333" width="180" x="460" y="-20" />
   -1    18 			<rect fill="#e41a1c" height="10" width="10" x="464" y="-15.0" />
   -1    19 			<text dominant-baseline="middle" fill="#333" x="478" y="-10.0">John</text>
   -1    20 			<rect fill="#377eb8" height="10" width="10" x="528" y="-15.0" />
   -1    21 			<text dominant-baseline="middle" fill="#333" x="542" y="-10.0">Jane</text>
   -1    22 			<rect fill="#4daf4a" height="10" width="10" x="592" y="-15.0" />
   -1    23 			<text dominant-baseline="middle" fill="#333" x="606" y="-10.0">Joe</text>
   -1    24 		</g>
   -1    25 		<path d="M 80.0,240.0 L 240.0,160.0 400.0,160.0 560.0,80.0" fill="none" stroke="#e41a1c" />
   -1    26 		<path d="M 80.0,320.0 L 240.0,320.0 400.0,240.0 560.0,400.0" fill="none" stroke="#377eb8" />
   -1    27 		<path d="M 80.0,80.0 L 240.0,240.0 400.0,160.0 560.0,320.0" fill="none" stroke="#4daf4a" />
   -1    28 		<g fill="#e41a1c" role="row" stroke="white">
   -1    29 			<circle cx="80.0" cy="240.0" r="3" role="cell">
   -1    30 				<title>3</title>
   -1    31 			</circle>
   -1    32 			<circle cx="240.0" cy="160.0" r="3" role="cell">
   -1    33 				<title>4</title>
   -1    34 			</circle>
   -1    35 			<circle cx="400.0" cy="160.0" r="3" role="cell">
   -1    36 				<title>4</title>
   -1    37 			</circle>
   -1    38 			<circle cx="560.0" cy="80.0" r="3" role="cell">
   -1    39 				<title>5</title>
   -1    40 			</circle>
   -1    41 		</g>
   -1    42 		<g fill="#377eb8" role="row" stroke="white">
   -1    43 			<circle cx="80.0" cy="320.0" r="3" role="cell">
   -1    44 				<title>2</title>
   -1    45 			</circle>
   -1    46 			<circle cx="240.0" cy="320.0" r="3" role="cell">
   -1    47 				<title>2</title>
   -1    48 			</circle>
   -1    49 			<circle cx="400.0" cy="240.0" r="3" role="cell">
   -1    50 				<title>3</title>
   -1    51 			</circle>
   -1    52 			<circle cx="560.0" cy="400.0" r="3" role="cell">
   -1    53 				<title>1</title>
   -1    54 			</circle>
   -1    55 		</g>
   -1    56 		<g fill="#4daf4a" role="row" stroke="white">
   -1    57 			<circle cx="80.0" cy="80.0" r="3" role="cell">
   -1    58 				<title>5</title>
   -1    59 			</circle>
   -1    60 			<circle cx="240.0" cy="240.0" r="3" role="cell">
   -1    61 				<title>3</title>
   -1    62 			</circle>
   -1    63 			<circle cx="400.0" cy="160.0" r="3" role="cell">
   -1    64 				<title>4</title>
   -1    65 			</circle>
   -1    66 			<circle cx="560.0" cy="320.0" r="3" role="cell">
   -1    67 				<title>2</title>
   -1    68 			</circle>
   -1    69 		</g>
   64    70 	</g>
   65    71 </svg>

diff --git a/tests/simple_StackedAreaRenderer.svg b/tests/simple_StackedAreaRenderer.svg

@@ -1,65 +1,71 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">10</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">20</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<g>
   12    -1 		<rect fill="none" height="20" stroke="#333" width="180" x="460" y="-20" />
   13    -1 		<rect fill="#e41a1c" height="10" width="10" x="464" y="-15.0" />
   14    -1 		<text dominant-baseline="middle" fill="#333" x="478" y="-10.0">John</text>
   15    -1 		<rect fill="#377eb8" height="10" width="10" x="528" y="-15.0" />
   16    -1 		<text dominant-baseline="middle" fill="#333" x="542" y="-10.0">Jane</text>
   17    -1 		<rect fill="#4daf4a" height="10" width="10" x="592" y="-15.0" />
   18    -1 		<text dominant-baseline="middle" fill="#333" x="606" y="-10.0">Joe</text>
   19    -1 	</g>
   20    -1 	<path d="M 80.0,407.0 L 240.0,383.0 400.0,383.0 560.0,359.0 560.0,479 400.0,479 240.0,479 80.0,479" fill="#e41a1c" stroke="white" />
   21    -1 	<path d="M 80.0,359.0 L 240.0,335.0 400.0,311.0 560.0,335.0 560.0,359.0 400.0,383.0 240.0,383.0 80.0,407.0" fill="#377eb8" stroke="white" />
   22    -1 	<path d="M 80.0,239.0 L 240.0,263.0 400.0,215.0 560.0,287.0 560.0,335.0 400.0,311.0 240.0,335.0 80.0,359.0" fill="#4daf4a" stroke="white" />
   23    -1 	<g fill="#e41a1c" stroke="white">
   24    -1 		<circle cx="80.0" cy="407.0" r="3">
   25    -1 			<title>3</title>
   26    -1 		</circle>
   27    -1 		<circle cx="240.0" cy="383.0" r="3">
   28    -1 			<title>4</title>
   29    -1 		</circle>
   30    -1 		<circle cx="400.0" cy="383.0" r="3">
   31    -1 			<title>4</title>
   32    -1 		</circle>
   33    -1 		<circle cx="560.0" cy="359.0" r="3">
   34    -1 			<title>5</title>
   35    -1 		</circle>
   36    -1 	</g>
   37    -1 	<g fill="#377eb8" stroke="white">
   38    -1 		<circle cx="80.0" cy="359.0" r="3">
   39    -1 			<title>2</title>
   40    -1 		</circle>
   41    -1 		<circle cx="240.0" cy="335.0" r="3">
   42    -1 			<title>2</title>
   43    -1 		</circle>
   44    -1 		<circle cx="400.0" cy="311.0" r="3">
   45    -1 			<title>3</title>
   46    -1 		</circle>
   47    -1 		<circle cx="560.0" cy="335.0" r="3">
   48    -1 			<title>1</title>
   49    -1 		</circle>
   50    -1 	</g>
   51    -1 	<g fill="#4daf4a" stroke="white">
   52    -1 		<circle cx="80.0" cy="239.0" r="3">
   53    -1 			<title>5</title>
   54    -1 		</circle>
   55    -1 		<circle cx="240.0" cy="263.0" r="3">
   56    -1 			<title>3</title>
   57    -1 		</circle>
   58    -1 		<circle cx="400.0" cy="215.0" r="3">
   59    -1 			<title>4</title>
   60    -1 		</circle>
   61    -1 		<circle cx="560.0" cy="287.0" r="3">
   62    -1 			<title>2</title>
   63    -1 		</circle>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">10</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">20</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<g aria-hidden="true">
   -1    17 			<rect fill="none" height="20" stroke="#333" width="180" x="460" y="-20" />
   -1    18 			<rect fill="#e41a1c" height="10" width="10" x="464" y="-15.0" />
   -1    19 			<text dominant-baseline="middle" fill="#333" x="478" y="-10.0">John</text>
   -1    20 			<rect fill="#377eb8" height="10" width="10" x="528" y="-15.0" />
   -1    21 			<text dominant-baseline="middle" fill="#333" x="542" y="-10.0">Jane</text>
   -1    22 			<rect fill="#4daf4a" height="10" width="10" x="592" y="-15.0" />
   -1    23 			<text dominant-baseline="middle" fill="#333" x="606" y="-10.0">Joe</text>
   -1    24 		</g>
   -1    25 		<path d="M 80.0,407.0 L 240.0,383.0 400.0,383.0 560.0,359.0 560.0,479 400.0,479 240.0,479 80.0,479" fill="#e41a1c" stroke="white" />
   -1    26 		<path d="M 80.0,359.0 L 240.0,335.0 400.0,311.0 560.0,335.0 560.0,359.0 400.0,383.0 240.0,383.0 80.0,407.0" fill="#377eb8" stroke="white" />
   -1    27 		<path d="M 80.0,239.0 L 240.0,263.0 400.0,215.0 560.0,287.0 560.0,335.0 400.0,311.0 240.0,335.0 80.0,359.0" fill="#4daf4a" stroke="white" />
   -1    28 		<g fill="#e41a1c" role="row" stroke="white">
   -1    29 			<circle cx="80.0" cy="407.0" r="3" role="cell">
   -1    30 				<title>3</title>
   -1    31 			</circle>
   -1    32 			<circle cx="240.0" cy="383.0" r="3" role="cell">
   -1    33 				<title>4</title>
   -1    34 			</circle>
   -1    35 			<circle cx="400.0" cy="383.0" r="3" role="cell">
   -1    36 				<title>4</title>
   -1    37 			</circle>
   -1    38 			<circle cx="560.0" cy="359.0" r="3" role="cell">
   -1    39 				<title>5</title>
   -1    40 			</circle>
   -1    41 		</g>
   -1    42 		<g fill="#377eb8" role="row" stroke="white">
   -1    43 			<circle cx="80.0" cy="359.0" r="3" role="cell">
   -1    44 				<title>2</title>
   -1    45 			</circle>
   -1    46 			<circle cx="240.0" cy="335.0" r="3" role="cell">
   -1    47 				<title>2</title>
   -1    48 			</circle>
   -1    49 			<circle cx="400.0" cy="311.0" r="3" role="cell">
   -1    50 				<title>3</title>
   -1    51 			</circle>
   -1    52 			<circle cx="560.0" cy="335.0" r="3" role="cell">
   -1    53 				<title>1</title>
   -1    54 			</circle>
   -1    55 		</g>
   -1    56 		<g fill="#4daf4a" role="row" stroke="white">
   -1    57 			<circle cx="80.0" cy="239.0" r="3" role="cell">
   -1    58 				<title>5</title>
   -1    59 			</circle>
   -1    60 			<circle cx="240.0" cy="263.0" r="3" role="cell">
   -1    61 				<title>3</title>
   -1    62 			</circle>
   -1    63 			<circle cx="400.0" cy="215.0" r="3" role="cell">
   -1    64 				<title>4</title>
   -1    65 			</circle>
   -1    66 			<circle cx="560.0" cy="287.0" r="3" role="cell">
   -1    67 				<title>2</title>
   -1    68 			</circle>
   -1    69 		</g>
   64    70 	</g>
   65    71 </svg>

diff --git a/tests/simple_StackedColumnRenderer.svg b/tests/simple_StackedColumnRenderer.svg

@@ -1,62 +1,68 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">10</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">20</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<g>
   12    -1 		<rect fill="none" height="20" stroke="#333" width="180" x="460" y="-20" />
   13    -1 		<rect fill="#e41a1c" height="10" width="10" x="464" y="-15.0" />
   14    -1 		<text dominant-baseline="middle" fill="#333" x="478" y="-10.0">John</text>
   15    -1 		<rect fill="#377eb8" height="10" width="10" x="528" y="-15.0" />
   16    -1 		<text dominant-baseline="middle" fill="#333" x="542" y="-10.0">Jane</text>
   17    -1 		<rect fill="#4daf4a" height="10" width="10" x="592" y="-15.0" />
   18    -1 		<text dominant-baseline="middle" fill="#333" x="606" y="-10.0">Joe</text>
   19    -1 	</g>
   20    -1 	<g fill="#e41a1c" stroke="white">
   21    -1 		<rect height="72.0" width="53.333333333333336" x="53.33333333333333" y="407.0">
   22    -1 			<title>3</title>
   23    -1 		</rect>
   24    -1 		<rect height="96.0" width="53.333333333333336" x="213.33333333333334" y="383.0">
   25    -1 			<title>4</title>
   26    -1 		</rect>
   27    -1 		<rect height="96.0" width="53.333333333333336" x="373.3333333333333" y="383.0">
   28    -1 			<title>4</title>
   29    -1 		</rect>
   30    -1 		<rect height="120.0" width="53.333333333333336" x="533.3333333333334" y="359.0">
   31    -1 			<title>5</title>
   32    -1 		</rect>
   33    -1 	</g>
   34    -1 	<g fill="#377eb8" stroke="white">
   35    -1 		<rect height="48.0" width="53.333333333333336" x="53.33333333333333" y="359.0">
   36    -1 			<title>2</title>
   37    -1 		</rect>
   38    -1 		<rect height="48.0" width="53.333333333333336" x="213.33333333333334" y="335.0">
   39    -1 			<title>2</title>
   40    -1 		</rect>
   41    -1 		<rect height="72.0" width="53.333333333333336" x="373.3333333333333" y="311.0">
   42    -1 			<title>3</title>
   43    -1 		</rect>
   44    -1 		<rect height="24.0" width="53.333333333333336" x="533.3333333333334" y="335.0">
   45    -1 			<title>1</title>
   46    -1 		</rect>
   47    -1 	</g>
   48    -1 	<g fill="#4daf4a" stroke="white">
   49    -1 		<rect height="120.0" width="53.333333333333336" x="53.33333333333333" y="239.0">
   50    -1 			<title>5</title>
   51    -1 		</rect>
   52    -1 		<rect height="72.0" width="53.333333333333336" x="213.33333333333334" y="263.0">
   53    -1 			<title>3</title>
   54    -1 		</rect>
   55    -1 		<rect height="96.0" width="53.333333333333336" x="373.3333333333333" y="215.0">
   56    -1 			<title>4</title>
   57    -1 		</rect>
   58    -1 		<rect height="48.0" width="53.333333333333336" x="533.3333333333334" y="287.0">
   59    -1 			<title>2</title>
   60    -1 		</rect>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">10</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">20</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<g aria-hidden="true">
   -1    17 			<rect fill="none" height="20" stroke="#333" width="180" x="460" y="-20" />
   -1    18 			<rect fill="#e41a1c" height="10" width="10" x="464" y="-15.0" />
   -1    19 			<text dominant-baseline="middle" fill="#333" x="478" y="-10.0">John</text>
   -1    20 			<rect fill="#377eb8" height="10" width="10" x="528" y="-15.0" />
   -1    21 			<text dominant-baseline="middle" fill="#333" x="542" y="-10.0">Jane</text>
   -1    22 			<rect fill="#4daf4a" height="10" width="10" x="592" y="-15.0" />
   -1    23 			<text dominant-baseline="middle" fill="#333" x="606" y="-10.0">Joe</text>
   -1    24 		</g>
   -1    25 		<g fill="#e41a1c" role="row" stroke="white">
   -1    26 			<rect height="72.0" role="cell" width="53.333333333333336" x="53.33333333333333" y="407.0">
   -1    27 				<title>3</title>
   -1    28 			</rect>
   -1    29 			<rect height="96.0" role="cell" width="53.333333333333336" x="213.33333333333334" y="383.0">
   -1    30 				<title>4</title>
   -1    31 			</rect>
   -1    32 			<rect height="96.0" role="cell" width="53.333333333333336" x="373.3333333333333" y="383.0">
   -1    33 				<title>4</title>
   -1    34 			</rect>
   -1    35 			<rect height="120.0" role="cell" width="53.333333333333336" x="533.3333333333334" y="359.0">
   -1    36 				<title>5</title>
   -1    37 			</rect>
   -1    38 		</g>
   -1    39 		<g fill="#377eb8" role="row" stroke="white">
   -1    40 			<rect height="48.0" role="cell" width="53.333333333333336" x="53.33333333333333" y="359.0">
   -1    41 				<title>2</title>
   -1    42 			</rect>
   -1    43 			<rect height="48.0" role="cell" width="53.333333333333336" x="213.33333333333334" y="335.0">
   -1    44 				<title>2</title>
   -1    45 			</rect>
   -1    46 			<rect height="72.0" role="cell" width="53.333333333333336" x="373.3333333333333" y="311.0">
   -1    47 				<title>3</title>
   -1    48 			</rect>
   -1    49 			<rect height="24.0" role="cell" width="53.333333333333336" x="533.3333333333334" y="335.0">
   -1    50 				<title>1</title>
   -1    51 			</rect>
   -1    52 		</g>
   -1    53 		<g fill="#4daf4a" role="row" stroke="white">
   -1    54 			<rect height="120.0" role="cell" width="53.333333333333336" x="53.33333333333333" y="239.0">
   -1    55 				<title>5</title>
   -1    56 			</rect>
   -1    57 			<rect height="72.0" role="cell" width="53.333333333333336" x="213.33333333333334" y="263.0">
   -1    58 				<title>3</title>
   -1    59 			</rect>
   -1    60 			<rect height="96.0" role="cell" width="53.333333333333336" x="373.3333333333333" y="215.0">
   -1    61 				<title>4</title>
   -1    62 			</rect>
   -1    63 			<rect height="48.0" role="cell" width="53.333333333333336" x="533.3333333333334" y="287.0">
   -1    64 				<title>2</title>
   -1    65 			</rect>
   -1    66 		</g>
   61    67 	</g>
   62    68 </svg>

diff --git a/tests/single_ColumnRenderer.svg b/tests/single_ColumnRenderer.svg

@@ -1,25 +1,31 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<g fill="#e41a1c" stroke="white">
   12    -1 		<rect height="240.0" width="53.333333333333336" x="53.333333333333336" y="239.0">
   13    -1 			<title>3</title>
   14    -1 		</rect>
   15    -1 		<rect height="320.0" width="53.333333333333336" x="213.33333333333334" y="159.0">
   16    -1 			<title>4</title>
   17    -1 		</rect>
   18    -1 		<rect height="320.0" width="53.333333333333336" x="373.33333333333337" y="159.0">
   19    -1 			<title>4</title>
   20    -1 		</rect>
   21    -1 		<rect height="400.0" width="53.333333333333336" x="533.3333333333334" y="79.0">
   22    -1 			<title>5</title>
   23    -1 		</rect>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<g fill="#e41a1c" role="row" stroke="white">
   -1    17 			<rect height="240.0" role="cell" width="53.333333333333336" x="53.333333333333336" y="239.0">
   -1    18 				<title>3</title>
   -1    19 			</rect>
   -1    20 			<rect height="320.0" role="cell" width="53.333333333333336" x="213.33333333333334" y="159.0">
   -1    21 				<title>4</title>
   -1    22 			</rect>
   -1    23 			<rect height="320.0" role="cell" width="53.333333333333336" x="373.33333333333337" y="159.0">
   -1    24 				<title>4</title>
   -1    25 			</rect>
   -1    26 			<rect height="400.0" role="cell" width="53.333333333333336" x="533.3333333333334" y="79.0">
   -1    27 				<title>5</title>
   -1    28 			</rect>
   -1    29 		</g>
   24    30 	</g>
   25    31 </svg>

diff --git a/tests/single_LineRenderer.svg b/tests/single_LineRenderer.svg

@@ -1,26 +1,32 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<path d="M 80.0,240.0 L 240.0,160.0 400.0,160.0 560.0,80.0" fill="none" stroke="#e41a1c" />
   12    -1 	<g fill="#e41a1c" stroke="white">
   13    -1 		<circle cx="80.0" cy="240.0" r="3">
   14    -1 			<title>3</title>
   15    -1 		</circle>
   16    -1 		<circle cx="240.0" cy="160.0" r="3">
   17    -1 			<title>4</title>
   18    -1 		</circle>
   19    -1 		<circle cx="400.0" cy="160.0" r="3">
   20    -1 			<title>4</title>
   21    -1 		</circle>
   22    -1 		<circle cx="560.0" cy="80.0" r="3">
   23    -1 			<title>5</title>
   24    -1 		</circle>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<path d="M 80.0,240.0 L 240.0,160.0 400.0,160.0 560.0,80.0" fill="none" stroke="#e41a1c" />
   -1    17 		<g fill="#e41a1c" role="row" stroke="white">
   -1    18 			<circle cx="80.0" cy="240.0" r="3" role="cell">
   -1    19 				<title>3</title>
   -1    20 			</circle>
   -1    21 			<circle cx="240.0" cy="160.0" r="3" role="cell">
   -1    22 				<title>4</title>
   -1    23 			</circle>
   -1    24 			<circle cx="400.0" cy="160.0" r="3" role="cell">
   -1    25 				<title>4</title>
   -1    26 			</circle>
   -1    27 			<circle cx="560.0" cy="80.0" r="3" role="cell">
   -1    28 				<title>5</title>
   -1    29 			</circle>
   -1    30 		</g>
   25    31 	</g>
   26    32 </svg>

diff --git a/tests/single_StackedAreaRenderer.svg b/tests/single_StackedAreaRenderer.svg

@@ -1,26 +1,32 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<path d="M 80.0,239.0 L 240.0,159.0 400.0,159.0 560.0,79.0 560.0,479 400.0,479 240.0,479 80.0,479" fill="#e41a1c" stroke="white" />
   12    -1 	<g fill="#e41a1c" stroke="white">
   13    -1 		<circle cx="80.0" cy="239.0" r="3">
   14    -1 			<title>3</title>
   15    -1 		</circle>
   16    -1 		<circle cx="240.0" cy="159.0" r="3">
   17    -1 			<title>4</title>
   18    -1 		</circle>
   19    -1 		<circle cx="400.0" cy="159.0" r="3">
   20    -1 			<title>4</title>
   21    -1 		</circle>
   22    -1 		<circle cx="560.0" cy="79.0" r="3">
   23    -1 			<title>5</title>
   24    -1 		</circle>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<path d="M 80.0,239.0 L 240.0,159.0 400.0,159.0 560.0,79.0 560.0,479 400.0,479 240.0,479 80.0,479" fill="#e41a1c" stroke="white" />
   -1    17 		<g fill="#e41a1c" role="row" stroke="white">
   -1    18 			<circle cx="80.0" cy="239.0" r="3" role="cell">
   -1    19 				<title>3</title>
   -1    20 			</circle>
   -1    21 			<circle cx="240.0" cy="159.0" r="3" role="cell">
   -1    22 				<title>4</title>
   -1    23 			</circle>
   -1    24 			<circle cx="400.0" cy="159.0" r="3" role="cell">
   -1    25 				<title>4</title>
   -1    26 			</circle>
   -1    27 			<circle cx="560.0" cy="79.0" r="3" role="cell">
   -1    28 				<title>5</title>
   -1    29 			</circle>
   -1    30 		</g>
   25    31 	</g>
   26    32 </svg>

diff --git a/tests/single_StackedColumnRenderer.svg b/tests/single_StackedColumnRenderer.svg

@@ -1,25 +1,31 @@
    1     1 <svg viewBox="-55 -25 700 530" xmlns="http://www.w3.org/2000/svg">
    2    -1 	<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
    3    -1 	<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
    4    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
    5    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
    6    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
    7    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="80.0" y="490.0">Apples</text>
    8    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
    9    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   10    -1 	<text dominant-baseline="middle" fill="#333" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   11    -1 	<g fill="#e41a1c" stroke="white">
   12    -1 		<rect height="240.0" width="53.333333333333336" x="53.33333333333333" y="239.0">
   13    -1 			<title>3</title>
   14    -1 		</rect>
   15    -1 		<rect height="320.0" width="53.333333333333336" x="213.33333333333334" y="159.0">
   16    -1 			<title>4</title>
   17    -1 		</rect>
   18    -1 		<rect height="320.0" width="53.333333333333336" x="373.3333333333333" y="159.0">
   19    -1 			<title>4</title>
   20    -1 		</rect>
   21    -1 		<rect height="400.0" width="53.333333333333336" x="533.3333333333334" y="79.0">
   22    -1 			<title>5</title>
   23    -1 		</rect>
   -1     2 	<g role="table">
   -1     3 		<line stroke="#333" x1="0" x2="0" y1="0" y2="480" />
   -1     4 		<line stroke="#333" x1="0" x2="640" y1="480" y2="480" />
   -1     5 		<g aria-hidden="true">
   -1     6 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="480">0</text>
   -1     7 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="240.0">3</text>
   -1     8 			<text dominant-baseline="middle" fill="#333" text-anchor="end" x="-4" y="0">6</text>
   -1     9 		</g>
   -1    10 		<g role="row">
   -1    11 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="80.0" y="490.0">Apples</text>
   -1    12 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="240.0" y="490.0">Oranges</text>
   -1    13 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="400.0" y="490.0">Pears</text>
   -1    14 			<text dominant-baseline="middle" fill="#333" role="columnheader" text-anchor="middle" x="560.0" y="490.0">Bananas</text>
   -1    15 		</g>
   -1    16 		<g fill="#e41a1c" role="row" stroke="white">
   -1    17 			<rect height="240.0" role="cell" width="53.333333333333336" x="53.33333333333333" y="239.0">
   -1    18 				<title>3</title>
   -1    19 			</rect>
   -1    20 			<rect height="320.0" role="cell" width="53.333333333333336" x="213.33333333333334" y="159.0">
   -1    21 				<title>4</title>
   -1    22 			</rect>
   -1    23 			<rect height="320.0" role="cell" width="53.333333333333336" x="373.3333333333333" y="159.0">
   -1    24 				<title>4</title>
   -1    25 			</rect>
   -1    26 			<rect height="400.0" role="cell" width="53.333333333333336" x="533.3333333333334" y="79.0">
   -1    27 				<title>5</title>
   -1    28 			</rect>
   -1    29 		</g>
   24    30 	</g>
   25    31 </svg>