diff --git a/src/axis.js b/src/axis.js index 71167e3caa..1682c8d70e 100644 --- a/src/axis.js +++ b/src/axis.js @@ -41,7 +41,6 @@ export class AxisX { render( index, {[this.name]: x, fy}, - channels, { width, height, @@ -49,6 +48,7 @@ export class AxisX { marginRight, marginBottom, marginLeft, + offsetLeft = 0, facetMarginTop, facetMarginBottom, labelMarginLeft = 0, @@ -71,7 +71,7 @@ export class AxisX { const ty = offsetSign * offset + (axis === "top" ? marginTop : height - marginBottom); return create("svg:g") .call(applyAria, this) - .attr("transform", `translate(0,${ty})`) + .attr("transform", `translate(${offsetLeft},${ty})`) .call(createAxis(axis === "top" ? axisTop : axisBottom, x, this)) .call(maybeTickRotate, tickRotate) .attr("font-size", null) @@ -134,7 +134,6 @@ export class AxisY { render( index, {[this.name]: y, fx}, - channels, { width, height, @@ -142,6 +141,7 @@ export class AxisY { marginRight, marginBottom, marginLeft, + offsetTop = 0, facetMarginLeft, facetMarginRight } @@ -162,7 +162,7 @@ export class AxisY { const tx = offsetSign * offset + (axis === "right" ? width - marginRight : marginLeft); return create("svg:g") .call(applyAria, this) - .attr("transform", `translate(${tx},0)`) + .attr("transform", `translate(${tx},${offsetTop})`) .call(createAxis(axis === "right" ? axisRight : axisLeft, y, this)) .call(maybeTickRotate, tickRotate) .attr("font-size", null) diff --git a/src/legends/ramp.js b/src/legends/ramp.js index 510a65831e..270a6092a3 100644 --- a/src/legends/ramp.js +++ b/src/legends/ramp.js @@ -105,9 +105,10 @@ export function legendRamp(color, { x = applyRange(scaleLinear().domain([-1, range.length - 1]), [marginLeft, width - marginRight]); svg.append("g") - .selectAll("rect") + .selectAll() .data(range) - .join("rect") + .enter() + .append("rect") .attr("x", (d, i) => x(i - 1)) .attr("y", marginTop) .attr("width", (d, i) => x(i) - x(i - 1)) @@ -123,9 +124,10 @@ export function legendRamp(color, { x = applyRange(scaleBand().domain(domain), [marginLeft, width - marginRight]); svg.append("g") - .selectAll("rect") + .selectAll() .data(domain) - .join("rect") + .enter() + .append("rect") .attr("x", x) .attr("y", marginTop) .attr("width", Math.max(0, x.bandwidth() - 1)) diff --git a/src/legends/swatches.js b/src/legends/swatches.js index 19f8b57424..fc89422fa1 100644 --- a/src/legends/swatches.js +++ b/src/legends/swatches.js @@ -117,7 +117,8 @@ function legendItems(scale, { .style("columns", columns) .selectAll() .data(scale.domain) - .join("div") + .enter() + .append("div") .attr("class", `${className}-swatch`) .call(swatch, scale) .call(item => item.append("div") @@ -142,7 +143,8 @@ function legendItems(scale, { swatches .selectAll() .data(scale.domain) - .join("span") + .enter() + .append("span") .attr("class", `${className}-swatch`) .call(swatch, scale) .append(function() { diff --git a/src/marks/area.js b/src/marks/area.js index cf0a5e4918..7db192b86c 100644 --- a/src/marks/area.js +++ b/src/marks/area.js @@ -8,7 +8,6 @@ import {maybeIdentityX, maybeIdentityY} from "../transforms/identity.js"; import {maybeStackX, maybeStackY} from "../transforms/stack.js"; const defaults = { - filter: null, ariaLabel: "area", strokeWidth: 1, strokeLinecap: "round", @@ -34,6 +33,9 @@ export class Area extends Mark { this.z = z; this.curve = Curve(curve, tension); } + filter(index) { + return index; + } render(I, {x, y}, channels, dimensions) { const {x1: X1, y1: Y1, x2: X2 = X1, y2: Y2 = Y1} = channels; const {dx, dy} = this; @@ -42,7 +44,8 @@ export class Area extends Mark { .call(applyTransform, x, y, dx, dy) .call(g => g.selectAll() .data(groupIndex(I, [X1, Y1, X2, Y2], this, channels)) - .join("path") + .enter() + .append("path") .call(applyDirectStyles, this) .call(applyGroupedChannelStyles, this, channels) .attr("d", shapeArea() diff --git a/src/marks/arrow.js b/src/marks/arrow.js index 4aba08d368..7b56f1ccbc 100644 --- a/src/marks/arrow.js +++ b/src/marks/arrow.js @@ -69,7 +69,8 @@ export class Arrow extends Mark { .call(applyTransform, x, y, offset + dx, offset + dy) .call(g => g.selectAll() .data(index) - .join("path") + .enter() + .append("path") .call(applyDirectStyles, this) .attr("d", i => { // The start ⟨x1,y1⟩ and end ⟨x2,y2⟩ points may be inset, and the diff --git a/src/marks/bar.js b/src/marks/bar.js index 0676c79809..ea3c2f343c 100644 --- a/src/marks/bar.js +++ b/src/marks/bar.js @@ -25,7 +25,8 @@ export class AbstractBar extends Mark { .call(this._transform, scales, dx, dy) .call(g => g.selectAll() .data(index) - .join("rect") + .enter() + .append("rect") .call(applyDirectStyles, this) .attr("x", this._x(scales, channels, dimensions)) .attr("width", this._width(scales, channels, dimensions)) diff --git a/src/marks/dot.js b/src/marks/dot.js index 3d8c3b28b1..b1b06e7321 100644 --- a/src/marks/dot.js +++ b/src/marks/dot.js @@ -58,7 +58,8 @@ export class Dot extends Mark { .call(applyTransform, x, y, offset + dx, offset + dy) .call(g => g.selectAll() .data(index) - .join(circle ? "circle" : "path") + .enter() + .append(circle ? "circle" : "path") .call(applyDirectStyles, this) .call(circle ? selection => { diff --git a/src/marks/image.js b/src/marks/image.js index 9cd1cb3d3f..c9c283393c 100644 --- a/src/marks/image.js +++ b/src/marks/image.js @@ -68,7 +68,8 @@ export class Image extends Mark { .call(applyTransform, x, y, offset + dx, offset + dy) .call(g => g.selectAll() .data(index) - .join("image") + .enter() + .append("image") .call(applyDirectStyles, this) .attr("x", W && X ? i => X[i] - W[i] / 2 : W ? i => cx - W[i] / 2 : X ? i => X[i] - this.width / 2 : cx - this.width / 2) .attr("y", H && Y ? i => Y[i] - H[i] / 2 : H ? i => cy - H[i] / 2 : Y ? i => Y[i] - this.height / 2 : cy - this.height / 2) diff --git a/src/marks/line.js b/src/marks/line.js index 24dc7e4d3d..f12d7987ae 100644 --- a/src/marks/line.js +++ b/src/marks/line.js @@ -7,7 +7,6 @@ import {maybeDenseIntervalX, maybeDenseIntervalY} from "../transforms/bin.js"; import {applyGroupedMarkers, markers} from "./marker.js"; const defaults = { - filter: null, ariaLabel: "line", fill: "none", stroke: "currentColor", @@ -34,6 +33,9 @@ export class Line extends Mark { this.curve = Curve(curve, tension); markers(this, options); } + filter(index) { + return index; + } render(I, {x, y}, channels, dimensions) { const {x: X, y: Y} = channels; const {dx, dy} = this; @@ -42,7 +44,8 @@ export class Line extends Mark { .call(applyTransform, x, y, offset + dx, offset + dy) .call(g => g.selectAll() .data(groupIndex(I, [X, Y], this, channels)) - .join("path") + .enter() + .append("path") .call(applyDirectStyles, this) .call(applyGroupedChannelStyles, this, channels) .call(applyGroupedMarkers, this, channels) diff --git a/src/marks/link.js b/src/marks/link.js index 33e02ecb2c..e9646ee28c 100644 --- a/src/marks/link.js +++ b/src/marks/link.js @@ -36,7 +36,8 @@ export class Link extends Mark { .call(applyTransform, x, y, offset + dx, offset + dy) .call(g => g.selectAll() .data(index) - .join("path") + .enter() + .append("path") .call(applyDirectStyles, this) .attr("d", i => { const p = path(); diff --git a/src/marks/rect.js b/src/marks/rect.js index 926ce11503..8e74aef01e 100644 --- a/src/marks/rect.js +++ b/src/marks/rect.js @@ -53,7 +53,8 @@ export class Rect extends Mark { .call(applyTransform, x, y, dx, dy) .call(g => g.selectAll() .data(index) - .join("rect") + .enter() + .append("rect") .call(applyDirectStyles, this) .attr("x", X1 && X2 && !isCollapsed(x) ? i => Math.min(X1[i], X2[i]) + insetLeft : marginLeft + insetLeft) .attr("y", Y1 && Y2 && !isCollapsed(y) ? i => Math.min(Y1[i], Y2[i]) + insetTop : marginTop + insetTop) diff --git a/src/marks/rule.js b/src/marks/rule.js index 38ad70496c..714179cdad 100644 --- a/src/marks/rule.js +++ b/src/marks/rule.js @@ -41,9 +41,10 @@ export class RuleX extends Mark { return create("svg:g") .call(applyIndirectStyles, this, dimensions) .call(applyTransform, X && x, null, offset, 0) - .call(g => g.selectAll("line") + .call(g => g.selectAll() .data(index) - .join("line") + .enter() + .append("line") .call(applyDirectStyles, this) .attr("x1", X ? i => X[i] : (marginLeft + width - marginRight) / 2) .attr("x2", X ? i => X[i] : (marginLeft + width - marginRight) / 2) @@ -84,9 +85,10 @@ export class RuleY extends Mark { return create("svg:g") .call(applyIndirectStyles, this, dimensions) .call(applyTransform, null, Y && y, dx, offset + dy) - .call(g => g.selectAll("line") + .call(g => g.selectAll() .data(index) - .join("line") + .enter() + .append("line") .call(applyDirectStyles, this) .attr("x1", X1 && !isCollapsed(x) ? i => X1[i] + insetLeft : marginLeft + insetLeft) .attr("x2", X2 && !isCollapsed(x) ? (x.bandwidth ? i => X2[i] + x.bandwidth() - insetRight : i => X2[i] - insetRight) : width - marginRight - insetRight) diff --git a/src/marks/text.js b/src/marks/text.js index 33eb831b7f..847c22de48 100644 --- a/src/marks/text.js +++ b/src/marks/text.js @@ -68,7 +68,8 @@ export class Text extends Mark { .call(applyTransform, x, y, offset + dx, offset + dy) .call(g => g.selectAll() .data(index) - .join("text") + .enter() + .append("text") .call(applyDirectStyles, this) .call(applyMultilineText, this, T) .attr("transform", R ? (X && Y ? i => `translate(${X[i]},${Y[i]}) rotate(${R[i]})` diff --git a/src/marks/tick.js b/src/marks/tick.js index cc9b28f268..47a05fa56c 100644 --- a/src/marks/tick.js +++ b/src/marks/tick.js @@ -18,9 +18,10 @@ class AbstractTick extends Mark { return create("svg:g") .call(applyIndirectStyles, this, dimensions) .call(this._transform, scales, dx, dy) - .call(g => g.selectAll("line") + .call(g => g.selectAll() .data(index) - .join("line") + .enter() + .append("line") .call(applyDirectStyles, this) .attr("x1", this._x1(scales, channels, dimensions)) .attr("x2", this._x2(scales, channels, dimensions)) diff --git a/src/marks/vector.js b/src/marks/vector.js index 38a8a517c9..6339a5a157 100644 --- a/src/marks/vector.js +++ b/src/marks/vector.js @@ -48,7 +48,8 @@ export class Vector extends Mark { .call(applyTransform, x, y, offset + dx, offset + dy) .call(g => g.selectAll() .data(index) - .join("path") + .enter() + .append("path") .call(applyDirectStyles, this) .attr("d", i => { const l = fl(i), a = fr(i) * radians; diff --git a/src/plot.js b/src/plot.js index 754567c142..5e3dfa468c 100644 --- a/src/plot.js +++ b/src/plot.js @@ -4,7 +4,7 @@ import {Channel, channelSort} from "./channel.js"; import {defined} from "./defined.js"; import {Dimensions} from "./dimensions.js"; import {Legends, exposeLegends} from "./legends.js"; -import {arrayify, isOptions, keyword, range, first, second, where} from "./options.js"; +import {arrayify, isOptions, keyword, range, second, where} from "./options.js"; import {Scales, ScaleFunctions, autoScaleRange, applyScales, exposeScales} from "./scales.js"; import {applyInlineStyles, maybeClassName, maybeClip, styles} from "./style.js"; import {basic} from "./transforms/basic.js"; @@ -16,56 +16,85 @@ export function plot(options = {}) { // className for inline styles const className = maybeClassName(options.className); - // When faceting, wrap all marks in a faceting mark. - if (facet !== undefined) { - const {marks} = options; - const {data} = facet; - options = {...options, marks: facets(data, facet, marks)}; - } - // Flatten any nested marks. const marks = options.marks === undefined ? [] : options.marks.flat(Infinity).map(markify); - // A Map from Mark instance to an object of named channel values. - const markChannels = new Map(); - const markIndex = new Map(); + // A Map from Mark instance to its render state, including: + // index - the data index e.g. [0, 1, 2, 3, …] + // channels - an array of materialized channels e.g. [["x", {value}], …] + // faceted - a boolean indicating whether this mark is faceted + // values - an object of scaled values e.g. {x: [40, 32, …], …} + const stateByMark = new Map(); // A Map from scale name to an array of associated channels. - const scaleChannels = new Map(); + const channelsByScale = new Map(); + + // Faceting! + let facets; // array of facet definitions (e.g. [["foo", [0, 1, 3, …]], …]) + let facetIndex; // index over the facet data, e.g. [0, 1, 2, 3, …] + let facetChannels; // e.g. [["fx", {value}], ["fy", {value}]] + let facetsIndex; // nested array of facet indexes [[0, 1, 3, …], [2, 5, …], …] + let facetsExclude; // lazily-constructed opposite of facetsIndex + if (facet !== undefined) { + const {x, y} = facet; + if (x != null || y != null) { + const facetData = arrayify(facet.data); + facetChannels = []; + if (x != null) { + const fx = Channel(facetData, {value: x, scale: "fx"}); + facetChannels.push(["fx", fx]); + channelsByScale.set("fx", [fx]); + } + if (y != null) { + const fy = Channel(facetData, {value: y, scale: "fy"}); + facetChannels.push(["fy", fy]); + channelsByScale.set("fy", [fy]); + } + facetIndex = range(facetData); + facets = facetGroups(facetIndex, facetChannels); + facetsIndex = Array.from(facets, second); + } + } // Initialize the marks’ channels, indexing them by mark and scale as needed. - // Also apply any scale transforms. for (const mark of marks) { - if (markChannels.has(mark)) throw new Error("duplicate mark"); - const {index, channels} = mark.initialize(); + if (stateByMark.has(mark)) throw new Error("duplicate mark"); + const markFacets = facets === undefined ? undefined + : mark.facet === "auto" ? mark.data === facet.data ? facetsIndex : undefined + : mark.facet === "include" ? facetsIndex + : mark.facet === "exclude" ? facetsExclude || (facetsExclude = facetsIndex.map(f => Uint32Array.from(difference(facetIndex, f)))) + : undefined; + const {index, channels} = mark.initialize(markFacets, facetChannels); for (const [, channel] of channels) { const {scale} = channel; if (scale !== undefined) { - const scaled = scaleChannels.get(scale); - const {percent, transform = percent ? x => x * 100 : undefined} = options[scale] || {}; - if (transform != null) channel.value = Array.from(channel.value, transform); - if (scaled) scaled.push(channel); - else scaleChannels.set(scale, [channel]); + const channels = channelsByScale.get(scale); + if (channels !== undefined) channels.push(channel); + else channelsByScale.set(scale, [channel]); } } - markChannels.set(mark, channels); - markIndex.set(mark, index); + stateByMark.set(mark, {index, channels, faceted: markFacets !== undefined}); + } + + // Apply scale transforms, mutating channel.value. + for (const [scale, channels] of channelsByScale) { + const {percent, transform = percent ? x => x * 100 : undefined} = options[scale] || {}; + if (transform != null) for (const c of channels) c.value = Array.from(c.value, transform); } - const scaleDescriptors = Scales(scaleChannels, options); + const scaleDescriptors = Scales(channelsByScale, options); const scales = ScaleFunctions(scaleDescriptors); const axes = Axes(scaleDescriptors, options); const dimensions = Dimensions(scaleDescriptors, axes, options); autoScaleRange(scaleDescriptors, dimensions); - autoScaleLabels(scaleChannels, scaleDescriptors, axes, dimensions, options); + autoScaleLabels(channelsByScale, scaleDescriptors, axes, dimensions, options); autoAxisTicks(scaleDescriptors, axes); - // When faceting, render axes for fx and fy instead of x and y. - const x = facet !== undefined && scales.fx ? "fx" : "x"; - const y = facet !== undefined && scales.fy ? "fy" : "y"; - if (axes[x]) marks.unshift(axes[x]); - if (axes[y]) marks.unshift(axes[y]); + // Compute value objects, applying scales as needed. + for (const state of stateByMark.values()) { + state.values = applyScales(state.channels, scales); + } const {width, height} = dimensions; @@ -96,13 +125,68 @@ export function plot(options = {}) { .call(applyInlineStyles, style) .node(); - for (const mark of marks) { - const channels = markChannels.get(mark) ?? []; - const values = applyScales(channels, scales); - let index = markIndex.get(mark); - if (mark.filter != null) index = mark.filter(index, channels, values); - const node = mark.render(index, scales, values, dimensions, axes); - if (node != null) svg.appendChild(node); + // When faceting, render axes for fx and fy instead of x and y. + const {fx, fy} = scales; + const axisY = axes[facets !== undefined && fy ? "fy" : "y"]; + const axisX = axes[facets !== undefined && fx ? "fx" : "x"]; + if (axisY) svg.appendChild(axisY.render(null, scales, dimensions)); + if (axisX) svg.appendChild(axisX.render(null, scales, dimensions)); + + // Render (possibly faceted) marks. + if (facets !== undefined) { + const fyDomain = fy && fy.domain(); + const fxDomain = fx && fx.domain(); + const fyMargins = fy && {marginTop: 0, marginBottom: 0, height: fy.bandwidth()}; + const fxMargins = fx && {marginRight: 0, marginLeft: 0, width: fx.bandwidth()}; + const subdimensions = {...dimensions, ...fxMargins, ...fyMargins}; + const indexByFacet = facetMap(facetChannels); + facets.forEach(([key], i) => indexByFacet.set(key, i)); + const selection = select(svg); + if (fy && axes.y) { + const axis1 = axes.y, axis2 = nolabel(axis1); + const j = axis1.labelAnchor === "bottom" ? fyDomain.length - 1 : axis1.labelAnchor === "center" ? fyDomain.length >> 1 : 0; + selection.selectAll() + .data(fyDomain) + .enter() + .append((ky, i) => (i === j ? axis1 : axis2).render( + fx && where(fxDomain, kx => indexByFacet.has([kx, ky])), + scales, + {...dimensions, ...fyMargins, offsetTop: fy(ky)} + )); + } + if (fx && axes.x) { + const axis1 = axes.x, axis2 = nolabel(axis1); + const j = axis1.labelAnchor === "right" ? fxDomain.length - 1 : axis1.labelAnchor === "center" ? fxDomain.length >> 1 : 0; + const {marginLeft, marginRight} = dimensions; + selection.selectAll() + .data(fxDomain) + .enter() + .append((kx, i) => (i === j ? axis1 : axis2).render( + fy && where(fyDomain, ky => indexByFacet.has([kx, ky])), + scales, + {...dimensions, ...fxMargins, labelMarginLeft: marginLeft, labelMarginRight: marginRight, offsetLeft: fx(kx)} + )); + } + selection.selectAll() + .data(facetKeys(scales).filter(indexByFacet.has, indexByFacet)) + .enter() + .append("g") + .attr("aria-label", "facet") + .attr("transform", facetTranslate(fx, fy)) + .each(function(key) { + const j = indexByFacet.get(key); + for (const [mark, {channels, values, index, faceted}] of stateByMark) { + const renderIndex = mark.filter(faceted ? index[j] : index, channels, values); + const node = mark.render(renderIndex, scales, values, subdimensions); + if (node != null) this.appendChild(node); + } + }); + } else { + for (const [mark, {channels, values, index}] of stateByMark) { + const renderIndex = mark.filter(index, channels, values); + const node = mark.render(renderIndex, scales, values, dimensions); + if (node != null) svg.appendChild(node); + } } // Wrap the plot in a figure with a caption, if desired. @@ -138,16 +222,6 @@ export function plot(options = {}) { return figure; } -function defaultFilter(index, channels, values) { - for (const [name, {filter = defined}] of channels) { - if (name !== undefined && filter !== null) { - const value = values[name]; - index = index.filter(i => filter(value[i])); - } - } - return index; -} - export class Mark { constructor(data, channels = [], options = {}, defaults) { const {facet = "auto", sort, dx, dy, clip} = options; @@ -156,7 +230,6 @@ export class Mark { this.sort = isOptions(sort) ? sort : null; this.facet = facet == null || facet === false ? null : keyword(facet === true ? "include" : facet, "facet", ["auto", "include", "exclude"]); const {transform} = basic(options); - this.filter = defaults?.filter === undefined ? defaultFilter : defaults.filter; this.transform = transform; if (defaults !== undefined) channels = styles(this, options, channels, defaults); this.channels = channels.filter(channel => { @@ -165,26 +238,25 @@ export class Mark { if (optional) return false; throw new Error(`missing channel value: ${name}`); } - if (name !== undefined) { - const key = `${name}`; - if (key === "__proto__") throw new Error("illegal channel name"); - if (names.has(key)) throw new Error(`duplicate channel: ${key}`); - names.add(key); - } + if (name == null) throw new Error("missing channel name"); + const key = `${name}`; + if (key === "__proto__") throw new Error("illegal channel name"); + if (names.has(key)) throw new Error(`duplicate channel: ${key}`); + names.add(key); return true; }); this.dx = +dx || 0; this.dy = +dy || 0; this.clip = maybeClip(clip); } - initialize(facets, facetChannels) { + initialize(facetIndex, facetChannels) { let data = arrayify(this.data); - let index = facets === undefined && data != null ? range(data) : facets; + let index = facetIndex === undefined && data != null ? range(data) : facetIndex; if (data !== undefined && this.transform !== undefined) { - if (facets === undefined) index = index.length ? [index] : []; + if (facetIndex === undefined) index = index.length ? [index] : []; ({facets: index, data} = this.transform(data, index)); data = arrayify(data); - if (facets === undefined && index.length) ([index] = index); + if (facetIndex === undefined && index.length) ([index] = index); } const channels = this.channels.map(channel => { const {name} = channel; @@ -193,6 +265,15 @@ export class Mark { if (this.sort != null) channelSort(channels, facetChannels, data, this.sort); return {index, channels}; } + filter(index, channels, values) { + for (const [name, {filter = defined}] of channels) { + if (name !== undefined && filter !== null) { + const value = values[name]; + index = index.filter(i => filter(value[i])); + } + } + return index; + } plot({marks = [], ...options} = {}) { return plot({...options, marks: [...marks, this]}); } @@ -217,132 +298,6 @@ class Render extends Mark { render() {} } -function facets(data, {x, y, ...options}, marks) { - return x === undefined && y === undefined - ? marks // if no facets are specified, ignore! - : [new Facet(data, {x, y, ...options}, marks)]; -} - -class Facet extends Mark { - constructor(data, {x, y, ...options} = {}, marks = []) { - if (data == null) throw new Error("missing facet data"); - super( - data, - [ - {name: "fx", value: x, scale: "fx", optional: true}, - {name: "fy", value: y, scale: "fy", optional: true} - ], - options - ); - this.marks = marks.flat(Infinity).map(markify); - // The following fields are set by initialize: - this.marksChannels = undefined; // array of mark channels - this.marksIndexByFacet = undefined; // map from facet key to array of mark indexes - } - initialize() { - const {index, channels} = super.initialize(); - const facets = index === undefined ? [] : facetGroups(index, channels); - const facetsKeys = Array.from(facets, first); - const facetsIndex = Array.from(facets, second); - const subchannels = []; - const marksChannels = this.marksChannels = []; - const marksIndexByFacet = this.marksIndexByFacet = facetMap(channels); - for (const facetKey of facetsKeys) { - marksIndexByFacet.set(facetKey, new Array(this.marks.length)); - } - let facetsExclude; - for (let i = 0; i < this.marks.length; ++i) { - const mark = this.marks[i]; - const {facet} = mark; - const markFacets = facet === "auto" ? mark.data === this.data ? facetsIndex : undefined - : facet === "include" ? facetsIndex - : facet === "exclude" ? facetsExclude || (facetsExclude = facetsIndex.map(f => Uint32Array.from(difference(index, f)))) - : undefined; - const {index: I, channels: markChannels} = mark.initialize(markFacets, channels); - // If an index is returned by mark.initialize, its structure depends on - // whether or not faceting has been applied: it is a flat index ([0, 1, 2, - // …]) when not faceted, and a nested index ([[0, 1, …], [2, 3, …], …]) - // when faceted. - if (I !== undefined) { - if (markFacets) { - for (let j = 0; j < facetsKeys.length; ++j) { - marksIndexByFacet.get(facetsKeys[j])[i] = I[j]; - } - } else { - for (let j = 0; j < facetsKeys.length; ++j) { - marksIndexByFacet.get(facetsKeys[j])[i] = I; - } - } - } - for (const [, channel] of markChannels) { - subchannels.push([, channel]); - } - marksChannels.push(markChannels); - } - return {index, channels: [...channels, ...subchannels]}; - } - render(I, scales, _, dimensions, axes) { - const {marks, marksChannels, marksIndexByFacet} = this; - const {fx, fy} = scales; - const fyDomain = fy && fy.domain(); - const fxDomain = fx && fx.domain(); - const fyMargins = fy && {marginTop: 0, marginBottom: 0, height: fy.bandwidth()}; - const fxMargins = fx && {marginRight: 0, marginLeft: 0, width: fx.bandwidth()}; - const subdimensions = {...dimensions, ...fxMargins, ...fyMargins}; - const marksValues = marksChannels.map(channels => applyScales(channels, scales)); - return create("svg:g") - .call(g => { - if (fy && axes.y) { - const axis1 = axes.y, axis2 = nolabel(axis1); - const j = axis1.labelAnchor === "bottom" ? fyDomain.length - 1 : axis1.labelAnchor === "center" ? fyDomain.length >> 1 : 0; - const fyDimensions = {...dimensions, ...fyMargins}; - g.selectAll() - .data(fyDomain) - .join("g") - .attr("transform", ky => `translate(0,${fy(ky)})`) - .append((ky, i) => (i === j ? axis1 : axis2).render( - fx && where(fxDomain, kx => marksIndexByFacet.has([kx, ky])), - scales, - null, - fyDimensions - )); - } - if (fx && axes.x) { - const axis1 = axes.x, axis2 = nolabel(axis1); - const j = axis1.labelAnchor === "right" ? fxDomain.length - 1 : axis1.labelAnchor === "center" ? fxDomain.length >> 1 : 0; - const {marginLeft, marginRight} = dimensions; - const fxDimensions = {...dimensions, ...fxMargins, labelMarginLeft: marginLeft, labelMarginRight: marginRight}; - g.selectAll() - .data(fxDomain) - .join("g") - .attr("transform", kx => `translate(${fx(kx)},0)`) - .append((kx, i) => (i === j ? axis1 : axis2).render( - fy && where(fyDomain, ky => marksIndexByFacet.has([kx, ky])), - scales, - null, - fxDimensions - )); - } - }) - .call(g => g.selectAll() - .data(facetKeys(scales).filter(marksIndexByFacet.has, marksIndexByFacet)) - .join("g") - .attr("transform", facetTranslate(fx, fy)) - .each(function(key) { - const marksFacetIndex = marksIndexByFacet.get(key); - for (let i = 0; i < marks.length; ++i) { - const mark = marks[i]; - const values = marksValues[i]; - let index = marksFacetIndex[i]; - if (mark.filter != null) index = mark.filter(index, marksChannels[i], values); - const node = mark.render(index, scales, values, subdimensions); - if (node != null) this.appendChild(node); - } - })) - .node(); - } -} - // Derives a copy of the specified axis with the label disabled. function nolabel(axis) { return axis === undefined || axis.label === undefined diff --git a/test/output/anscombeQuartet.svg b/test/output/anscombeQuartet.svg index 40e69f9391..72fce4638e 100644 --- a/test/output/anscombeQuartet.svg +++ b/test/output/anscombeQuartet.svg @@ -49,134 +49,124 @@ 4 series - - - - - - 5 - - - - 10 - - - - 15 - - - - - - - - 5 - - - - 10 - - - - 15 - - - - - - - - 5 - - - - 10 - - - - 15 - - - - - - - - 5 - - - - 10 - - - - 15 - x → - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + 5 + + + + 10 + + + + 15 + + + + + + 5 + + + + 10 + + + + 15 + + + + + + 5 + + + + 10 + + + + 15 + + + + + + 5 + + + + 10 + + + + 15 + x → + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/athletesSample.svg b/test/output/athletesSample.svg index 71824ce710..585d9b84c8 100644 --- a/test/output/athletesSample.svg +++ b/test/output/athletesSample.svg @@ -129,522 +129,520 @@ weight → - - - - - Aaron Younger - - - Bjorn Hornikel - - - Dusan Mandic - - - Ilia Druzhinin - - - Kosuke Hagino - - - Miguel Ortiz Canavate Ozeki - - - Ryan Pini - - - Yaaqoub Alsaadi - - - Abbey Weitzeil - - - Bronte Barratt - - - Evangelia Papazoglou - - - Jing Zhang - - - Lorena Molinos - - - Natalia Ishchenko - - - Shiwen Ye - - - Yue Cao - - - - - - - Adrian Andres Puentes Perez - - - Adriana Martin - - - - - - - A Jesus Garcia - - - Anthony Zambrano - - - Carl Dohmann - - - Dmitry Kroyter - - - Gil Roberts - - - James Ellington - - - Kapririel Kitson - - - Lukas Melich - - - Miguel Francis - - - Paulo Amotun - - - Ronnie Ash - - - Tarik Langat Akdag - - - Yordan L. O'Farrill - - - Aauri Lorena Bokesa - - - Anna Kornuta - - - Chrisann Gordon - - - Eliane Saholinirina - - - Hanna Knyazyeva-Minenko - - - Julia Takacs - - - Marisol Romero - - - Natthaya Thanaronnawat - - - Rosemary Quispe - - - Yasemin Can - - - - - - - Adam Cwalina - - - Akane Yamaguchi - - - - - - - Adas Juskevicius - - - Nicolas Laprovittola - - - Adriana Moises - - - Oumoul Thiam - - - - - - - - - - Adam van Koeverden - - - Jordan Wood - - - Stephen Bird - - - Afef Ben Ismail - - - Ursa Kragelj - - - - - - - Aaron Gate - - - Georg Preidler - - - Michael Hepburn - - - Toms Skujins - - - Ahreum Na - - - Katrin Garfoot - - - - - - - Abdelkebir Ouaddar - - - Pedro Tavares de Almeida - - - Adelinde Cornelissen - - - - - - - A Lam Shin - - - Seona Hwang - - - Richard Kruse - - - - - - - Abbubaker Mobara - - - Filipe Baravilala - - - Mathias Hebo Rasmussen - - - Abby Erceg - - - Isabel Kerschowski - - - Rebecca Quinn - - - - - - - Adilson da Silva - - - Aditi Ashok - - - - - - - Aiko Sugihara - - - Laura Zeng - - - Yeon Jae Son - - - Alexander Naddour - - - Se Gwang Ri - - - - - - - Abdulrazzaq Murad - - - Makrem Missaoui - - - Ailly Luciano - - - Louise Sand - - - - - - - Adam Dixon - - - Juan Gilardi - - - Thomas Briels - - - Agustina Albertarrio - - - Kathleen Bam - - - Victoria Zuloaga - - - - - - - Abderrahmane Benamadi - - - Simon Yacoub - - - Abigel Joo - - - Miku Tashiro - - - - - - - Adam Marosi - - - Alice Sotero - - - - - - - Abdelkhalek Elbanna - - - Georgi Bozhilov - - - Matt Langridge - - - Thibault Colard - - - Adelina Bogus - - - Katherine Copeland - - - Weiwei Zhu - - - - - - - Abbie Brown - - - Marina Bravo - - - Akira Ioane - - - Nicolas Bruzzone - - - - - - - Afrodite Zegers - - - Ahmed Ragab - - - Juozas Bernotas - - - Tonci Stipanovic - - - - - - - Abdel Aziz Mehelba - - - Jitu Rai - - - Song Guk Kim - - - Adela Bruns - - - Natallia Kalnysh - - - - - - - Adam Pattantyus - - - Adriana Diaz - - - - - - - Aaron Cook - - - Ainur Yesbergenova - - - - - - - Agnieszka Radwanska - - - Albert Ramos-Vinolas - - - Vasek Pospisil - - - - - - - Aaron Royle - - - Agnieszka Jerzyk - - - - - - - Aaron Russell - - - Kostyantyn Bakun - - - Abdoulkarim Fawziya - - - Kotoki Zayasu - - - - - - - Adrian Edward Zielinski - - - Myeongmok Han - - - Alejandra Garza Garza - - - Yuderqui Maridalia Contreras - - - - - - - Abbos Rakhmonov - - - Ibragim Labazanov - - - Soslan Ramonov - - - Adela Hanzlickova - - - Valeriia Koblova Zholobova - - + + + + Aaron Younger + + + Bjorn Hornikel + + + Dusan Mandic + + + Ilia Druzhinin + + + Kosuke Hagino + + + Miguel Ortiz Canavate Ozeki + + + Ryan Pini + + + Yaaqoub Alsaadi + + + Abbey Weitzeil + + + Bronte Barratt + + + Evangelia Papazoglou + + + Jing Zhang + + + Lorena Molinos + + + Natalia Ishchenko + + + Shiwen Ye + + + Yue Cao + + + + + + + Adrian Andres Puentes Perez + + + Adriana Martin + + + + + + + A Jesus Garcia + + + Anthony Zambrano + + + Carl Dohmann + + + Dmitry Kroyter + + + Gil Roberts + + + James Ellington + + + Kapririel Kitson + + + Lukas Melich + + + Miguel Francis + + + Paulo Amotun + + + Ronnie Ash + + + Tarik Langat Akdag + + + Yordan L. O'Farrill + + + Aauri Lorena Bokesa + + + Anna Kornuta + + + Chrisann Gordon + + + Eliane Saholinirina + + + Hanna Knyazyeva-Minenko + + + Julia Takacs + + + Marisol Romero + + + Natthaya Thanaronnawat + + + Rosemary Quispe + + + Yasemin Can + + + + + + + Adam Cwalina + + + Akane Yamaguchi + + + + + + + Adas Juskevicius + + + Nicolas Laprovittola + + + Adriana Moises + + + Oumoul Thiam + + + + + + + + + + Adam van Koeverden + + + Jordan Wood + + + Stephen Bird + + + Afef Ben Ismail + + + Ursa Kragelj + + + + + + + Aaron Gate + + + Georg Preidler + + + Michael Hepburn + + + Toms Skujins + + + Ahreum Na + + + Katrin Garfoot + + + + + + + Abdelkebir Ouaddar + + + Pedro Tavares de Almeida + + + Adelinde Cornelissen + + + + + + + A Lam Shin + + + Seona Hwang + + + Richard Kruse + + + + + + + Abbubaker Mobara + + + Filipe Baravilala + + + Mathias Hebo Rasmussen + + + Abby Erceg + + + Isabel Kerschowski + + + Rebecca Quinn + + + + + + + Adilson da Silva + + + Aditi Ashok + + + + + + + Aiko Sugihara + + + Laura Zeng + + + Yeon Jae Son + + + Alexander Naddour + + + Se Gwang Ri + + + + + + + Abdulrazzaq Murad + + + Makrem Missaoui + + + Ailly Luciano + + + Louise Sand + + + + + + + Adam Dixon + + + Juan Gilardi + + + Thomas Briels + + + Agustina Albertarrio + + + Kathleen Bam + + + Victoria Zuloaga + + + + + + + Abderrahmane Benamadi + + + Simon Yacoub + + + Abigel Joo + + + Miku Tashiro + + + + + + + Adam Marosi + + + Alice Sotero + + + + + + + Abdelkhalek Elbanna + + + Georgi Bozhilov + + + Matt Langridge + + + Thibault Colard + + + Adelina Bogus + + + Katherine Copeland + + + Weiwei Zhu + + + + + + + Abbie Brown + + + Marina Bravo + + + Akira Ioane + + + Nicolas Bruzzone + + + + + + + Afrodite Zegers + + + Ahmed Ragab + + + Juozas Bernotas + + + Tonci Stipanovic + + + + + + + Abdel Aziz Mehelba + + + Jitu Rai + + + Song Guk Kim + + + Adela Bruns + + + Natallia Kalnysh + + + + + + + Adam Pattantyus + + + Adriana Diaz + + + + + + + Aaron Cook + + + Ainur Yesbergenova + + + + + + + Agnieszka Radwanska + + + Albert Ramos-Vinolas + + + Vasek Pospisil + + + + + + + Aaron Royle + + + Agnieszka Jerzyk + + + + + + + Aaron Russell + + + Kostyantyn Bakun + + + Abdoulkarim Fawziya + + + Kotoki Zayasu + + + + + + + Adrian Edward Zielinski + + + Myeongmok Han + + + Alejandra Garza Garza + + + Yuderqui Maridalia Contreras + + + + + + + Abbos Rakhmonov + + + Ibragim Labazanov + + + Soslan Ramonov + + + Adela Hanzlickova + + + Valeriia Koblova Zholobova + \ No newline at end of file diff --git a/test/output/athletesSportWeight.svg b/test/output/athletesSportWeight.svg index 5005a8aaf6..948e7cd057 100644 --- a/test/output/athletesSportWeight.svg +++ b/test/output/athletesSportWeight.svg @@ -130,950 +130,948 @@ weight → - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/ballotStatusRace.svg b/test/output/ballotStatusRace.svg index 9e75bfe970..fae40f1d94 100644 --- a/test/output/ballotStatusRace.svg +++ b/test/output/ballotStatusRace.svg @@ -57,131 +57,129 @@ Frequency (%) → - - - - - 79.0% - - - 0.4% - - - 20.5% - - - - - - - - - - 78.3% - - - 0.6% - - - 21.1% - - - - - - - - - - 77.9% - - - 21.5% - - - 0.6% - - - - - - - - - - 74.1% - - - 0.8% - - - 25.1% - - - - - - - - - - 73.9% - - - 25.3% - - - 0.8% - - - - - - - - - - 25.5% - - - 72.2% - - - 2.3% - - - - - - - - - - 67.4% - - - 31.5% - - - 1.1% - - - - - - - - - - 41.7% - - - 58.3% - - - - - + + + + 79.0% + + + 0.4% + + + 20.5% + + + + + + + + + + 78.3% + + + 0.6% + + + 21.1% + + + + + + + + + + 77.9% + + + 21.5% + + + 0.6% + + + + + + + + + + 74.1% + + + 0.8% + + + 25.1% + + + + + + + + + + 73.9% + + + 25.3% + + + 0.8% + + + + + + + + + + 25.5% + + + 72.2% + + + 2.3% + + + + + + + + + + 67.4% + + + 31.5% + + + 1.1% + + + + + + + + + + 41.7% + + + 58.3% + + + + \ No newline at end of file diff --git a/test/output/beckerBarley.svg b/test/output/beckerBarley.svg index a131551c86..ebcd8ae1a7 100644 --- a/test/output/beckerBarley.svg +++ b/test/output/beckerBarley.svg @@ -63,420 +63,406 @@ yield → - - - - - - Trebi - - - - Wisconsin No. 38 - - - - No. 457 - - - - Glabron - - - - Peatland - - - - Velvet - - - - No. 475 - - - - Manchuria - - - - No. 462 - - - - Svansota - - - - - - - - Trebi - - - - Wisconsin No. 38 - - - - No. 457 - - - - Glabron - - - - Peatland - - - - Velvet - - - - No. 475 - - - - Manchuria - - - - No. 462 - - - - Svansota - - - - - - - - Trebi - - - - Wisconsin No. 38 - - - - No. 457 - - - - Glabron - - - - Peatland - - - - Velvet - - - - No. 475 - - - - Manchuria - - - - No. 462 - - - - Svansota - - - - - - - - Trebi - - - - Wisconsin No. 38 - - - - No. 457 - - - - Glabron - - - - Peatland - - - - Velvet - - - - No. 475 - - - - Manchuria - - - - No. 462 - - - - Svansota - variety - - - - - - - Trebi - - - - Wisconsin No. 38 - - - - No. 457 - - - - Glabron - - - - Peatland - - - - Velvet - - - - No. 475 - - - - Manchuria - - - - No. 462 - - - - Svansota - - - - - - - - Trebi - - - - Wisconsin No. 38 - - - - No. 457 - - - - Glabron - - - - Peatland - - - - Velvet - - - - No. 475 - - - - Manchuria - - - - No. 462 - - - - Svansota - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Trebi + + + + Wisconsin No. 38 + + + + No. 457 + + + + Glabron + + + + Peatland + + + + Velvet + + + + No. 475 + + + + Manchuria + + + + No. 462 + + + + Svansota + + + + + + Trebi + + + + Wisconsin No. 38 + + + + No. 457 + + + + Glabron + + + + Peatland + + + + Velvet + + + + No. 475 + + + + Manchuria + + + + No. 462 + + + + Svansota + + + + + + Trebi + + + + Wisconsin No. 38 + + + + No. 457 + + + + Glabron + + + + Peatland + + + + Velvet + + + + No. 475 + + + + Manchuria + + + + No. 462 + + + + Svansota + + + + + + Trebi + + + + Wisconsin No. 38 + + + + No. 457 + + + + Glabron + + + + Peatland + + + + Velvet + + + + No. 475 + + + + Manchuria + + + + No. 462 + + + + Svansota + variety + + + + + Trebi + + + + Wisconsin No. 38 + + + + No. 457 + + + + Glabron + + + + Peatland + + + + Velvet + + + + No. 475 + + + + Manchuria + + + + No. 462 + + + + Svansota + + + + + + Trebi + + + + Wisconsin No. 38 + + + + No. 457 + + + + Glabron + + + + Peatland + + + + Velvet + + + + No. 475 + + + + Manchuria + + + + No. 462 + + + + Svansota + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/caltrainDirection.svg b/test/output/caltrainDirection.svg index e23db48b08..ad5130abf2 100644 --- a/test/output/caltrainDirection.svg +++ b/test/output/caltrainDirection.svg @@ -47,96 +47,94 @@ 12 AM - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/footballCoverage.svg b/test/output/footballCoverage.svg index ceccf3c420..05f2a4ee5f 100644 --- a/test/output/footballCoverage.svg +++ b/test/output/footballCoverage.svg @@ -82,265 +82,263 @@ T2 coverage - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/googleTrendsRidgeline.svg b/test/output/googleTrendsRidgeline.svg index 60b0ece5e0..b52586bdef 100644 --- a/test/output/googleTrendsRidgeline.svg +++ b/test/output/googleTrendsRidgeline.svg @@ -245,710 +245,708 @@ December - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/industryUnemploymentTrack.svg b/test/output/industryUnemploymentTrack.svg index b39d3d98b8..476a55fec0 100644 --- a/test/output/industryUnemploymentTrack.svg +++ b/test/output/industryUnemploymentTrack.svg @@ -77,5326 +77,5324 @@ 2010 - - - - - 745 - - - 812 - - - 669 - - - 447 - - - 397 - - - 389 - - - 384 - - - 446 - - - 386 - - - 417 - - - 482 - - - 580 - - - 836 - - - 826 - - - 683 - - - 596 - - - 478 - - - 443 - - - 447 - - - 522 - - - 489 - - - 535 - - - 670 - - - 785 - - - 1,211 - - - 1,060 - - - 1,009 - - - 855 - - - 626 - - - 593 - - - 594 - - - 654 - - - 615 - - - 680 - - - 758 - - - 941 - - - 1,196 - - - 1,173 - - - 987 - - - 772 - - - 715 - - - 710 - - - 677 - - - 650 - - - 681 - - - 651 - - - 690 - - - 813 - - - 994 - - - 1,039 - - - 1,011 - - - 849 - - - 665 - - - 668 - - - 610 - - - 563 - - - 629 - - - 635 - - - 695 - - - 870 - - - 1,079 - - - 1,150 - - - 961 - - - 693 - - - 567 - - - 559 - - - 509 - - - 561 - - - 572 - - - 519 - - - 564 - - - 813 - - - 868 - - - 836 - - - 820 - - - 674 - - - 647 - - - 569 - - - 633 - - - 618 - - - 586 - - - 456 - - - 618 - - - 725 - - - 922 - - - 1,086 - - - 924 - - - 853 - - - 676 - - - 600 - - - 617 - - - 558 - - - 596 - - - 641 - - - 645 - - - 968 - - - 1,099 - - - 1,118 - - - 1,170 - - - 1,057 - - - 809 - - - 785 - - - 783 - - - 814 - - - 970 - - - 1,078 - - - 1,237 - - - 1,438 - - - 1,744 - - - 2,025 - - - 1,979 - - - 1,737 - - - 1,768 - - - 1,601 - - - 1,687 - - - 1,542 - - - 1,594 - - - 1,744 - - - 1,780 - - - 2,044 - - - 2,194 - - - 2,440 - - - - - 2,440 - - - - - 384 - - + + + + 745 + + + 812 + + + 669 + + + 447 + + + 397 + + + 389 + + + 384 + + + 446 + + + 386 + + + 417 + + + 482 + + + 580 + + + 836 + + + 826 + + + 683 + + + 596 + + + 478 + + + 443 + + + 447 + + + 522 + + + 489 + + + 535 + + + 670 + + + 785 + + + 1,211 + + + 1,060 + + + 1,009 + + + 855 + + + 626 + + + 593 + + + 594 + + + 654 + + + 615 + + + 680 + + + 758 + + + 941 + + + 1,196 + + + 1,173 + + + 987 + + + 772 + + + 715 + + + 710 + + + 677 + + + 650 + + + 681 + + + 651 + + + 690 + + + 813 + + + 994 + + + 1,039 + + + 1,011 + + + 849 + + + 665 + + + 668 + + + 610 + + + 563 + + + 629 + + + 635 + + + 695 + + + 870 + + + 1,079 + + + 1,150 + + + 961 + + + 693 + + + 567 + + + 559 + + + 509 + + + 561 + + + 572 + + + 519 + + + 564 + + + 813 + + + 868 + + + 836 + + + 820 + + + 674 + + + 647 + + + 569 + + + 633 + + + 618 + + + 586 + + + 456 + + + 618 + + + 725 + + + 922 + + + 1,086 + + + 924 + + + 853 + + + 676 + + + 600 + + + 617 + + + 558 + + + 596 + + + 641 + + + 645 + + + 968 + + + 1,099 + + + 1,118 + + + 1,170 + + + 1,057 + + + 809 + + + 785 + + + 783 + + + 814 + + + 970 + + + 1,078 + + + 1,237 + + + 1,438 + + + 1,744 + + + 2,025 + + + 1,979 + + + 1,737 + + + 1,768 + + + 1,601 + + + 1,687 + + + 1,542 + + + 1,594 + + + 1,744 + + + 1,780 + + + 2,044 + + + 2,194 + + + 2,440 + - - - - 1,000 - - - 1,023 - - - 983 - - - 793 - - - 821 - - - 837 - - - 792 - - - 853 - - - 791 - - - 739 - - - 701 - - - 715 - - - 908 - - - 990 - - - 1,037 - - - 820 - - - 875 - - - 955 - - - 833 - - - 928 - - - 936 - - - 941 - - - 1,046 - - - 1,074 - - - 1,212 - - - 1,264 - - - 1,269 - - - 1,222 - - - 1,138 - - - 1,240 - - - 1,132 - - - 1,170 - - - 1,171 - - - 1,212 - - - 1,242 - - - 1,150 - - - 1,342 - - - 1,238 - - - 1,179 - - - 1,201 - - - 1,247 - - - 1,434 - - - 1,387 - - - 1,161 - - - 1,229 - - - 1,189 - - - 1,156 - - - 1,081 - - - 1,389 - - - 1,369 - - - 1,386 - - - 1,248 - - - 1,183 - - - 1,182 - - - 1,163 - - - 1,079 - - - 1,127 - - - 1,138 - - - 1,045 - - - 1,058 - - - 1,302 - - - 1,301 - - - 1,173 - - - 1,131 - - - 1,145 - - - 1,197 - - - 1,194 - - - 1,130 - - - 1,038 - - - 1,050 - - - 1,013 - - - 968 - - - 1,203 - - - 1,141 - - - 1,022 - - - 972 - - - 1,025 - - - 1,085 - - - 1,083 - - - 977 - - - 1,008 - - - 972 - - - 1,018 - - - 965 - - - 1,166 - - - 1,045 - - - 896 - - - 872 - - - 795 - - - 979 - - - 1,089 - - - 1,028 - - - 1,027 - - - 907 - - - 893 - - - 1,009 - - - 1,120 - - - 1,007 - - - 992 - - - 919 - - - 1,049 - - - 1,160 - - - 1,329 - - - 1,366 - - - 1,277 - - - 1,313 - - - 1,397 - - - 1,535 - - - 1,794 - - - 1,847 - - - 1,852 - - - 1,833 - - - 1,835 - - - 1,863 - - - 1,854 - - - 1,794 - - - 1,809 - - - 1,919 - - - 1,879 - - - 1,851 - - - 2,154 - - - 2,071 - - - - - 2,154 - - - - - 701 - - + + + 2,440 + - - - - 734 - - - 694 - - - 739 - - - 736 - - - 685 - - - 621 - - - 708 - - - 685 - - - 667 - - - 693 - - - 672 - - - 653 - - - 911 - - - 902 - - - 954 - - - 855 - - - 903 - - - 956 - - - 1,054 - - - 1,023 - - - 996 - - - 1,065 - - - 1,108 - - - 1,172 - - - 1,377 - - - 1,296 - - - 1,367 - - - 1,322 - - - 1,194 - - - 1,187 - - - 1,185 - - - 1,108 - - - 1,076 - - - 1,046 - - - 1,115 - - - 1,188 - - - 1,302 - - - 1,229 - - - 1,222 - - - 1,199 - - - 1,150 - - - 1,232 - - - 1,193 - - - 1,186 - - - 1,175 - - - 1,041 - - - 1,034 - - - 1,025 - - - 1,110 - - - 1,094 - - - 1,083 - - - 1,004 - - - 966 - - - 957 - - - 1,019 - - - 840 - - - 852 - - - 884 - - - 905 - - - 872 - - - 889 - - - 889 - - - 879 - - - 793 - - - 743 - - - 743 - - - 883 - - - 767 - - - 775 - - - 800 - - - 823 - - - 757 - - - 778 - - - 821 - - - 701 - - - 745 - - - 680 - - - 635 - - - 736 - - - 680 - - - 632 - - - 618 - - - 702 - - - 660 - - - 752 - - - 774 - - - 742 - - - 749 - - - 651 - - - 653 - - - 621 - - - 596 - - - 673 - - - 729 - - - 762 - - - 772 - - - 837 - - - 820 - - - 831 - - - 796 - - - 879 - - - 862 - - - 908 - - - 960 - - - 984 - - - 1,007 - - - 1,144 - - - 1,315 - - - 1,711 - - - 1,822 - - - 1,912 - - - 1,968 - - - 2,010 - - - 2,010 - - - 1,988 - - - 1,866 - - - 1,876 - - - 1,884 - - - 1,882 - - - 1,747 - - - 1,918 - - - 1,814 - - - - - 2,010 - - - - - 596 - - + + + 384 + - - - - 782 - - - 779 - - - 789 - - - 658 - - - 675 - - - 833 - - - 786 - - - 675 - - - 636 - - - 691 - - - 694 - - - 639 - - - 806 - - - 821 - - - 817 - - - 744 - - - 731 - - - 821 - - - 813 - - - 767 - - - 900 - - - 903 - - - 935 - - - 938 - - - 947 - - - 973 - - - 976 - - - 953 - - - 1,022 - - - 1,034 - - - 999 - - - 884 - - - 885 - - - 956 - - - 978 - - - 922 - - - 1,049 - - - 1,145 - - - 1,035 - - - 986 - - - 955 - - - 1,048 - - - 1,020 - - - 1,050 - - - 978 - - - 933 - - - 990 - - - 885 - - - 1,097 - - - 987 - - - 1,039 - - - 925 - - - 977 - - - 1,189 - - - 965 - - - 1,010 - - - 854 - - - 853 - - - 916 - - - 850 - - - 993 - - - 1,008 - - - 967 - - - 882 - - - 944 - - - 950 - - - 929 - - - 844 - - - 842 - - - 796 - - - 966 - - - 930 - - - 910 - - - 1,040 - - - 917 - - - 882 - - - 830 - - - 942 - - - 867 - - - 855 - - - 810 - - - 795 - - - 836 - - - 701 - - - 911 - - - 879 - - - 845 - - - 822 - - - 831 - - - 917 - - - 920 - - - 877 - - - 892 - - - 911 - - - 986 - - - 961 - - - 1,176 - - - 1,056 - - - 944 - - - 874 - - - 1,074 - - - 1,154 - - - 1,172 - - - 1,122 - - - 1,029 - - - 1,126 - - - 1,283 - - - 1,210 - - - 1,487 - - - 1,477 - - - 1,484 - - - 1,322 - - - 1,599 - - - 1,688 - - - 1,600 - - - 1,636 - - - 1,469 - - - 1,604 - - - 1,524 - - - 1,624 - - - 1,804 - - - 1,597 - - - - - 1,804 - - - - - 636 - - + + + + + 1,000 + + + 1,023 + + + 983 + + + 793 + + + 821 + + + 837 + + + 792 + + + 853 + + + 791 + + + 739 + + + 701 + + + 715 + + + 908 + + + 990 + + + 1,037 + + + 820 + + + 875 + + + 955 + + + 833 + + + 928 + + + 936 + + + 941 + + + 1,046 + + + 1,074 + + + 1,212 + + + 1,264 + + + 1,269 + + + 1,222 + + + 1,138 + + + 1,240 + + + 1,132 + + + 1,170 + + + 1,171 + + + 1,212 + + + 1,242 + + + 1,150 + + + 1,342 + + + 1,238 + + + 1,179 + + + 1,201 + + + 1,247 + + + 1,434 + + + 1,387 + + + 1,161 + + + 1,229 + + + 1,189 + + + 1,156 + + + 1,081 + + + 1,389 + + + 1,369 + + + 1,386 + + + 1,248 + + + 1,183 + + + 1,182 + + + 1,163 + + + 1,079 + + + 1,127 + + + 1,138 + + + 1,045 + + + 1,058 + + + 1,302 + + + 1,301 + + + 1,173 + + + 1,131 + + + 1,145 + + + 1,197 + + + 1,194 + + + 1,130 + + + 1,038 + + + 1,050 + + + 1,013 + + + 968 + + + 1,203 + + + 1,141 + + + 1,022 + + + 972 + + + 1,025 + + + 1,085 + + + 1,083 + + + 977 + + + 1,008 + + + 972 + + + 1,018 + + + 965 + + + 1,166 + + + 1,045 + + + 896 + + + 872 + + + 795 + + + 979 + + + 1,089 + + + 1,028 + + + 1,027 + + + 907 + + + 893 + + + 1,009 + + + 1,120 + + + 1,007 + + + 992 + + + 919 + + + 1,049 + + + 1,160 + + + 1,329 + + + 1,366 + + + 1,277 + + + 1,313 + + + 1,397 + + + 1,535 + + + 1,794 + + + 1,847 + + + 1,852 + + + 1,833 + + + 1,835 + + + 1,863 + + + 1,854 + + + 1,794 + + + 1,809 + + + 1,919 + + + 1,879 + + + 1,851 + + + 2,154 + + + 2,071 + + + + + 2,154 + + + + + 701 + - - - - 655 - - - 587 - - - 623 - - - 517 - - - 561 - - - 545 - - - 636 - - - 584 - - - 559 - - - 504 - - - 547 - - - 564 - - - 734 - - - 724 - - - 652 - - - 655 - - - 652 - - - 694 - - - 731 - - - 790 - - - 810 - - - 910 - - - 946 - - - 921 - - - 1,120 - - - 973 - - - 964 - - - 951 - - - 983 - - - 1,079 - - - 1,075 - - - 926 - - - 1,007 - - - 962 - - - 1,029 - - - 1,038 - - - 1,112 - - - 1,140 - - - 1,190 - - - 1,076 - - - 1,105 - - - 1,092 - - - 1,021 - - - 881 - - - 975 - - - 1,014 - - - 948 - - - 948 - - - 1,070 - - - 964 - - - 999 - - - 752 - - - 819 - - - 814 - - - 790 - - - 845 - - - 750 - - - 781 - - - 872 - - - 875 - - - 958 - - - 916 - - - 807 - - - 714 - - - 730 - - - 743 - - - 804 - - - 728 - - - 862 - - - 748 - - - 711 - - - 788 - - - 825 - - - 841 - - - 824 - - - 644 - - - 695 - - - 753 - - - 735 - - - 681 - - - 736 - - - 768 - - - 658 - - - 791 - - - 885 - - - 825 - - - 775 - - - 689 - - - 743 - - - 722 - - - 743 - - - 683 - - - 655 - - - 675 - - - 679 - - - 803 - - - 893 - - - 866 - - - 876 - - - 736 - - - 829 - - - 890 - - - 866 - - - 961 - - - 951 - - - 1,052 - - - 992 - - - 1,147 - - - 1,445 - - - 1,512 - - - 1,597 - - - 1,448 - - - 1,514 - - - 1,580 - - - 1,531 - - - 1,560 - - - 1,596 - - - 1,488 - - - 1,514 - - - 1,486 - - - 1,614 - - - 1,740 - - - - - 1,740 - - - - - 504 - - + + + + + 734 + + + 694 + + + 739 + + + 736 + + + 685 + + + 621 + + + 708 + + + 685 + + + 667 + + + 693 + + + 672 + + + 653 + + + 911 + + + 902 + + + 954 + + + 855 + + + 903 + + + 956 + + + 1,054 + + + 1,023 + + + 996 + + + 1,065 + + + 1,108 + + + 1,172 + + + 1,377 + + + 1,296 + + + 1,367 + + + 1,322 + + + 1,194 + + + 1,187 + + + 1,185 + + + 1,108 + + + 1,076 + + + 1,046 + + + 1,115 + + + 1,188 + + + 1,302 + + + 1,229 + + + 1,222 + + + 1,199 + + + 1,150 + + + 1,232 + + + 1,193 + + + 1,186 + + + 1,175 + + + 1,041 + + + 1,034 + + + 1,025 + + + 1,110 + + + 1,094 + + + 1,083 + + + 1,004 + + + 966 + + + 957 + + + 1,019 + + + 840 + + + 852 + + + 884 + + + 905 + + + 872 + + + 889 + + + 889 + + + 879 + + + 793 + + + 743 + + + 743 + + + 883 + + + 767 + + + 775 + + + 800 + + + 823 + + + 757 + + + 778 + + + 821 + + + 701 + + + 745 + + + 680 + + + 635 + + + 736 + + + 680 + + + 632 + + + 618 + + + 702 + + + 660 + + + 752 + + + 774 + + + 742 + + + 749 + + + 651 + + + 653 + + + 621 + + + 596 + + + 673 + + + 729 + + + 762 + + + 772 + + + 837 + + + 820 + + + 831 + + + 796 + + + 879 + + + 862 + + + 908 + + + 960 + + + 984 + + + 1,007 + + + 1,144 + + + 1,315 + + + 1,711 + + + 1,822 + + + 1,912 + + + 1,968 + + + 2,010 + + + 2,010 + + + 1,988 + + + 1,866 + + + 1,876 + + + 1,884 + + + 1,882 + + + 1,747 + + + 1,918 + + + 1,814 + + + + + 2,010 + - - - - 353 - - - 349 - - - 381 - - - 329 - - - 423 - - - 452 - - - 478 - - - 450 - - - 398 - - - 339 - - - 351 - - - 293 - - - 428 - - - 423 - - - 456 - - - 341 - - - 390 - - - 476 - - - 513 - - - 595 - - - 455 - - - 486 - - - 516 - - - 483 - - - 586 - - - 590 - - - 540 - - - 493 - - - 533 - - - 638 - - - 671 - - - 660 - - - 562 - - - 517 - - - 493 - - - 558 - - - 559 - - - 576 - - - 518 - - - 611 - - - 618 - - - 769 - - - 697 - - - 760 - - - 649 - - - 639 - - - 662 - - - 620 - - - 662 - - - 608 - - - 584 - - - 589 - - - 570 - - - 769 - - - 725 - - - 647 - - - 593 - - - 526 - - - 570 - - - 562 - - - 613 - - - 619 - - - 614 - - - 591 - - - 648 - - - 667 - - - 635 - - - 644 - - - 658 - - - 628 - - - 677 - - - 529 - - - 593 - - - 528 - - - 563 - - - 558 - - - 543 - - - 617 - - - 659 - - - 611 - - - 576 - - - 531 - - - 536 - - - 502 - - - 563 - - - 489 - - - 495 - - - 555 - - - 622 - - - 653 - - - 665 - - - 648 - - - 630 - - - 534 - - - 526 - - - 521 - - - 576 - - - 562 - - - 609 - - - 551 - - - 619 - - - 669 - - - 776 - - - 844 - - - 835 - - - 797 - - - 748 - - - 791 - - - 792 - - - 847 - - - 931 - - - 964 - - - 1,005 - - - 1,267 - - - 1,269 - - - 1,239 - - - 1,257 - - - 1,280 - - - 1,168 - - - 1,183 - - - 1,175 - - - 1,200 - - - - - 1,280 - - - - - 293 - - + + + 596 + - - - - 430 - - - 409 - - - 311 - - - 269 - - - 370 - - - 603 - - - 545 - - - 583 - - - 408 - - - 391 - - - 384 - - - 365 - - - 463 - - - 298 - - - 355 - - - 369 - - - 361 - - - 525 - - - 548 - - - 540 - - - 438 - - - 429 - - - 420 - - - 419 - - - 486 - - - 508 - - - 477 - - - 447 - - - 484 - - - 561 - - - 645 - - - 596 - - - 530 - - - 499 - - - 468 - - - 446 - - - 571 - - - 483 - - - 526 - - - 440 - - - 478 - - - 704 - - - 749 - - - 745 - - - 556 - - - 500 - - - 542 - - - 516 - - - 511 - - - 490 - - - 530 - - - 433 - - - 468 - - - 580 - - - 741 - - - 676 - - - 568 - - - 561 - - - 514 - - - 499 - - - 555 - - - 472 - - - 468 - - - 478 - - - 453 - - - 681 - - - 683 - - - 664 - - - 568 - - - 502 - - - 494 - - - 393 - - - 457 - - - 472 - - - 461 - - - 414 - - - 429 - - - 578 - - - 659 - - - 595 - - - 396 - - - 424 - - - 400 - - - 395 - - - 476 - - - 405 - - - 419 - - - 408 - - - 428 - - - 572 - - - 704 - - - 695 - - - 525 - - - 492 - - - 482 - - - 451 - - - 471 - - - 372 - - - 425 - - - 373 - - - 461 - - - 654 - - - 770 - - - 721 - - - 573 - - - 552 - - - 527 - - - 511 - - - 652 - - - 563 - - - 598 - - - 575 - - - 702 - - - 991 - - - 1,129 - - - 1,118 - - - 928 - - - 785 - - - 748 - - - 797 - - - 948 - - - 880 - - - - - 1,129 - - - - - 269 - - + + + + + 782 + + + 779 + + + 789 + + + 658 + + + 675 + + + 833 + + + 786 + + + 675 + + + 636 + + + 691 + + + 694 + + + 639 + + + 806 + + + 821 + + + 817 + + + 744 + + + 731 + + + 821 + + + 813 + + + 767 + + + 900 + + + 903 + + + 935 + + + 938 + + + 947 + + + 973 + + + 976 + + + 953 + + + 1,022 + + + 1,034 + + + 999 + + + 884 + + + 885 + + + 956 + + + 978 + + + 922 + + + 1,049 + + + 1,145 + + + 1,035 + + + 986 + + + 955 + + + 1,048 + + + 1,020 + + + 1,050 + + + 978 + + + 933 + + + 990 + + + 885 + + + 1,097 + + + 987 + + + 1,039 + + + 925 + + + 977 + + + 1,189 + + + 965 + + + 1,010 + + + 854 + + + 853 + + + 916 + + + 850 + + + 993 + + + 1,008 + + + 967 + + + 882 + + + 944 + + + 950 + + + 929 + + + 844 + + + 842 + + + 796 + + + 966 + + + 930 + + + 910 + + + 1,040 + + + 917 + + + 882 + + + 830 + + + 942 + + + 867 + + + 855 + + + 810 + + + 795 + + + 836 + + + 701 + + + 911 + + + 879 + + + 845 + + + 822 + + + 831 + + + 917 + + + 920 + + + 877 + + + 892 + + + 911 + + + 986 + + + 961 + + + 1,176 + + + 1,056 + + + 944 + + + 874 + + + 1,074 + + + 1,154 + + + 1,172 + + + 1,122 + + + 1,029 + + + 1,126 + + + 1,283 + + + 1,210 + + + 1,487 + + + 1,477 + + + 1,484 + + + 1,322 + + + 1,599 + + + 1,688 + + + 1,600 + + + 1,636 + + + 1,469 + + + 1,604 + + + 1,524 + + + 1,624 + + + 1,804 + + + 1,597 + - - - - 239 - - - 262 - - - 213 - - - 218 - - - 206 - - - 188 - - - 222 - - - 186 - - - 213 - - - 226 - - - 273 - - - 178 - - - 194 - - - 209 - - - 181 - - - 216 - - - 206 - - - 187 - - - 191 - - - 243 - - - 256 - - - 247 - - - 234 - - - 249 - - - 263 - - - 250 - - - 217 - - - 255 - - - 264 - - - 246 - - - 249 - - - 271 - - - 266 - - - 275 - - - 297 - - - 327 - - - 324 - - - 304 - - - 279 - - - 248 - - - 271 - - - 295 - - - 270 - - - 302 - - - 287 - - - 338 - - - 308 - - - 299 - - - 302 - - - 260 - - - 260 - - - 242 - - - 287 - - - 306 - - - 291 - - - 324 - - - 362 - - - 301 - - - 353 - - - 341 - - - 346 - - - 363 - - - 312 - - - 273 - - - 299 - - - 268 - - - 282 - - - 249 - - - 282 - - - 255 - - - 319 - - - 327 - - - 341 - - - 332 - - - 300 - - - 334 - - - 251 - - - 245 - - - 291 - - - 306 - - - 299 - - - 275 - - - 257 - - - 287 - - - 376 - - - 300 - - - 311 - - - 240 - - - 276 - - - 258 - - - 324 - - - 315 - - - 304 - - - 338 - - - 336 - - - 326 - - - 338 - - - 340 - - - 346 - - - 338 - - - 366 - - - 364 - - - 345 - - - 378 - - - 414 - - - 396 - - - 411 - - - 559 - - - 659 - - - 586 - - - 625 - - - 488 - - - 530 - - - 472 - - - 552 - - - 569 - - - 636 - - - 610 - - - 592 - - - 609 - - - 730 - - - 680 - - - - - 730 - - - - - 178 - - + + + 1,804 + - - - - 228 - - - 240 - - - 226 - - - 197 - - - 195 - - - 216 - - - 190 - - - 213 - - - 187 - - - 224 - - - 184 - - - 200 - - - 232 - - - 235 - - - 211 - - - 232 - - - 191 - - - 249 - - - 289 - - - 256 - - - 268 - - - 281 - - - 320 - - - 258 - - - 267 - - - 318 - - - 287 - - - 292 - - - 340 - - - 373 - - - 345 - - - 343 - - - 299 - - - 312 - - - 337 - - - 322 - - - 327 - - - 310 - - - 357 - - - 323 - - - 320 - - - 358 - - - 284 - - - 342 - - - 305 - - - 303 - - - 311 - - - 283 - - - 403 - - - 363 - - - 343 - - - 312 - - - 302 - - - 335 - - - 307 - - - 312 - - - 374 - - - 358 - - - 290 - - - 290 - - - 252 - - - 301 - - - 261 - - - 255 - - - 288 - - - 307 - - - 309 - - - 300 - - - 260 - - - 255 - - - 268 - - - 204 - - - 233 - - - 268 - - - 298 - - - 293 - - - 289 - - - 299 - - - 329 - - - 263 - - - 235 - - - 211 - - - 229 - - - 227 - - - 233 - - - 295 - - - 252 - - - 231 - - - 281 - - - 303 - - - 307 - - - 371 - - - 316 - - - 307 - - - 261 - - - 315 - - - 285 - - - 323 - - - 323 - - - 324 - - - 361 - - - 337 - - - 350 - - - 409 - - - 380 - - - 434 - - - 494 - - - 540 - - - 571 - - - 637 - - - 639 - - - 561 - - - 536 - - - 513 - - - 570 - - - 566 - - - 657 - - - 646 - - - 619 - - - 665 - - - 623 - - - 708 - - - - - 708 - - - - - 184 - - + + + 636 + - - - - 236 - - - 223 - - - 192 - - - 191 - - - 190 - - - 183 - - - 228 - - - 198 - - - 231 - - - 153 - - - 129 - - - 168 - - - 194 - - - 189 - - - 193 - - - 232 - - - 178 - - - 242 - - - 236 - - - 226 - - - 214 - - - 321 - - - 302 - - - 310 - - - 368 - - - 331 - - - 313 - - - 280 - - - 257 - - - 274 - - - 270 - - - 221 - - - 235 - - - 262 - - - 233 - - - 243 - - - 331 - - - 316 - - - 319 - - - 274 - - - 260 - - - 300 - - - 289 - - - 255 - - - 255 - - - 260 - - - 275 - - - 267 - - - 243 - - - 291 - - - 284 - - - 239 - - - 230 - - - 227 - - - 231 - - - 236 - - - 208 - - - 219 - - - 217 - - - 204 - - - 276 - - - 245 - - - 267 - - - 257 - - - 223 - - - 247 - - - 222 - - - 187 - - - 211 - - - 251 - - - 199 - - - 202 - - - 287 - - - 260 - - - 263 - - - 272 - - - 226 - - - 225 - - - 237 - - - 217 - - - 183 - - - 206 - - - 183 - - - 190 - - - 248 - - - 251 - - - 249 - - - 188 - - - 216 - - - 242 - - - 309 - - - 205 - - - 224 - - - 218 - - - 242 - - - 210 - - - 271 - - - 289 - - - 267 - - - 245 - - - 269 - - - 329 - - - 359 - - - 309 - - - 337 - - - 316 - - - 331 - - - 421 - - - 522 - - - 563 - - - 558 - - - 541 - - - 506 - - - 499 - - - 511 - - - 547 - - - 538 - - - 480 - - - 493 - - - 539 - - - 657 - - - 591 - - - - - 657 - - - - - 129 - - + + + + + 655 + + + 587 + + + 623 + + + 517 + + + 561 + + + 545 + + + 636 + + + 584 + + + 559 + + + 504 + + + 547 + + + 564 + + + 734 + + + 724 + + + 652 + + + 655 + + + 652 + + + 694 + + + 731 + + + 790 + + + 810 + + + 910 + + + 946 + + + 921 + + + 1,120 + + + 973 + + + 964 + + + 951 + + + 983 + + + 1,079 + + + 1,075 + + + 926 + + + 1,007 + + + 962 + + + 1,029 + + + 1,038 + + + 1,112 + + + 1,140 + + + 1,190 + + + 1,076 + + + 1,105 + + + 1,092 + + + 1,021 + + + 881 + + + 975 + + + 1,014 + + + 948 + + + 948 + + + 1,070 + + + 964 + + + 999 + + + 752 + + + 819 + + + 814 + + + 790 + + + 845 + + + 750 + + + 781 + + + 872 + + + 875 + + + 958 + + + 916 + + + 807 + + + 714 + + + 730 + + + 743 + + + 804 + + + 728 + + + 862 + + + 748 + + + 711 + + + 788 + + + 825 + + + 841 + + + 824 + + + 644 + + + 695 + + + 753 + + + 735 + + + 681 + + + 736 + + + 768 + + + 658 + + + 791 + + + 885 + + + 825 + + + 775 + + + 689 + + + 743 + + + 722 + + + 743 + + + 683 + + + 655 + + + 675 + + + 679 + + + 803 + + + 893 + + + 866 + + + 876 + + + 736 + + + 829 + + + 890 + + + 866 + + + 961 + + + 951 + + + 1,052 + + + 992 + + + 1,147 + + + 1,445 + + + 1,512 + + + 1,597 + + + 1,448 + + + 1,514 + + + 1,580 + + + 1,531 + + + 1,560 + + + 1,596 + + + 1,488 + + + 1,514 + + + 1,486 + + + 1,614 + + + 1,740 + + + + + 1,740 + + + + + 504 + + + + + + + 353 + + + 349 + + + 381 + + + 329 + + + 423 + + + 452 + + + 478 + + + 450 + + + 398 + + + 339 + + + 351 + + + 293 + + + 428 + + + 423 + + + 456 + + + 341 + + + 390 + + + 476 + + + 513 + + + 595 + + + 455 + + + 486 + + + 516 + + + 483 + + + 586 + + + 590 + + + 540 + + + 493 + + + 533 + + + 638 + + + 671 + + + 660 + + + 562 + + + 517 + + + 493 + + + 558 + + + 559 + + + 576 + + + 518 + + + 611 + + + 618 + + + 769 + + + 697 + + + 760 + + + 649 + + + 639 + + + 662 + + + 620 + + + 662 + + + 608 + + + 584 + + + 589 + + + 570 + + + 769 + + + 725 + + + 647 + + + 593 + + + 526 + + + 570 + + + 562 + + + 613 + + + 619 + + + 614 + + + 591 + + + 648 + + + 667 + + + 635 + + + 644 + + + 658 + + + 628 + + + 677 + + + 529 + + + 593 + + + 528 + + + 563 + + + 558 + + + 543 + + + 617 + + + 659 + + + 611 + + + 576 + + + 531 + + + 536 + + + 502 + + + 563 + + + 489 + + + 495 + + + 555 + + + 622 + + + 653 + + + 665 + + + 648 + + + 630 + + + 534 + + + 526 + + + 521 + + + 576 + + + 562 + + + 609 + + + 551 + + + 619 + + + 669 + + + 776 + + + 844 + + + 835 + + + 797 + + + 748 + + + 791 + + + 792 + + + 847 + + + 931 + + + 964 + + + 1,005 + + + 1,267 + + + 1,269 + + + 1,239 + + + 1,257 + + + 1,280 + + + 1,168 + + + 1,183 + + + 1,175 + + + 1,200 + - - - - 274 - - - 232 - - - 247 - - - 240 - - - 254 - - - 225 - - - 202 - - - 187 - - - 220 - - - 161 - - - 217 - - - 167 - - - 197 - - - 243 - - - 200 - - - 220 - - - 172 - - - 246 - - - 228 - - - 241 - - - 225 - - - 239 - - - 256 - - - 277 - - - 304 - - - 339 - - - 314 - - - 268 - - - 264 - - - 335 - - - 356 - - - 353 - - - 281 - - - 272 - - - 284 - - - 241 - - - 304 - - - 331 - - - 370 - - - 331 - - - 339 - - - 359 - - - 405 - - - 373 - - - 338 - - - 378 - - - 357 - - - 278 - - - 322 - - - 366 - - - 366 - - - 347 - - - 310 - - - 326 - - - 346 - - - 341 - - - 301 - - - 300 - - - 294 - - - 276 - - - 290 - - - 325 - - - 308 - - - 306 - - - 314 - - - 291 - - - 274 - - - 306 - - - 307 - - - 319 - - - 300 - - - 269 - - - 308 - - - 281 - - - 292 - - - 266 - - - 265 - - - 265 - - - 305 - - - 341 - - - 310 - - - 268 - - - 306 - - - 306 - - - 275 - - - 257 - - - 222 - - - 224 - - - 242 - - - 256 - - - 243 - - - 239 - - - 257 - - - 182 - - - 255 - - - 235 - - - 264 - - - 313 - - - 283 - - - 251 - - - 275 - - - 322 - - - 352 - - - 412 - - - 374 - - - 334 - - - 434 - - - 367 - - - 431 - - - 453 - - - 377 - - - 403 - - - 476 - - - 557 - - - 490 - - - 528 - - - 462 - - - 541 - - - 491 - - - 513 - - - 609 - - - 603 - - - - - 609 - - - - - 161 - - + + + 1,280 + - - - - 125 - - - 112 - - - 140 - - - 95 - - - 131 - - - 102 - - - 144 - - - 143 - - - 130 - - - 96 - - - 117 - - - 151 - - - 161 - - - 109 - - - 148 - - - 148 - - - 164 - - - 163 - - - 206 - - - 210 - - - 219 - - - 233 - - - 241 - - - 275 - - - 263 - - - 279 - - - 266 - - - 257 - - - 260 - - - 255 - - - 264 - - - 270 - - - 231 - - - 211 - - - 220 - - - 255 - - - 243 - - - 321 - - - 267 - - - 268 - - - 251 - - - 239 - - - 224 - - - 224 - - - 248 - - - 182 - - - 257 - - - 224 - - - 236 - - - 194 - - - 216 - - - 168 - - - 190 - - - 172 - - - 174 - - - 191 - - - 178 - - - 185 - - - 187 - - - 173 - - - 168 - - - 204 - - - 177 - - - 178 - - - 145 - - - 160 - - - 142 - - - 156 - - - 168 - - - 162 - - - 172 - - - 128 - - - 105 - - - 119 - - - 116 - - - 132 - - - 158 - - - 114 - - - 103 - - - 132 - - - 170 - - - 116 - - - 137 - - - 108 - - - 143 - - - 139 - - - 109 - - - 77 - - - 110 - - - 114 - - - 112 - - - 140 - - - 124 - - - 120 - - - 132 - - - 125 - - - 169 - - - 193 - - - 155 - - - 143 - - - 170 - - - 157 - - - 141 - - - 144 - - - 166 - - - 168 - - - 173 - - - 219 - - - 232 - - - 224 - - - 252 - - - 320 - - - 303 - - - 347 - - - 373 - - - 358 - - - 362 - - - 261 - - - 243 - - - 256 - - - 313 - - - 300 - - - - - 373 - - - - - 77 - - + + + 293 + + + + + + + 430 + + + 409 + + + 311 + + + 269 + + + 370 + + + 603 + + + 545 + + + 583 + + + 408 + + + 391 + + + 384 + + + 365 + + + 463 + + + 298 + + + 355 + + + 369 + + + 361 + + + 525 + + + 548 + + + 540 + + + 438 + + + 429 + + + 420 + + + 419 + + + 486 + + + 508 + + + 477 + + + 447 + + + 484 + + + 561 + + + 645 + + + 596 + + + 530 + + + 499 + + + 468 + + + 446 + + + 571 + + + 483 + + + 526 + + + 440 + + + 478 + + + 704 + + + 749 + + + 745 + + + 556 + + + 500 + + + 542 + + + 516 + + + 511 + + + 490 + + + 530 + + + 433 + + + 468 + + + 580 + + + 741 + + + 676 + + + 568 + + + 561 + + + 514 + + + 499 + + + 555 + + + 472 + + + 468 + + + 478 + + + 453 + + + 681 + + + 683 + + + 664 + + + 568 + + + 502 + + + 494 + + + 393 + + + 457 + + + 472 + + + 461 + + + 414 + + + 429 + + + 578 + + + 659 + + + 595 + + + 396 + + + 424 + + + 400 + + + 395 + + + 476 + + + 405 + + + 419 + + + 408 + + + 428 + + + 572 + + + 704 + + + 695 + + + 525 + + + 492 + + + 482 + + + 451 + + + 471 + + + 372 + + + 425 + + + 373 + + + 461 + + + 654 + + + 770 + + + 721 + + + 573 + + + 552 + + + 527 + + + 511 + + + 652 + + + 563 + + + 598 + + + 575 + + + 702 + + + 991 + + + 1,129 + + + 1,118 + + + 928 + + + 785 + + + 748 + + + 797 + + + 948 + + + 880 + + + + + 1,129 + + + + + 269 + + + + + + + 239 + + + 262 + + + 213 + + + 218 + + + 206 + + + 188 + + + 222 + + + 186 + + + 213 + + + 226 + + + 273 + + + 178 + + + 194 + + + 209 + + + 181 + + + 216 + + + 206 + + + 187 + + + 191 + + + 243 + + + 256 + + + 247 + + + 234 + + + 249 + + + 263 + + + 250 + + + 217 + + + 255 + + + 264 + + + 246 + + + 249 + + + 271 + + + 266 + + + 275 + + + 297 + + + 327 + + + 324 + + + 304 + + + 279 + + + 248 + + + 271 + + + 295 + + + 270 + + + 302 + + + 287 + + + 338 + + + 308 + + + 299 + + + 302 + + + 260 + + + 260 + + + 242 + + + 287 + + + 306 + + + 291 + + + 324 + + + 362 + + + 301 + + + 353 + + + 341 + + + 346 + + + 363 + + + 312 + + + 273 + + + 299 + + + 268 + + + 282 + + + 249 + + + 282 + + + 255 + + + 319 + + + 327 + + + 341 + + + 332 + + + 300 + + + 334 + + + 251 + + + 245 + + + 291 + + + 306 + + + 299 + + + 275 + + + 257 + + + 287 + + + 376 + + + 300 + + + 311 + + + 240 + + + 276 + + + 258 + + + 324 + + + 315 + + + 304 + + + 338 + + + 336 + + + 326 + + + 338 + + + 340 + + + 346 + + + 338 + + + 366 + + + 364 + + + 345 + + + 378 + + + 414 + + + 396 + + + 411 + + + 559 + + + 659 + + + 586 + + + 625 + + + 488 + + + 530 + + + 472 + + + 552 + + + 569 + + + 636 + + + 610 + + + 592 + + + 609 + + + 730 + + + 680 + + + + + 730 + + + + + 178 + + + + + + + 228 + + + 240 + + + 226 + + + 197 + + + 195 + + + 216 + + + 190 + + + 213 + + + 187 + + + 224 + + + 184 + + + 200 + + + 232 + + + 235 + + + 211 + + + 232 + + + 191 + + + 249 + + + 289 + + + 256 + + + 268 + + + 281 + + + 320 + + + 258 + + + 267 + + + 318 + + + 287 + + + 292 + + + 340 + + + 373 + + + 345 + + + 343 + + + 299 + + + 312 + + + 337 + + + 322 + + + 327 + + + 310 + + + 357 + + + 323 + + + 320 + + + 358 + + + 284 + + + 342 + + + 305 + + + 303 + + + 311 + + + 283 + + + 403 + + + 363 + + + 343 + + + 312 + + + 302 + + + 335 + + + 307 + + + 312 + + + 374 + + + 358 + + + 290 + + + 290 + + + 252 + + + 301 + + + 261 + + + 255 + + + 288 + + + 307 + + + 309 + + + 300 + + + 260 + + + 255 + + + 268 + + + 204 + + + 233 + + + 268 + + + 298 + + + 293 + + + 289 + + + 299 + + + 329 + + + 263 + + + 235 + + + 211 + + + 229 + + + 227 + + + 233 + + + 295 + + + 252 + + + 231 + + + 281 + + + 303 + + + 307 + + + 371 + + + 316 + + + 307 + + + 261 + + + 315 + + + 285 + + + 323 + + + 323 + + + 324 + + + 361 + + + 337 + + + 350 + + + 409 + + + 380 + + + 434 + + + 494 + + + 540 + + + 571 + + + 637 + + + 639 + + + 561 + + + 536 + + + 513 + + + 570 + + + 566 + + + 657 + + + 646 + + + 619 + + + 665 + + + 623 + + + 708 + + + + + 708 + + + + + 184 + + + + + + + 236 + + + 223 + + + 192 + + + 191 + + + 190 + + + 183 + + + 228 + + + 198 + + + 231 + + + 153 + + + 129 + + + 168 + + + 194 + + + 189 + + + 193 + + + 232 + + + 178 + + + 242 + + + 236 + + + 226 + + + 214 + + + 321 + + + 302 + + + 310 + + + 368 + + + 331 + + + 313 + + + 280 + + + 257 + + + 274 + + + 270 + + + 221 + + + 235 + + + 262 + + + 233 + + + 243 + + + 331 + + + 316 + + + 319 + + + 274 + + + 260 + + + 300 + + + 289 + + + 255 + + + 255 + + + 260 + + + 275 + + + 267 + + + 243 + + + 291 + + + 284 + + + 239 + + + 230 + + + 227 + + + 231 + + + 236 + + + 208 + + + 219 + + + 217 + + + 204 + + + 276 + + + 245 + + + 267 + + + 257 + + + 223 + + + 247 + + + 222 + + + 187 + + + 211 + + + 251 + + + 199 + + + 202 + + + 287 + + + 260 + + + 263 + + + 272 + + + 226 + + + 225 + + + 237 + + + 217 + + + 183 + + + 206 + + + 183 + + + 190 + + + 248 + + + 251 + + + 249 + + + 188 + + + 216 + + + 242 + + + 309 + + + 205 + + + 224 + + + 218 + + + 242 + + + 210 + + + 271 + + + 289 + + + 267 + + + 245 + + + 269 + + + 329 + + + 359 + + + 309 + + + 337 + + + 316 + + + 331 + + + 421 + + + 522 + + + 563 + + + 558 + + + 541 + + + 506 + + + 499 + + + 511 + + + 547 + + + 538 + + + 480 + + + 493 + + + 539 + + + 657 + + + 591 + + + + + 657 + + + + + 129 + + + + + + + 274 + + + 232 + + + 247 + + + 240 + + + 254 + + + 225 + + + 202 + + + 187 + + + 220 + + + 161 + + + 217 + + + 167 + + + 197 + + + 243 + + + 200 + + + 220 + + + 172 + + + 246 + + + 228 + + + 241 + + + 225 + + + 239 + + + 256 + + + 277 + + + 304 + + + 339 + + + 314 + + + 268 + + + 264 + + + 335 + + + 356 + + + 353 + + + 281 + + + 272 + + + 284 + + + 241 + + + 304 + + + 331 + + + 370 + + + 331 + + + 339 + + + 359 + + + 405 + + + 373 + + + 338 + + + 378 + + + 357 + + + 278 + + + 322 + + + 366 + + + 366 + + + 347 + + + 310 + + + 326 + + + 346 + + + 341 + + + 301 + + + 300 + + + 294 + + + 276 + + + 290 + + + 325 + + + 308 + + + 306 + + + 314 + + + 291 + + + 274 + + + 306 + + + 307 + + + 319 + + + 300 + + + 269 + + + 308 + + + 281 + + + 292 + + + 266 + + + 265 + + + 265 + + + 305 + + + 341 + + + 310 + + + 268 + + + 306 + + + 306 + + + 275 + + + 257 + + + 222 + + + 224 + + + 242 + + + 256 + + + 243 + + + 239 + + + 257 + + + 182 + + + 255 + + + 235 + + + 264 + + + 313 + + + 283 + + + 251 + + + 275 + + + 322 + + + 352 + + + 412 + + + 374 + + + 334 + + + 434 + + + 367 + + + 431 + + + 453 + + + 377 + + + 403 + + + 476 + + + 557 + + + 490 + + + 528 + + + 462 + + + 541 + + + 491 + + + 513 + + + 609 + + + 603 + + + + + 609 + + + + + 161 + + + + + + + 125 + + + 112 + + + 140 + + + 95 + + + 131 + + + 102 + + + 144 + + + 143 + + + 130 + + + 96 + + + 117 + + + 151 + + + 161 + + + 109 + + + 148 + + + 148 + + + 164 + + + 163 + + + 206 + + + 210 + + + 219 + + + 233 + + + 241 + + + 275 + + + 263 + + + 279 + + + 266 + + + 257 + + + 260 + + + 255 + + + 264 + + + 270 + + + 231 + + + 211 + + + 220 + + + 255 + + + 243 + + + 321 + + + 267 + + + 268 + + + 251 + + + 239 + + + 224 + + + 224 + + + 248 + + + 182 + + + 257 + + + 224 + + + 236 + + + 194 + + + 216 + + + 168 + + + 190 + + + 172 + + + 174 + + + 191 + + + 178 + + + 185 + + + 187 + + + 173 + + + 168 + + + 204 + + + 177 + + + 178 + + + 145 + + + 160 + + + 142 + + + 156 + + + 168 + + + 162 + + + 172 + + + 128 + + + 105 + + + 119 + + + 116 + + + 132 + + + 158 + + + 114 + + + 103 + + + 132 + + + 170 + + + 116 + + + 137 + + + 108 + + + 143 + + + 139 + + + 109 + + + 77 + + + 110 + + + 114 + + + 112 + + + 140 + + + 124 + + + 120 + + + 132 + + + 125 + + + 169 + + + 193 + + + 155 + + + 143 + + + 170 + + + 157 + + + 141 + + + 144 + + + 166 + + + 168 + + + 173 + + + 219 + + + 232 + + + 224 + + + 252 + + + 320 + + + 303 + + + 347 + + + 373 + + + 358 + + + 362 + + + 261 + + + 243 + + + 256 + + + 313 + + + 300 + + + + + 373 + + + + + 77 + + + + + + + 154 + + + 173 + + + 152 + + + 135 + + + 73 + + + 109 + + + 77 + + + 110 + + + 124 + + + 113 + + + 192 + + + 196 + + + 188 + + + 193 + + + 267 + + + 140 + + + 109 + + + 130 + + + 113 + + + 141 + + + 101 + + + 118 + + + 145 + + + 192 + + + 195 + + + 187 + + + 269 + + + 151 + + + 89 + + + 89 + + + 114 + + + 125 + + + 92 + + + 97 + + + 137 + + + 120 + + + 159 + + + 172 + + + 161 + + + 154 + + + 133 + + + 94 + + + 113 + + + 173 + + + 98 + + + 136 + + + 148 + + + 137 + + + 184 + + + 168 + + + 153 + + + 107 + + + 99 + + + 106 + + + 140 + + + 103 + + + 88 + + + 102 + + + 131 + + + 165 + + + 153 + + + 107 + + + 139 + + + 84 + + + 66 + + + 76 + + + 69 + + + 100 + + + 127 + + + 85 + + + 118 + + + 127 + + + 140 + + + 139 + + + 117 + + + 81 + + + 79 + + + 35 + + + 55 + + + 76 + + + 78 + + + 77 + + + 125 + + + 139 + + + 128 + + + 127 + + + 123 + + + 67 + + + 64 + + + 59 + + + 40 + + + 54 + + + 53 + + + 47 + + + 80 + + + 96 + + + 113 + + + 135 + + + 175 + + + 108 + + + 94 + + + 86 + + + 125 + + + 111 + + + 84 + + + 97 + + + 119 + + + 229 + + + 245 + + + 251 + + + 241 + + + 176 + + + 136 + + + 182 + + + 180 + + + 195 + + + 150 + + + 166 + + + 180 + + + 292 + + + 318 + + + 285 + + + + + 318 + + + + + 35 + + + + + + + 19 + + + 25 + + + 17 + + + 20 + + + 27 + + + 13 + + + 16 + + + 23 + + + 25 + + + 39 + + + 11 + + + 20 + + + 11 + + + 27 + + + 14 + + + 24 + + + 34 + + + 26 + + + 17 + + + 18 + + + 23 + + + 32 + + + 20 + + + 27 + + + 33 + + + 35 + + + 28 + + + 33 + + + 25 + + + 35 + + + 19 + + + 32 + + + 42 + + + 36 + + + 32 + + + 45 + + + 54 + + + 41 + + + 46 + + + 41 + + + 40 + + + 36 + + + 43 + + + 20 + + + 25 + + + 31 + + + 34 + + + 32 + + + 31 + + + 24 + + + 22 + + + 34 + + + 22 + + + 27 + + + 28 + + + 10 + + + 8 + + + 15 + + + 20 + + + 16 + + + 29 + + + 25 + + + 32 + + + 19 + + + 16 + + + 25 + + + 22 + + + 12 + + + 12 + + + 2 + + + 18 + + + 23 + + + 26 + + + 25 + + + 14 + + + 17 + + + 20 + + + 31 + + + 25 + + + 32 + + + 14 + + + 15 + + + 22 + + + 25 + + + 35 + + + 33 + + + 24 + + + 17 + + + 22 + + + 33 + + + 33 + + + 33 + + + 25 + + + 9 + + + 16 + + + 24 + + + 28 + + + 16 + + + 28 + + + 28 + + + 28 + + + 28 + + + 13 + + + 17 + + + 25 + + + 15 + + + 32 + + + 46 + + + 59 + + + 63 + + + 105 + + + 125 + + + 98 + + + 100 + + + 95 + + + 93 + + + 76 + + + 84 + + + 96 + + + 89 + + + 68 + + + 79 + - - - - 154 - - - 173 - - - 152 - - - 135 - - - 73 - - - 109 - - - 77 - - - 110 - - - 124 - - - 113 - - - 192 - - - 196 - - - 188 - - - 193 - - - 267 - - - 140 - - - 109 - - - 130 - - - 113 - - - 141 - - - 101 - - - 118 - - - 145 - - - 192 - - - 195 - - - 187 - - - 269 - - - 151 - - - 89 - - - 89 - - - 114 - - - 125 - - - 92 - - - 97 - - - 137 - - - 120 - - - 159 - - - 172 - - - 161 - - - 154 - - - 133 - - - 94 - - - 113 - - - 173 - - - 98 - - - 136 - - - 148 - - - 137 - - - 184 - - - 168 - - - 153 - - - 107 - - - 99 - - - 106 - - - 140 - - - 103 - - - 88 - - - 102 - - - 131 - - - 165 - - - 153 - - - 107 - - - 139 - - - 84 - - - 66 - - - 76 - - - 69 - - - 100 - - - 127 - - - 85 - - - 118 - - - 127 - - - 140 - - - 139 - - - 117 - - - 81 - - - 79 - - - 35 - - - 55 - - - 76 - - - 78 - - - 77 - - - 125 - - - 139 - - - 128 - - - 127 - - - 123 - - - 67 - - - 64 - - - 59 - - - 40 - - - 54 - - - 53 - - - 47 - - - 80 - - - 96 - - - 113 - - - 135 - - - 175 - - - 108 - - - 94 - - - 86 - - - 125 - - - 111 - - - 84 - - - 97 - - - 119 - - - 229 - - - 245 - - - 251 - - - 241 - - - 176 - - - 136 - - - 182 - - - 180 - - - 195 - - - 150 - - - 166 - - - 180 - - - 292 - - - 318 - - - 285 - - - - - 318 - - - - - 35 - - + + + 125 + - - - - 19 - - - 25 - - - 17 - - - 20 - - - 27 - - - 13 - - - 16 - - - 23 - - - 25 - - - 39 - - - 11 - - - 20 - - - 11 - - - 27 - - - 14 - - - 24 - - - 34 - - - 26 - - - 17 - - - 18 - - - 23 - - - 32 - - - 20 - - - 27 - - - 33 - - - 35 - - - 28 - - - 33 - - - 25 - - - 35 - - - 19 - - - 32 - - - 42 - - - 36 - - - 32 - - - 45 - - - 54 - - - 41 - - - 46 - - - 41 - - - 40 - - - 36 - - - 43 - - - 20 - - - 25 - - - 31 - - - 34 - - - 32 - - - 31 - - - 24 - - - 22 - - - 34 - - - 22 - - - 27 - - - 28 - - - 10 - - - 8 - - - 15 - - - 20 - - - 16 - - - 29 - - - 25 - - - 32 - - - 19 - - - 16 - - - 25 - - - 22 - - - 12 - - - 12 - - - 2 - - - 18 - - - 23 - - - 26 - - - 25 - - - 14 - - - 17 - - - 20 - - - 31 - - - 25 - - - 32 - - - 14 - - - 15 - - - 22 - - - 25 - - - 35 - - - 33 - - - 24 - - - 17 - - - 22 - - - 33 - - - 33 - - - 33 - - - 25 - - - 9 - - - 16 - - - 24 - - - 28 - - - 16 - - - 28 - - - 28 - - - 28 - - - 28 - - - 13 - - - 17 - - - 25 - - - 15 - - - 32 - - - 46 - - - 59 - - - 63 - - - 105 - - - 125 - - - 98 - - - 100 - - - 95 - - - 93 - - - 76 - - - 84 - - - 96 - - - 89 - - - 68 - - - 79 - - - - - 125 - - - - - 2 - - + + + 2 + \ No newline at end of file diff --git a/test/output/metroUnemploymentRidgeline.svg b/test/output/metroUnemploymentRidgeline.svg index 5476bbf722..55c69c6f71 100644 --- a/test/output/metroUnemploymentRidgeline.svg +++ b/test/output/metroUnemploymentRidgeline.svg @@ -173,501 +173,499 @@ 2012 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/mobyDickFaceted.svg b/test/output/mobyDickFaceted.svg index e4c3910211..5bef7494c8 100644 --- a/test/output/mobyDickFaceted.svg +++ b/test/output/mobyDickFaceted.svg @@ -29,310 +29,300 @@ vowel - - - - - 0 - - - - 200 - - - - 400 - - - - 600 - - - - 800 - - - - 1,000 - - - - 1,200 - - ↑ Frequency - - - - - - 0 - - - - 200 - - - - 400 - - - - 600 - - - - 800 - - - - 1,000 - - - - 1,200 - - - - - - - - A - - - B - - - C - - - D - - - E - - - F - - - G - - - H - - - I - - - J - - - K - - - L - - - M - - - N - - - O - - - P - - - Q - - - R - - - S - - - T - - - U - - - V - - - W - - - X - - - Y - - - Z - - - - - - - A - - - B - - - C - - - D - - - E - - - F - - - G - - - H - - - I - - - J - - - K - - - L - - - M - - - N - - - O - - - P - - - Q - - - R - - - S - - - T - - - U - - - V - - - W - - - X - - - Y - - - Z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1,000 + + + + 1,200 + + ↑ Frequency + + + + 0 + + + + 200 + + + + 400 + + + + 600 + + + + 800 + + + + 1,000 + + + + 1,200 + + + + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + + + A + + + B + + + C + + + D + + + E + + + F + + + G + + + H + + + I + + + J + + + K + + + L + + + M + + + N + + + O + + + P + + + Q + + + R + + + S + + + T + + + U + + + V + + + W + + + X + + + Y + + + Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/penguinCulmen.svg b/test/output/penguinCulmen.svg index a3af36c2e9..c9e009f837 100644 --- a/test/output/penguinCulmen.svg +++ b/test/output/penguinCulmen.svg @@ -35,2906 +35,2892 @@ sex - - - - - 35 - - - - 40 - - - - 45 - - - - 50 - - - - 55 - - ↑ culmen_length_mm - + + + 35 + - - - - 35 - - - - 40 - - - - 45 - - - - 50 - - - - 55 - - - + + 40 + - - - - 35 - - - - 40 - - - - 45 - - - - 50 - - - - 55 - - - + + 45 + - - - - 15 - - - - 20 - - - + + 50 + - - - - 15 - - - - 20 - - - + + 55 + + ↑ culmen_length_mm + + + + 35 + + + + 40 + + + + 45 + + + + 50 + + + + 55 + + + + + + 35 + + + + 40 + + + + 45 + + + + 50 + + + + 55 + + + + + + 15 + + + + 20 + + + + + + 15 + + + + 20 + - - - - 15 - - - - 20 - - culmen_depth_mm → - + + + + 15 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + 20 + + culmen_depth_mm → + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/test/output/penguinCulmenArray.svg b/test/output/penguinCulmenArray.svg index af69ed58f3..a5acddeee8 100644 --- a/test/output/penguinCulmenArray.svg +++ b/test/output/penguinCulmenArray.svg @@ -35,3240 +35,3226 @@ sex - - - - - 35 - - - - 40 - - - - 45 - - - - 50 - - - - 55 - - - + + + 35 + - - - - 35 - - - - 40 - - - - 45 - - - - 50 - - - - 55 - - - + + 40 + - - - - 35 - - - - 40 - - - - 45 - - - - 50 - - - - 55 - - - + + 45 + - - - - 15 - - - - 20 - - - + + 50 + - - - - 15 - - - - 20 - - - + + 55 + - - - - 15 - - - - 20 - - - + + + + 35 + + + + 40 + + + + 45 + + + + 50 + + + + 55 + + + + + + 35 + + + + 40 + + + + 45 + + + + 50 + + + + 55 + + + + + + 15 + + + + 20 + + + + + + 15 + + + + 20 + + + + + + 15 + + + + 20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + \ No newline at end of file diff --git a/test/output/penguinMassSex.svg b/test/output/penguinMassSex.svg index 14c8d40724..8e134f181e 100644 --- a/test/output/penguinMassSex.svg +++ b/test/output/penguinMassSex.svg @@ -53,111 +53,103 @@ 6,500 Body mass (g) → - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - ↑ Frequency - - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - 50 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + ↑ Frequency + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/penguinMassSexSpecies.svg b/test/output/penguinMassSexSpecies.svg index 7c40e448ad..36950cfe30 100644 --- a/test/output/penguinMassSexSpecies.svg +++ b/test/output/penguinMassSexSpecies.svg @@ -35,178 +35,164 @@ sex - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - ↑ Frequency - - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - - - - - 0 - - - 10 - - - 20 - - - 30 - - - 40 - - - - - - - 4,000 - - - 6,000 - - - - - - - 4,000 - - - 6,000 - - - - - - - 4,000 - - - 6,000 - Body mass (g) → - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + ↑ Frequency + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + + + 0 + + + 10 + + + 20 + + + 30 + + + 40 + + + + + 4,000 + + + 6,000 + + + + + 4,000 + + + 6,000 + + + + + 4,000 + + + 6,000 + Body mass (g) → + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/penguinSexMassCulmenSpecies.svg b/test/output/penguinSexMassCulmenSpecies.svg index f2577a94f0..f390ec5fd5 100644 --- a/test/output/penguinSexMassCulmenSpecies.svg +++ b/test/output/penguinSexMassCulmenSpecies.svg @@ -78,212 +78,204 @@ sex - - - - - - 3k - - - - 3.5k - - - - 4k - - - - 4.5k - - - - 5k - - - - 5.5k - - - - 6k - - - - - - - - 3k - - - - 3.5k - - - - 4k - - - - 4.5k - - - - 5k - - - - 5.5k - - - - 6k - - - - - - - - 3k - - - - 3.5k - - - - 4k - - - - 4.5k - - - - 5k - - - - 5.5k - - - - 6k - body_mass_g → - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + 3k + + + + 3.5k + + + + 4k + + + + 4.5k + + + + 5k + + + + 5.5k + + + + 6k + + + + + + 3k + + + + 3.5k + + + + 4k + + + + 4.5k + + + + 5k + + + + 5.5k + + + + 6k + + + + + + 3k + + + + 3.5k + + + + 4k + + + + 4.5k + + + + 5k + + + + 5.5k + + + + 6k + body_mass_g → + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/penguinSpeciesIslandRelative.svg b/test/output/penguinSpeciesIslandRelative.svg index 6b5155d77d..3b3a8c5bb9 100644 --- a/test/output/penguinSpeciesIslandRelative.svg +++ b/test/output/penguinSpeciesIslandRelative.svg @@ -59,32 +59,30 @@ Gentoo species - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/penguinSpeciesIslandSex.svg b/test/output/penguinSpeciesIslandSex.svg index 0cb8e6cdcb..797500a7c9 100644 --- a/test/output/penguinSpeciesIslandSex.svg +++ b/test/output/penguinSpeciesIslandSex.svg @@ -86,79 +86,71 @@ Gentoo species - - - - - FEMALE - - - MALE - - - N/A - - - - - - - FEMALE - - - MALE - - - N/A - sex - - - - - - FEMALE - - - MALE - - - N/A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + FEMALE + + + MALE + + + N/A + + + + + FEMALE + + + MALE + + + N/A + sex + + + + FEMALE + + + MALE + + + N/A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/output/trafficHorizon.html b/test/output/trafficHorizon.html index 21ddbacbd6..b2623804fa 100644 --- a/test/output/trafficHorizon.html +++ b/test/output/trafficHorizon.html @@ -85,1261 +85,1259 @@ 12 PM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Von der Heydt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Kirschheck - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Saarbrücken-Neuhaus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Riegelsberg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Holz - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Göttelborn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Illingen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AS Eppelborn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hasborn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Kastel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Otzenhausen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bierfeld - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Nonnweiler - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hetzerath - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Laufeld - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Nettersheim - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Euskirchen/Bliesheim - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hürth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Köln-Nord - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Schloss Burg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hagen-Vorhalle - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hengsen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Unna - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ascheberg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ladbergen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Lotte - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HB-Silbersee - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HB-Weserbrücke - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HB-Mahndorfer See - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Groß Ippener - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Uphusen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bockel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dibbersen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Glüsingen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Barsbüttel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Bad Schwartau - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Oldenburg (Holstein) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Neustadt i. H.-Süd + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Von der Heydt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kirschheck + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Saarbrücken-Neuhaus + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Riegelsberg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Holz + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Göttelborn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Illingen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AS Eppelborn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hasborn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kastel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Otzenhausen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bierfeld + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nonnweiler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hetzerath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Laufeld + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nettersheim + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Euskirchen/Bliesheim + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hürth + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Köln-Nord + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Schloss Burg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hagen-Vorhalle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hengsen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Unna + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ascheberg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ladbergen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lotte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HB-Silbersee + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HB-Weserbrücke + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HB-Mahndorfer See + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Groß Ippener + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Uphusen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bockel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dibbersen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Glüsingen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Barsbüttel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bad Schwartau + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Oldenburg (Holstein) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Neustadt i. H.-Süd \ No newline at end of file