diff --git a/src/axis.js b/src/axis.js index 9940eb85f3..6a98dd43e2 100644 --- a/src/axis.js +++ b/src/axis.js @@ -13,7 +13,8 @@ export class AxisX { grid, label, labelAnchor, - labelOffset + labelOffset, + className = "axisX" } = {}) { this.name = name; this.axis = (axis + "").toLowerCase(); @@ -26,6 +27,7 @@ export class AxisX { this.label = label; this.labelAnchor = labelAnchor; this.labelOffset = labelOffset; + this.className = className; } render( index, @@ -59,6 +61,7 @@ export class AxisX { const offsetSign = axis === "top" ? -1 : 1; const ty = offsetSign * offset + (axis === "top" ? marginTop : height - marginBottom); return create("svg:g") + .classed(this.className, true) .attr("transform", `translate(0,${ty})`) .call((axis === "top" ? axisTop : axisBottom)(round(x)) .ticks(Array.isArray(ticks) ? null : ticks, typeof tickFormat === "function" ? null : tickFormat) @@ -100,7 +103,8 @@ export class AxisY { grid, label, labelAnchor, - labelOffset + labelOffset, + className = "axisY" } = {}) { this.name = name; this.axis = axis = (axis + "").toLowerCase(); @@ -113,6 +117,7 @@ export class AxisY { this.label = label; this.labelAnchor = labelAnchor; this.labelOffset = labelOffset; + this.className = className; } render( index, @@ -144,6 +149,7 @@ export class AxisY { const offsetSign = axis === "left" ? -1 : 1; const tx = offsetSign * offset + (axis === "right" ? width - marginRight : marginLeft); return create("svg:g") + .classed(this.className, true) .attr("transform", `translate(${tx},0)`) .call((axis === "right" ? axisRight : axisLeft)(round(y)) .ticks(Array.isArray(ticks) ? null : ticks, typeof tickFormat === "function" ? null : tickFormat) diff --git a/src/facet.js b/src/facet.js index aa6f3df7ba..1da213c184 100644 --- a/src/facet.js +++ b/src/facet.js @@ -9,7 +9,7 @@ export function facets(data, {x, y, ...options}, marks) { } class Facet extends Mark { - constructor(data, {x, y, transform} = {}, marks = []) { + constructor(data, {x, y, className = "facet", transform} = {}, marks = []) { super( data, [ @@ -23,6 +23,7 @@ class Facet extends Mark { this.marksChannels = undefined; // array of mark channels this.marksIndex = undefined; // array of mark indexes (for non-faceted marks) this.marksIndexByFacet = undefined; // map from facet key to array of mark indexes + this.className = className; } initialize() { const {index, channels} = super.initialize(); @@ -73,7 +74,9 @@ class Facet extends Mark { 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 className = this.className; return create("svg:g") + .classed(className, true) .call(g => { if (fy && axes.y) { const domain = fy.domain(); diff --git a/src/marks/area.js b/src/marks/area.js index a4dba3aa7f..bd97367358 100644 --- a/src/marks/area.js +++ b/src/marks/area.js @@ -43,7 +43,7 @@ export class Area extends Mark { transform ); this.curve = Curve(curve); - Style(this, {fill: cfill, stroke: cstroke, ...style}); + Style(this, {fill: cfill, stroke: cstroke, className: "area", ...style}); } render(I, {x, y, color}, {x1: X1, y1: Y1, x2: X2 = X1, y2: Y2 = Y1, z: Z, title: L, fill: F, stroke: S}) { return create("svg:g") @@ -73,10 +73,10 @@ export function area(data, options) { export function areaX(data, {x, x1, x2, y = indexOf, ...options} = {}) { ([x1, x2] = maybeZero(x, x1, x2)); - return new Area(data, {...options, x1, x2, y1: y, y2: undefined}); + return new Area(data, {className: "areaX", ...options, x1, x2, y1: y, y2: undefined}); } export function areaY(data, {x = indexOf, y, y1, y2, ...options} = {}) { ([y1, y2] = maybeZero(y, y1, y2)); - return new Area(data, {...options, x1: x, x2: undefined, y1, y2}); + return new Area(data, {className: "areaY", ...options, x1: x, x2: undefined, y1, y2}); } diff --git a/src/marks/bar.js b/src/marks/bar.js index 03d8fc6f51..f05a2cb8a0 100644 --- a/src/marks/bar.js +++ b/src/marks/bar.js @@ -36,7 +36,7 @@ export class AbstractBar extends Mark { ], transform ); - Style(this, {fill: cfill, stroke: cstroke, ...style}); + Style(this, {fill: cfill, stroke: cstroke, className: "bar", ...style}); this.insetTop = number(insetTop); this.insetRight = number(insetRight); this.insetBottom = number(insetBottom); diff --git a/src/marks/bin.js b/src/marks/bin.js index 351eb5b245..ba6e0c28b9 100644 --- a/src/marks/bin.js +++ b/src/marks/bin.js @@ -10,6 +10,7 @@ export function bin(data, {x, y, domain, thresholds, normalize, transform, ...op { insetTop: 1, insetLeft: 1, + className: "bin", ...options, transform: bin2({x, y, domain, thresholds}), fill: normalize ? normalizer(normalize, data.length) : length, @@ -36,6 +37,7 @@ export function binX(data, { data, { insetLeft: 1, + className: "binX", ...options, transform: bin1({value: x, domain, thresholds, cumulative}), y: normalize ? normalizer(normalize, data.length) : length, @@ -60,6 +62,7 @@ export function binY(data, { data, { insetTop: 1, + className: "binY", ...options, transform: bin1({value: y, domain, thresholds, cumulative}), x: normalize ? normalizer(normalize, data.length) : length, diff --git a/src/marks/cell.js b/src/marks/cell.js index ad691b742f..bf0a3e1532 100644 --- a/src/marks/cell.js +++ b/src/marks/cell.js @@ -10,7 +10,7 @@ export class Cell extends AbstractBar { {name: "x", value: x, scale: "x", type: "band", optional: true}, {name: "y", value: y, scale: "y", type: "band", optional: true} ], - options + {className: "cell", ...options} ); } _transform() { @@ -26,9 +26,9 @@ export function cell(data, options) { } export function cellX(data, {x = identity, ...options} = {}) { - return new Cell(data, {...options, x, y: null}); + return new Cell(data, {className: "cellX", ...options, x, y: null}); } export function cellY(data, {y = identity, ...options} = {}) { - return new Cell(data, {...options, y, x: null}); + return new Cell(data, {className: "cellY", ...options, y, x: null}); } diff --git a/src/marks/dot.js b/src/marks/dot.js index 45d12ec65d..20878b2bc9 100644 --- a/src/marks/dot.js +++ b/src/marks/dot.js @@ -40,6 +40,7 @@ export class Dot extends Mark { fill: cfill, stroke: cstroke, strokeWidth: cstroke === "none" ? undefined : 1.5, + className: "dot", ...style }); } diff --git a/src/marks/frame.js b/src/marks/frame.js index 4fd3f323da..2e99d0c07c 100644 --- a/src/marks/frame.js +++ b/src/marks/frame.js @@ -9,7 +9,7 @@ export class Frame extends Mark { ...style } = {}) { super(); - Style(this, {fill, stroke, ...style}); + Style(this, {fill, stroke, className: "frame", ...style}); } render( index, diff --git a/src/marks/group.js b/src/marks/group.js index 13b16a0c72..da611222b9 100644 --- a/src/marks/group.js +++ b/src/marks/group.js @@ -13,6 +13,7 @@ export function group(data, { return cell( data, { + className: "group", ...options, transform: group2(x, y), x: maybeLabel(first, x), @@ -36,6 +37,7 @@ export function groupX(data, { return barY( data, { + className: "groupX", ...options, transform: group1(x), x: maybeLabel(first, x), @@ -59,6 +61,7 @@ export function groupY(data, { return barX( data, { + className: "groupY", ...options, transform: group1(y), x1, diff --git a/src/marks/line.js b/src/marks/line.js index 7714f794d2..56fe7ac337 100644 --- a/src/marks/line.js +++ b/src/marks/line.js @@ -43,6 +43,7 @@ export class Line extends Mark { fill: cfill, stroke: cstroke, strokeWidth: cstroke === "none" ? undefined : 1.5, + className: "line", ...style }); } @@ -71,9 +72,9 @@ export function line(data, {x = first, y = second, ...options} = {}) { } export function lineX(data, {x = identity, ...options} = {}) { - return new Line(data, {...options, x, y: indexOf}); + return new Line(data, {className: "lineX", ...options, x, y: indexOf}); } export function lineY(data, {y = identity, ...options} = {}) { - return new Line(data, {...options, x: indexOf, y}); + return new Line(data, {className: "lineY", ...options, x: indexOf, y}); } diff --git a/src/marks/link.js b/src/marks/link.js index 8b74bcf5e8..c3e941fb2a 100644 --- a/src/marks/link.js +++ b/src/marks/link.js @@ -33,7 +33,7 @@ export class Link extends Mark { ], transform ); - Style(this, {stroke: cstroke, ...style}); + Style(this, {stroke: cstroke, className: "link", ...style}); } render( I, diff --git a/src/marks/rect.js b/src/marks/rect.js index 576a6431f5..68a09be054 100644 --- a/src/marks/rect.js +++ b/src/marks/rect.js @@ -43,7 +43,7 @@ export class Rect extends Mark { ], transform ); - Style(this, {fill: cfill, stroke: cstroke, ...style}); + Style(this, {fill: cfill, stroke: cstroke, className: "rect", ...style}); this.insetTop = number(insetTop); this.insetRight = number(insetRight); this.insetBottom = number(insetBottom); @@ -84,9 +84,9 @@ export function rect(data, options) { } export function rectX(data, {x, y1, y2, ...options} = {}) { - return new Rect(data, {...options, x1: zero, x2: x, y1, y2}); + return new Rect(data, {className: "rectX", ...options, x1: zero, x2: x, y1, y2}); } export function rectY(data, {x1, x2, y, ...options} = {}) { - return new Rect(data, {...options, x1, x2, y1: zero, y2: y}); + return new Rect(data, {className: "rectY", ...options, x1, x2, y1: zero, y2: y}); } diff --git a/src/marks/rule.js b/src/marks/rule.js index a96325ba85..4b7b4e5374 100644 --- a/src/marks/rule.js +++ b/src/marks/rule.js @@ -31,7 +31,7 @@ export class RuleX extends Mark { ], transform ); - Style(this, {stroke: cstroke, ...style}); + Style(this, {stroke: cstroke, className: "ruleX", ...style}); } render( I, @@ -85,7 +85,7 @@ export class RuleY extends Mark { ], transform ); - Style(this, {stroke: cstroke, ...style}); + Style(this, {stroke: cstroke, className: "ruleY", ...style}); } render( I, diff --git a/src/marks/stack.js b/src/marks/stack.js index e079fd6185..c3707fa6c7 100644 --- a/src/marks/stack.js +++ b/src/marks/stack.js @@ -3,17 +3,17 @@ import {areaX, areaY} from "./area.js"; import {barX, barY} from "./bar.js"; export function stackAreaX(data, options) { - return areaX(...stackX(data, options)); + return areaX(...stackX(data, {className: "stackAreaX", ...options})); } export function stackAreaY(data, options) { - return areaY(...stackY(data, options)); + return areaY(...stackY(data, {className: "stackAreaY", ...options})); } export function stackBarX(data, options) { - return barX(...stackX(data, options)); + return barX(...stackX(data, {className: "stackBarX", ...options})); } export function stackBarY(data, options) { - return barY(...stackY(data, options)); + return barY(...stackY(data, {className: "stackBarY", ...options})); } diff --git a/src/marks/text.js b/src/marks/text.js index 7cd7244eda..eb494e8e0f 100644 --- a/src/marks/text.js +++ b/src/marks/text.js @@ -34,7 +34,7 @@ export class Text extends Mark { ], transform ); - Style(this, {fill: cfill, ...style}); + Style(this, {fill: cfill, className: "text", ...style}); this.textAnchor = string(textAnchor); this.dx = string(dx); this.dy = string(dy); @@ -68,11 +68,11 @@ export function text(data, options) { } export function textX(data, {x = identity, ...options} = {}) { - return new Text(data, {...options, x, y: indexOf}); + return new Text(data, {className: "textX", ...options, x, y: indexOf}); } export function textY(data, {y = identity, ...options} = {}) { - return new Text(data, {...options, x: indexOf, y}); + return new Text(data, {className: "textY", ...options, x: indexOf, y}); } function applyTextStyles(selection, style) { diff --git a/src/marks/tick.js b/src/marks/tick.js index 70d439d995..9ea0b7a37b 100644 --- a/src/marks/tick.js +++ b/src/marks/tick.js @@ -27,7 +27,7 @@ class AbstractTick extends Mark { ], transform ); - Style(this, {stroke: cstroke, ...style}); + Style(this, {stroke: cstroke, className: "tick", ...style}); } render(I, scales, channels) { const {color} = scales; @@ -59,7 +59,7 @@ export class TickX extends AbstractTick { {name: "x", value: x, scale: "x"}, {name: "y", value: y, scale: "y", type: "band"} ], - options + {className: "tickX", ...options} ); } _transform(selection, {x}) { @@ -87,7 +87,7 @@ export class TickY extends AbstractTick { {name: "x", value: x, scale: "x", type: "band"}, {name: "y", value: y, scale: "y"} ], - options + {className: "tickY", ...options} ); } _transform(selection, {y}) { diff --git a/src/plot.js b/src/plot.js index cffd705753..51a93973c3 100644 --- a/src/plot.js +++ b/src/plot.js @@ -96,7 +96,10 @@ export function plot(options = {}) { const channels = markChannels.get(mark); const index = markIndex.get(mark); const node = mark.render(index, scales, channels, dimensions, axes); - if (node != null) svg.append(() => node); + if (node != null) { + if (mark.className != null) node.classList.add(mark.className); + svg.append(() => node); + } } return svg.node(); diff --git a/src/style.js b/src/style.js index f65b96e2b5..8e54b07e43 100644 --- a/src/style.js +++ b/src/style.js @@ -10,7 +10,8 @@ export function Style(mark, { strokeLinecap, strokeMiterlimit, strokeDasharray, - mixBlendMode + mixBlendMode, + className } = {}) { mark.fill = impliedString(fill, "currentColor"); mark.fillOpacity = impliedNumber(fillOpacity, 1); @@ -22,6 +23,7 @@ export function Style(mark, { mark.strokeMiterlimit = impliedNumber(strokeMiterlimit, 1); mark.strokeDasharray = string(strokeDasharray); mark.mixBlendMode = impliedString(mixBlendMode, "normal"); + mark.className = impliedString(className); } export function applyIndirectStyles(selection, mark) { @@ -34,6 +36,7 @@ export function applyIndirectStyles(selection, mark) { applyAttr(selection, "stroke-linecap", mark.strokeLinecap); applyAttr(selection, "stroke-miterlimit", mark.strokeMiterlimit); applyAttr(selection, "stroke-dasharray", mark.strokeDasharray); + applyClass(selection, mark.className); } export function applyDirectStyles(selection, mark) { @@ -44,6 +47,10 @@ export function applyAttr(selection, name, value) { if (value != null) selection.attr(name, value); } +export function applyClass(selection, value) { + if (value != null) selection.classed(value, true); +} + export function applyStyle(selection, name, value) { if (value != null) selection.style(name, value); } diff --git a/test/output/aaplCandlestick.svg b/test/output/aaplCandlestick.svg index 2e600b9d0e..deff9863bb 100644 --- a/test/output/aaplCandlestick.svg +++ b/test/output/aaplCandlestick.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 155 @@ -38,7 +38,7 @@ 190 ↑ Apple stock price ($) - + December @@ -64,7 +64,7 @@ May - + @@ -186,7 +186,7 @@ - + diff --git a/test/output/aaplChangeVolume.svg b/test/output/aaplChangeVolume.svg index 8a85f0966f..a9bbe37d22 100644 --- a/test/output/aaplChangeVolume.svg +++ b/test/output/aaplChangeVolume.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 7.1 @@ -62,7 +62,7 @@ 8.4 ↑ Volume (log₁₀) - + −6 @@ -96,10 +96,10 @@ +8 Daily change (%) → - + - + diff --git a/test/output/aaplClose.svg b/test/output/aaplClose.svg index f696f6737a..0570bbb154 100644 --- a/test/output/aaplClose.svg +++ b/test/output/aaplClose.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0 @@ -46,7 +46,7 @@ 180 ↑ Close - + 2014 @@ -63,13 +63,13 @@ 2018 Date → - + - + - + \ No newline at end of file diff --git a/test/output/aaplVolume.svg b/test/output/aaplVolume.svg index af74e5ef55..c5dc7d2d95 100644 --- a/test/output/aaplVolume.svg +++ b/test/output/aaplVolume.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0 @@ -42,7 +42,7 @@ 16 ↑ Frequency (%) - + 7.0 @@ -68,7 +68,7 @@ 8.4 Trade volume (log₁₀) → - + @@ -85,7 +85,7 @@ - + \ No newline at end of file diff --git a/test/output/anscombeQuartet.svg b/test/output/anscombeQuartet.svg index 54d583b9ff..41bf93e03b 100644 --- a/test/output/anscombeQuartet.svg +++ b/test/output/anscombeQuartet.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 4 @@ -26,7 +26,7 @@ ↑ y - + 1 @@ -40,9 +40,9 @@ 4 series - + - + 5 @@ -58,7 +58,7 @@ - + 5 @@ -74,7 +74,7 @@ - + 5 @@ -90,7 +90,7 @@ - + 5 @@ -106,8 +106,8 @@ - - + + @@ -122,8 +122,8 @@ - - + + @@ -138,8 +138,8 @@ - - + + @@ -154,8 +154,8 @@ - - + + diff --git a/test/output/ballotStatusRace.svg b/test/output/ballotStatusRace.svg index 5b14be0f62..70ca8fa69d 100644 --- a/test/output/ballotStatusRace.svg +++ b/test/output/ballotStatusRace.svg @@ -4,7 +4,7 @@ white-space: pre; } - + WHITE @@ -30,7 +30,7 @@ NATIVE HAWAIIAN or PACIFIC ISLANDER - + 0 @@ -48,9 +48,9 @@ Frequency (%) → - + - + 79.0% @@ -61,12 +61,12 @@ 20.5% - + - + 78.3% @@ -77,12 +77,12 @@ 21.1% - + - + 77.9% @@ -93,12 +93,12 @@ 0.6% - + - + 74.1% @@ -109,12 +109,12 @@ 25.1% - + - + 73.9% @@ -125,12 +125,12 @@ 0.8% - + - + 25.5% @@ -141,12 +141,12 @@ 2.3% - + - + 67.4% @@ -157,12 +157,12 @@ 1.1% - + - + 41.7% @@ -170,7 +170,7 @@ 58.3% - + diff --git a/test/output/beckerBarley.svg b/test/output/beckerBarley.svg index 21a28c57fb..d58d383026 100644 --- a/test/output/beckerBarley.svg +++ b/test/output/beckerBarley.svg @@ -4,7 +4,7 @@ white-space: pre; } - + Waseca @@ -24,7 +24,7 @@ Grand Rapids site - + 10 @@ -54,9 +54,9 @@ yield → - + - + Trebi @@ -100,7 +100,7 @@ - + Trebi @@ -144,7 +144,7 @@ - + Trebi @@ -188,7 +188,7 @@ - + Trebi @@ -232,7 +232,7 @@ - + Trebi @@ -276,7 +276,7 @@ - + Trebi @@ -320,8 +320,8 @@ - - + + @@ -345,8 +345,8 @@ - - + + @@ -370,8 +370,8 @@ - - + + @@ -395,8 +395,8 @@ - - + + @@ -420,8 +420,8 @@ - - + + @@ -445,8 +445,8 @@ - - + + diff --git a/test/output/carsParcoords.svg b/test/output/carsParcoords.svg index 83579f07c0..1e92e93183 100644 --- a/test/output/carsParcoords.svg +++ b/test/output/carsParcoords.svg @@ -4,7 +4,7 @@ white-space: pre; } - + economy (mpg) @@ -27,7 +27,7 @@ year - + 0.0 @@ -47,7 +47,7 @@ 1.0 value → - + @@ -2891,7 +2891,7 @@ - + diff --git a/test/output/covidIhmeProjectedDeaths.svg b/test/output/covidIhmeProjectedDeaths.svg index a4e1af69b4..1b5c3ad686 100644 --- a/test/output/covidIhmeProjectedDeaths.svg +++ b/test/output/covidIhmeProjectedDeaths.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 1 @@ -130,7 +130,7 @@ 4,000 ↑ Deaths per day to COVID-19 (projected) - + March @@ -212,23 +212,23 @@ Jul 12 - + cone of uncertainty - + actual data - + projected values - + - 900 + 900 \ No newline at end of file diff --git a/test/output/d3Survey2015Comfort.svg b/test/output/d3Survey2015Comfort.svg index 8bb5cefc5e..8277b969a7 100644 --- a/test/output/d3Survey2015Comfort.svg +++ b/test/output/d3Survey2015Comfort.svg @@ -4,7 +4,7 @@ white-space: pre; } - + I looked at some examples! @@ -21,7 +21,7 @@ How comfortable are you with d3 now? - + 0 @@ -67,14 +67,14 @@ 100 Frequency (%) → - + - + \ No newline at end of file diff --git a/test/output/d3Survey2015Why.svg b/test/output/d3Survey2015Why.svg index 86d3d2a659..5e2516d3f3 100644 --- a/test/output/d3Survey2015Why.svg +++ b/test/output/d3Survey2015Why.svg @@ -4,7 +4,7 @@ white-space: pre; } - + For work @@ -51,7 +51,7 @@ to work with open data Why do you want to learn d3? - + 0 @@ -97,7 +97,7 @@ 100 Frequency (%) → - + @@ -114,7 +114,7 @@ - + \ No newline at end of file diff --git a/test/output/diamondsCaratPrice.svg b/test/output/diamondsCaratPrice.svg index e087358861..5d2628d5ab 100644 --- a/test/output/diamondsCaratPrice.svg +++ b/test/output/diamondsCaratPrice.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 1,000 @@ -63,7 +63,7 @@ 19,000 ↑ price - + 0.5 @@ -95,7 +95,7 @@ 5.0 carat → - + diff --git a/test/output/diamondsCaratPriceDots.svg b/test/output/diamondsCaratPriceDots.svg index a9d2ea6983..cf60118bb1 100644 --- a/test/output/diamondsCaratPriceDots.svg +++ b/test/output/diamondsCaratPriceDots.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 1,000 @@ -78,7 +78,7 @@ 18,000 ↑ Price ($) - + 0.5 @@ -120,7 +120,7 @@ 5.0 Carats → - + diff --git a/test/output/empty.svg b/test/output/empty.svg index f19cd0536b..7bd6f2c0a3 100644 --- a/test/output/empty.svg +++ b/test/output/empty.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0.0 @@ -50,7 +50,7 @@ 1.0 - + 0.0 diff --git a/test/output/gistempAnomaly.svg b/test/output/gistempAnomaly.svg index 971398e7bf..a31cf4cabd 100644 --- a/test/output/gistempAnomaly.svg +++ b/test/output/gistempAnomaly.svg @@ -4,7 +4,7 @@ white-space: pre; } - + −0.6 @@ -46,7 +46,7 @@ +1.2 ↑ Temperature anomaly (°C) - + 1880 @@ -69,10 +69,10 @@ 2000 - + - + diff --git a/test/output/hadcrutWarmingStripes.svg b/test/output/hadcrutWarmingStripes.svg index 30edbb1803..b655e69d2a 100644 --- a/test/output/hadcrutWarmingStripes.svg +++ b/test/output/hadcrutWarmingStripes.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 1860 @@ -33,7 +33,7 @@ 2020 - + diff --git a/test/output/industryUnemployment.svg b/test/output/industryUnemployment.svg index 7017f71b9d..5612f6d26b 100644 --- a/test/output/industryUnemployment.svg +++ b/test/output/industryUnemployment.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0 @@ -38,7 +38,7 @@ 14,000 ↑ unemployed - + 2000 @@ -73,7 +73,7 @@ 2010 date → - + @@ -89,7 +89,7 @@ - + \ No newline at end of file diff --git a/test/output/letterFrequencyBar.svg b/test/output/letterFrequencyBar.svg index 4201b678a0..5c1a90999d 100644 --- a/test/output/letterFrequencyBar.svg +++ b/test/output/letterFrequencyBar.svg @@ -4,7 +4,7 @@ white-space: pre; } - + Z @@ -84,7 +84,7 @@ E - + 0 @@ -114,7 +114,7 @@ 12 Frequency (%) → - + @@ -142,7 +142,7 @@ - + \ No newline at end of file diff --git a/test/output/letterFrequencyColumn.svg b/test/output/letterFrequencyColumn.svg index 7016c87736..3501fc46cf 100644 --- a/test/output/letterFrequencyColumn.svg +++ b/test/output/letterFrequencyColumn.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0 @@ -58,7 +58,7 @@ 12 ↑ Frequency (%) - + A @@ -138,7 +138,7 @@ Z - + @@ -166,7 +166,7 @@ - + \ No newline at end of file diff --git a/test/output/letterFrequencyDot.svg b/test/output/letterFrequencyDot.svg index 4402eac905..0cd198ca8f 100644 --- a/test/output/letterFrequencyDot.svg +++ b/test/output/letterFrequencyDot.svg @@ -4,7 +4,7 @@ white-space: pre; } - + A @@ -84,7 +84,7 @@ Z letter - + diff --git a/test/output/letterFrequencyLollipop.svg b/test/output/letterFrequencyLollipop.svg index a909f62a05..3c9d8d8713 100644 --- a/test/output/letterFrequencyLollipop.svg +++ b/test/output/letterFrequencyLollipop.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0.00 @@ -58,7 +58,7 @@ 0.12 ↑ frequency - + A @@ -138,7 +138,7 @@ Z letter - + @@ -166,7 +166,7 @@ - + @@ -194,7 +194,7 @@ - + \ No newline at end of file diff --git a/test/output/metroInequality.svg b/test/output/metroInequality.svg index f3627ad1c6..26c37850b8 100644 --- a/test/output/metroInequality.svg +++ b/test/output/metroInequality.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 3.4 @@ -54,7 +54,7 @@ 5.6 ↑ Inequality - + 200k @@ -128,7 +128,7 @@ 10M Population → - + diff --git a/test/output/metroInequalityChange.svg b/test/output/metroInequalityChange.svg index 5207e86b25..45e44dc90d 100644 --- a/test/output/metroInequalityChange.svg +++ b/test/output/metroInequalityChange.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 3.5 @@ -50,7 +50,7 @@ 8.5 ↑ Inequality - + 200k @@ -128,7 +128,7 @@ 20M Population → - + @@ -325,7 +325,7 @@ - + @@ -522,5 +522,5 @@ - New YorkChicagoHoustonWashington, D.C.San FranciscoSan JoseFairfield, Conn.Binghamton, N.Y. + New YorkChicagoHoustonWashington, D.C.San FranciscoSan JoseFairfield, Conn.Binghamton, N.Y. \ No newline at end of file diff --git a/test/output/metroUnemployment.svg b/test/output/metroUnemployment.svg index 9f9f11cd52..8e044bb6bd 100644 --- a/test/output/metroUnemployment.svg +++ b/test/output/metroUnemployment.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0 @@ -33,7 +33,7 @@ 16 ↑ unemployment - + 2000 @@ -56,7 +56,7 @@ 2012 date → - + @@ -103,7 +103,7 @@ - + \ No newline at end of file diff --git a/test/output/metroUnemploymentIndex.svg b/test/output/metroUnemploymentIndex.svg index 4daa56a627..900cca1dee 100644 --- a/test/output/metroUnemploymentIndex.svg +++ b/test/output/metroUnemploymentIndex.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 4 @@ -27,7 +27,7 @@ 16 ↑ unemployment - + 0 @@ -53,7 +53,7 @@ 7,000 - + \ No newline at end of file diff --git a/test/output/metroUnemploymentRidgeline.svg b/test/output/metroUnemploymentRidgeline.svg index 502c154d1e..9a69251e4b 100644 --- a/test/output/metroUnemploymentRidgeline.svg +++ b/test/output/metroUnemploymentRidgeline.svg @@ -4,7 +4,7 @@ white-space: pre; } - + Detroit-Livonia-Dearborn, MI Met Div @@ -141,7 +141,7 @@ Bethesda-Rockville-Frederick, MD Met Div - + 2000 @@ -164,499 +164,499 @@ 2012 - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/test/output/mobyDickFaceted.svg b/test/output/mobyDickFaceted.svg index 41e41b23a1..d0dae557d2 100644 --- a/test/output/mobyDickFaceted.svg +++ b/test/output/mobyDickFaceted.svg @@ -4,7 +4,7 @@ white-space: pre; } - + lower @@ -12,7 +12,7 @@ upper - + @@ -20,9 +20,9 @@ vowel - + - + 0 @@ -54,7 +54,7 @@ - + 0 @@ -86,7 +86,7 @@ - + A @@ -168,7 +168,7 @@ - + A @@ -250,7 +250,7 @@ - + @@ -272,12 +272,12 @@ - + - + @@ -295,12 +295,12 @@ - + - + @@ -308,12 +308,12 @@ - + - + @@ -321,7 +321,7 @@ - + diff --git a/test/output/mobyDickLetterFrequency.svg b/test/output/mobyDickLetterFrequency.svg index 6f4126c130..69d3ed47ed 100644 --- a/test/output/mobyDickLetterFrequency.svg +++ b/test/output/mobyDickLetterFrequency.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0 @@ -58,7 +58,7 @@ 1,200 ↑ Frequency - + A @@ -138,7 +138,7 @@ Z - + @@ -166,7 +166,7 @@ - + \ No newline at end of file diff --git a/test/output/mobyDickLetterPosition.svg b/test/output/mobyDickLetterPosition.svg index 59b09f4214..4376271a35 100644 --- a/test/output/mobyDickLetterPosition.svg +++ b/test/output/mobyDickLetterPosition.svg @@ -4,7 +4,7 @@ white-space: pre; } - + A @@ -84,7 +84,7 @@ Z - + 0 @@ -128,7 +128,7 @@ 13 Position within word - + diff --git a/test/output/morleyBoxplot.svg b/test/output/morleyBoxplot.svg index 3b29e28239..da5e868163 100644 --- a/test/output/morleyBoxplot.svg +++ b/test/output/morleyBoxplot.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 1 @@ -21,7 +21,7 @@ 5 Expt - + 650 @@ -59,28 +59,28 @@ 1,050 Speed → - + - + - + - + diff --git a/test/output/moviesProfitByGenre.svg b/test/output/moviesProfitByGenre.svg index 5334023ca5..02945bd3f8 100644 --- a/test/output/moviesProfitByGenre.svg +++ b/test/output/moviesProfitByGenre.svg @@ -4,7 +4,7 @@ white-space: pre; } - + Adventure @@ -45,7 +45,7 @@ Other - + 0 @@ -71,10 +71,10 @@ 1,000 Profit ($M) → - + - + @@ -89,7 +89,7 @@ - + @@ -3292,7 +3292,7 @@ - + diff --git a/test/output/penguinCulmen.svg b/test/output/penguinCulmen.svg index 2770347648..88b153c330 100644 --- a/test/output/penguinCulmen.svg +++ b/test/output/penguinCulmen.svg @@ -4,7 +4,7 @@ white-space: pre; } - + Adelie @@ -15,7 +15,7 @@ Gentoo species - + FEMALE @@ -26,9 +26,9 @@ sex - + - + 35 @@ -52,7 +52,7 @@ - + 35 @@ -76,7 +76,7 @@ - + 35 @@ -100,7 +100,7 @@ - + 15 @@ -112,7 +112,7 @@ - + 15 @@ -124,7 +124,7 @@ - + 15 @@ -136,8 +136,8 @@ - - + + @@ -481,7 +481,7 @@ - + @@ -558,8 +558,8 @@ - - + + @@ -903,7 +903,7 @@ - + @@ -941,8 +941,8 @@ - - + + @@ -1286,7 +1286,7 @@ - + @@ -1348,8 +1348,8 @@ - - + + @@ -1693,7 +1693,7 @@ - + @@ -1770,8 +1770,8 @@ - - + + @@ -2115,7 +2115,7 @@ - + @@ -2153,8 +2153,8 @@ - - + + @@ -2498,7 +2498,7 @@ - + @@ -2563,8 +2563,8 @@ - - + + @@ -2908,7 +2908,7 @@ - + @@ -2917,8 +2917,8 @@ - - + + @@ -3262,11 +3262,11 @@ - + - - + + @@ -3610,7 +3610,7 @@ - + diff --git a/test/output/penguinCulmenArray.svg b/test/output/penguinCulmenArray.svg index 42d78e330a..213a6aa2e1 100644 --- a/test/output/penguinCulmenArray.svg +++ b/test/output/penguinCulmenArray.svg @@ -4,7 +4,7 @@ white-space: pre; } - + Adelie @@ -15,7 +15,7 @@ Gentoo species - + FEMALE @@ -26,9 +26,9 @@ sex - + - + 35 @@ -52,7 +52,7 @@ - + 35 @@ -76,7 +76,7 @@ - + 35 @@ -100,7 +100,7 @@ - + 15 @@ -112,7 +112,7 @@ - + 15 @@ -124,7 +124,7 @@ - + 15 @@ -136,7 +136,7 @@ - + @@ -480,7 +480,7 @@ - + @@ -557,7 +557,7 @@ - + @@ -901,7 +901,7 @@ - + @@ -939,7 +939,7 @@ - + @@ -1283,7 +1283,7 @@ - + @@ -1345,7 +1345,7 @@ - + @@ -1689,7 +1689,7 @@ - + @@ -1766,7 +1766,7 @@ - + @@ -2110,7 +2110,7 @@ - + @@ -2148,7 +2148,7 @@ - + @@ -2492,7 +2492,7 @@ - + @@ -2557,7 +2557,7 @@ - + @@ -2901,7 +2901,7 @@ - + @@ -2910,7 +2910,7 @@ - + @@ -3254,10 +3254,10 @@ - + - + @@ -3601,7 +3601,7 @@ - + diff --git a/test/output/penguinMass.svg b/test/output/penguinMass.svg index ad02943cda..9176e54b95 100644 --- a/test/output/penguinMass.svg +++ b/test/output/penguinMass.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0 @@ -46,7 +46,7 @@ 90 ↑ Frequency - + 2,500 @@ -75,7 +75,7 @@ 6,500 Body mass (g) → - + @@ -85,7 +85,7 @@ - + \ No newline at end of file diff --git a/test/output/penguinMassSex.svg b/test/output/penguinMassSex.svg index 0d727e745d..9cae315d3f 100644 --- a/test/output/penguinMassSex.svg +++ b/test/output/penguinMassSex.svg @@ -4,7 +4,7 @@ white-space: pre; } - + FEMALE @@ -15,7 +15,7 @@ sex - + 2,500 @@ -44,9 +44,9 @@ 6,500 Body mass (g) → - + - + 0 @@ -59,7 +59,7 @@ - + 0 @@ -72,7 +72,7 @@ - + 0 @@ -85,7 +85,7 @@ - + @@ -93,12 +93,12 @@ - + - + @@ -107,19 +107,19 @@ - + - + - + diff --git a/test/output/penguinMassSexSpecies.svg b/test/output/penguinMassSexSpecies.svg index e141b863af..4a893f2d11 100644 --- a/test/output/penguinMassSexSpecies.svg +++ b/test/output/penguinMassSexSpecies.svg @@ -4,7 +4,7 @@ white-space: pre; } - + Adelie @@ -15,7 +15,7 @@ Gentoo species - + FEMALE @@ -26,9 +26,9 @@ sex - + - + 0 @@ -47,7 +47,7 @@ - + 0 @@ -66,7 +66,7 @@ - + 0 @@ -85,7 +85,7 @@ - + 4,000 @@ -95,7 +95,7 @@ - + 4,000 @@ -105,7 +105,7 @@ - + 4,000 @@ -115,93 +115,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + diff --git a/test/output/randomWalk.svg b/test/output/randomWalk.svg index a97372c288..edb2fc0e92 100644 --- a/test/output/randomWalk.svg +++ b/test/output/randomWalk.svg @@ -4,7 +4,7 @@ white-space: pre; } - + −8 @@ -51,7 +51,7 @@ 20 - + 0 @@ -83,7 +83,7 @@ 450 - + \ No newline at end of file diff --git a/test/output/seattleTemperatureBand.svg b/test/output/seattleTemperatureBand.svg index 8217144b84..99faee11f8 100644 --- a/test/output/seattleTemperatureBand.svg +++ b/test/output/seattleTemperatureBand.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 20 @@ -38,7 +38,7 @@ 90 ↑ Temperature (°F) - + 2012 @@ -52,7 +52,7 @@ 2015 date → - + diff --git a/test/output/sfTemperatureBand.svg b/test/output/sfTemperatureBand.svg index ca8e09250c..737ca8e3ac 100644 --- a/test/output/sfTemperatureBand.svg +++ b/test/output/sfTemperatureBand.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 40 @@ -42,7 +42,7 @@ 80 ↑ Daily temperature range (°F) - + October @@ -71,13 +71,13 @@ October - + - + - + \ No newline at end of file diff --git a/test/output/simpsonsRatings.svg b/test/output/simpsonsRatings.svg index ec70d0e787..1012220c3e 100644 --- a/test/output/simpsonsRatings.svg +++ b/test/output/simpsonsRatings.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 1 @@ -118,7 +118,7 @@ 28 Season - + 1 @@ -220,7 +220,7 @@ 25 Episode - + @@ -819,5 +819,5 @@ - 7.4Homer's Night Out8.3Krusty Gets Busted8.2Bart Gets an "F"8.1Two Cars in Every Garage and Three Eyes on Every Fish8.0Dead Putting Society8.4Bart the Daredevil7.8Bart Gets Hit by a Car8.0Homer vs. Lisa and the 8th Commandment8.2Oh Brother, Where Art Thou?7.6Old Money8.5Lisa's Substitute8.0Blood Feud7.7Mr. Lisa Goes to Washington8.7Bart the Murderer7.7Like Father, Like Clown7.9Saturdays of Thunder8.2Burns Verkaufen der Kraftwerk8.5Radio Bart8.3Bart the Lover8.2Separate Vocations7.9Colonel Homer7.8Bart's Friend Falls in Love8.4Kamp Krusty8.2Itchy & Scratchy: The Movie8.5Lisa's First Word8.0Selma's Choice7.9The Call of the Simpsons8.8One Fish, Two Fish, Blowfish, Blue Fish7.7Marge in Chains8.4Homer's Barbershop Quartet8.6Homer Goes to College8.0Marge on the Lam8.7Boy-Scoutz 'n the Hood8.2Homer the Vigilante8.1Bart Gets Famous8.2Lisa vs. Malibu Stacy7.9Bart Gets an Elephant7.5Lady Bouvier's Lover8.6Bart of Darkness8.5Itchy & Scratchy Land8.4Lisa on Ice7.8Fear of Flying8.5And Maggie Makes Three8.5Homie the Clown7.9Homer vs. Patty and Selma8.1Two Dozen and One Greyhounds8.3'Round Springfield8.6Lemon of Troy8.3Radioactive Man8.7Bart Sells His Soul8.5Treehouse of Horror VI8.3Marge Be Not Proud8.3Team Homer7.7Bart the Fink8.2New Kid on the Block8.822 Short Films About Springfield8.0Much Apu About Nothing8.3Summer of 4 Ft. 27.7Burns, Baby Burns7.8Lisa's Date with Density9.0The Springfield Files7.8The Twisted World of Marge Simpson7.9The Itchy & Scratchy & Poochie Show8.9Homer's Phobia8.7Homer vs. the Eighteenth Amendment7.7The Canine Mutiny8.0In Marge We Trust7.8The Secret War of Lisa Simpson7.4The Principal and the Pauper7.7Bart Star8.0Lisa the Skeptic5.1All Singing, All Dancing8.2The Joy of Sect7.8This Little Wiggy7.9The Trouble with Trillions8.5Trash of the Titans8.1Natural Born Kissers8.2The Wizard of Evergreen Terrace8.0Treehouse of Horror IX8.2Mayored to the Mob7.7Wild Barts Can't Be Broken7.5Make Room for Lisa7.6Mom and Pop Art7.2Monty Can't Buy Me Love7.9Thirty Minutes over Tokyo7.5Guess Who's Coming to Criticize Dinner?7.6E-I-E-I-(Annoyed Grunt)7.1Eight Misbehavin'7.3The Mansion Family7.9Alone Again, Natura-diddily7.3Pygmoelian6.6Kill the Alligator and Run7.3It's a Mad, Mad, Mad, Mad Marge7.6Treehouse of Horror XI7.1Insane Clown Poppy7.7The Computer Wore Menace Shoes7.3Pokey Mom7.2Day of the Jackanapes7.4Hungry, Hungry Homer6.9Simpson Safari7.3Children of a Lesser Clod7.5Treehouse of Horror XII7.2Homer the Moe7.7The Blunder Years7.5Half-Decent Proposal6.5The Lastest Gun in the West7.0Blame It on Lisa5.6Gump Roast8.7Homer's Triple Bypass7.0Bart vs. Lisa vs. the Third Grade7.3The Great Louse Detective7.3The Dad Who Knew Too Little6.8Pray Anything7.3C.E.D'oh7.2Three Gays of the Condo6.9Brake My Wife, Please7.7Moe Baby Blues7.3My Mother the Carjacker7.2The Fat and the Furriest7.2'Tis the Fifteenth Season7.3I, (Annoyed Grunt)-bot7.1Smart & Smarter6.9Co-Dependents' Day7.0Catch 'Em If You Can7.3The Way We Weren't7.2Fraudcast News7.1Sleeping with the Enemy7.1Fat Man and Little Boy7.0Mommie Beerest7.1There's Something About Marrying7.0Goo Goo Gai Pan6.9The Seven-Beer Snitch7.2The Heartbroke Kid7.3Thank God It's Doomsday6.3The Bonfire of the Manatees8.3Duffless6.7The Last of the Red Hat Mamas6.9Simpsons Christmas Stories6.4My Fair Laddy7.0Bart Has Two Mommies6.6Million-Dollar Abie6.7Regarding Margie7.5The Mook, the Chef, the Wife and Her Homer6.8Please Homer, Don't Hammer 'Em6.9G.I. (Annoyed Grunt)7.0Ice Cream of Margie (with the Light Blue Hair)6.4Kill Gil, Volumes I & II7.0Little Big Girl7.1Yokel Chords7.2Homerazzi7.1Crook and Ladder8.124 Minutes6.7The Homer of Seville6.7Little Orphan Millie7.1Funeral for a Fiend6.9E Pluribus Wiggum7.7The Debarted6.7Smoke on the Daughter6.9Apocalypse Cow7.1Mona Leaves-a6.9Lost Verizon7.1Treehouse of Horror XIX7.2So It's Come to This: A Simpsons Clip Show7.2Gone Maggie Gone7.0Father Knows Worst6.3Four Great Women and a Manicure7.1Homer the Whopper6.8Rednecks and Broomsticks6.8Thursdays with Abie7.1Million Dollar Maybe7.1Postcards from the Wedge5.7The Greatest Story Ever D'ohed6.9Moe Letter Blues6.6Judge Me Tender6.8Loan-a Lisa7.2Lisa Simpson, This Isn't Your Life6.9The Fight Before Christmas7.0Donnie Fatso7.0Homer the Father7.2Angry Dad: The Movie6.1A Midsummer's Nice Dream7.0The Great Simpsina7.3500 Keys7.2The Falcon and the D'ohman6.6Treehouse of Horror XXII7.2The Food Wife6.2The Ten-Per-Cent Solution6.1Politically Inept, with Homer Simpson5.7Moe Goes from Rags to Riches6.7Pranks and Greens8.5$pringfield (or, How I Learned to Stop Worrying and Love Legalized Gambling)7.1Beware My Cheating Bart6.9The Spy Who Learned Me4.5Lisa Goes Gaga6.3Penny-Wiseguys7.2To Cur with Love7.0A Test Before Trying6.5Love is a Many-Splintered Thing6.2Gorgeous Grampa6.5What Animated Women Want6.8Whiskey Business7.0Homerland6.7YOLO6.5The Kid Is All Right6.5White Christmas Blues7.2Specs and the City6.7The Man Who Grew Too Much7.0The War of Art6.5Luca$7.7Brick Like Me6.7The Yellow Badge of Cowardge6.9The Wreck of the Relationship6.3Opposites A-Frack6.9Blazed and Confused6.8The Man Who Came to Be Dinner5.8The Musk Who Fell to Earth6.7Peeping Mom7.5Life on the Fast Lane7.8The Crepes of Wrath7.9Some Enchanted Evening8.3Simpson and Delilah8.2Treehouse of Horror7.5Dancin' Homer7.7Bart vs. Thanksgiving8.1Itchy & Scratchy & Marge8.2The Way We Was7.5Principal Charming7.5Bart's Dog Gets an "F"7.9The War of the Simpsons6.8Bull-E6.7Cue Detective6.8Friend with Benefit8.4Barthood6.8Teenage Mutant Milk-Caused Hurdles6.6Gal of Constant Sorrow7.3The Marge-ian Chronicles7.1Fland Canyon6.4Simprovised8.2Simpsons Roasting on an Open Fire7.8Bart the Genius7.8There's No Disgrace Like Home7.6Moaning Lisa7.7The Telltale Head8.4Three Men and a Comic Book8.6Stark Raving Dad8.2When Flanders Failed8.5Homer Defined8.1The Front8.1Brother from the Same Planet8.7Treehouse of Horror IV9.0Marge vs. the Monorail8.3I Love Lisa8.4The Last Temptation of Homer7.7Dog of Death8.2Treehouse of Horror II7.9Lisa's Pony7.8Marge Gets a Job8.2I Married Marge9.0Last Exit to Springfield8.0Lisa the Greek7.7The Otto Show8.9Rosebud8.0Homer Alone8.6Homer at the Bat8.1Whacking Day7.8Lisa the Beauty Queen8.2Krusty Gets Kancelled8.2Black Widower8.1A Streetcar Named Marge8.4Treehouse of Horror III8.8Mr. Plow8.3Homer and Apu8.5Homer Loves Flanders8.4Burns' Heir8.0Sideshow Bob's Last Gleaming8.0Grampa vs. Sexual Inadequacy8.2A Fish Called Selma8.6Bart's Comet8.3Home Sweet Homediddly-Dum-Doodily7.7Scenes from the Class Struggle in Springfield8.5Bart vs. Australia9.0King-Size Homer8.0Secrets of a Successful Marriage8.1Lisa's Rival8.5A Star Is Burns8.3Lisa's Wedding6.0Another Simpsons Clip Show8.5Lisa the Vegetarian8.1The PTA Disbands8.3Sideshow Bob Roberts8.0Bart's Girlfriend8.9Who Shot Mr. Burns? (Part Two)8.2The Springfield Connection8.9Homer the Smithers9.0Homer Badman8.9Homer the Great7.5The Simpsons 138th Episode Spectacular8.7Two Bad Neighbors8.1Lisa the Iconoclast8.5Mother Simpson8.3Raging Abe Simpson and His Grumbling Grandson in "The Curse of the Flying Hellfish"8.0Homerpalooza8.1Lisa's Sax7.7Simpsoncalifragilisticexpiala(Annoyed Grunt)cious8.3Treehouse of Horror VII8.2Brother from Another Series8.0The Homer They Fall8.2Bart After Dark7.7Lost Our Lisa7.9Girly Edition7.5Realty Bites7.9The Old Man and the Lisa8.0A Milhouse Divided8.1My Sister, My Sitter7.5The Last Temptation of Krust8.2The Cartridge Family8.2Grade School Confidential8.8Hurricane Neddy8.3Simpson Tide7.3The Simpsons Spin-Off Showcase9.1The City of New York vs. Homer Simpson7.6Miracle on Evergreen Terrace8.3King of the Hill8.1Das Bus7.6Lard of the Dance7.7Bart Carny8.0Lisa the Simpson8.0The Day the Violence Died7.3When You Dish Upon a Star8.0Lisa Gets an "A"7.3Homer Simpson in: "Kidney Trouble"7.2Lisa the Tree Hugger6.9Sunday, Cruddy Sunday7.6Maximum Homerdrive7.3Hello Gutter, Hello Fadder7.3Simpsons Bible Stories6.9Tennis the Menace7.8Viva Ned Flanders7.7Treehouse of Horror X7.2Last Tap Dance in Springfield7.5Brother's Little Helper7.3The Old Man and the "C" Student7.0Bart to the Future7.3Beyond Blunderdome7.3They Saved Lisa's Brain7.7Homer to the Max7.1Take My Wife, Sleaze7.3Little Big Mom6.9Faith Off7.5Worst Episode Ever6.6Saddlesore Galactica7.9Behind the Laughter7.3The Great Money Caper7.3Missionary: Impossible7.4Days of Wine and D'oh'ses8.6Bart on the Road6.5Bye, Bye, Nerdie7.3I'm Goin' to Praiseland7.0Simpsons Tall Tales7.7I Am Furious (Yellow)6.9The Sweetest Apu7.0The President Wore Pearls7.1The Parent Rap7.7Weekend at Burnsie's7.1Large Marge7.1The Bart Wants What It Wants6.9Mr. Spritz Goes to Washington7.2A Hunka Hunka Burns in Love7.3How I Spent My Strummer Vacation7.1She of Little Faith6.8Helter Shelter7.3Tales from the Public Domain6.9The Strong Arms of the Ma6.9Brawl in the Family7.3Jaws Wired Shut7.2Little Girl in the Big Ten6.8Old Yeller-Belly7.1Special Edna6.6Barting Over7.0Dude, Where's My Ranch?6.6The Bart of War7.4Treehouse of Horror XIV8.6Mountain of Madness6.6Today I Am a Clown6.7Marge vs. Singles, Seniors, Childless Couples and Teens and Gays7.3Diatribe of a Mad Housewife7.0All's Fair in Oven War6.2Bart-Mangled Banner6.8A Star Is Torn6.9See Homer Run7.3Milhouse Doesn't Live Here Anymore6.9The Ziff Who Came to Dinner6.4Homer and Ned's Hail Mary Pass6.9The Girl Who Slept Too Little6.9The Wandering Juvie7.0Milhouse of Sand and Fog7.3Treehouse of Horror XVI6.7Homer's Paternity Coot6.6She Used to Be My Girl6.7My Big Fat Geek Wedding7.3Future-Drama7.0The Italian Bob7.3Simple Simpson7.0We're on the Road to D'ohwhere6.9On a Clear Day I Can't See My Sister7.1Home Away from Homer7.4Treehouse of Horror XV7.3Midnight Rx6.8Pranksta Rap7.6Dumbbell Indemnity7.2Girls Just Want to Have Sums7.1The Monkey Suit6.3The Boys of Bummer7.1Treehouse of Horror XVIII6.3Rome-Old and Juli-Eh6.1Papa Don't Leech6.6Marge and Homer Turn a Couple Play6.6The Wife Aquatic7.0Double, Double, Boy in Trouble7.1Treehouse of Horror XVII6.3That '90s Show6.6The Burns and the Bees6.8Moe'N'a Lisa7.2The Haw-Hawed Couple7.1Husbands and Knives6.4All About Lisa7.3You Kent Always Say What You Want6.6Dangerous Curves7.3Springfield Up7.0Revenge Is a Dish Best Served Three Times7.3Marge Gamer7.0Stop! Or My Dog Will Shoot7.3Dial 'N' for Nerder6.6Love, Springfieldian Style7.1MyPods and Boomsticks7.2Sex, Pies and Idiot Scrapes7.0Any Given Sundance7.5Bart the Mother7.0Take My Life, Please7.0No Loan Again, Naturally6.3Elementary School Musical7.1Waverly Hills, 9-0-2-1-D'oh7.2The Bob Next Door7.2The Good, the Sad and the Drugly6.7Once Upon a Time in Springfield6.6Bart Gets a 'Z'7.2Eeny Teeny Maya Moe6.9Chief of Hearts6.3The Great Wife Hope7.2To Surveil with Love6.7The Scorpion's Tale6.9The Blue and the Gray6.6The Color Yellow6.5The Fool Monty7.2O Brother, Where Bart Thou?6.8Boy Meets Curl6.5Love Is a Many Strangled Thing6.7The Devil Wears Nada7.2Homer Scissorhands7.0Stealing First Base6.4How Munched is That Birdie in the Window?6.6The Real Housewives of Fat Tony6.3Moms I'd Like to Forget6.8MoneyBart6.9Flaming Moe7.3I'm with Cupid7.0Bart Stops to Smell the Roosevelts6.7Replaceable You7.0The D'oh-cial Network7.1Married to the Blob6.7Ned 'n Edna's Blend6.7Gone Abie Gone6.9Homer Goes to Prep School6.5Four Regrettings and a Funeral7.0Yellow Subterfuge7.4A Totally Fun Thing That Bart Will Never Do Again7.8The Book Job6.5The Daughter Also Rises7.6Steal This Episode6.9Exit Through the Kwik-E-Mart7.0Black Eyed, Please7.1Them, Robot7.1Treehouse of Horror XXIV6.5Pulpit Friction6.6The Changing of the Guardian6.4Moonshine River6.5A Tree Grows in Springfield7.3Treehouse of Horror XXIII7.2The Day the Earth Stood Cool7.0Hardly Kirk-ing6.3The Fabulous Faker Boy7.1Labor Pains7.0Dangers on a Train7.3Marge Simpson in: "Screaming Yellow Honkers"6.6The Winter of His Content5.8What to Expect When Bart's Expecting6.5Covercraft6.3Walking Big & Tall6.8Treehouse of Horror XXVI6.6The Girl Code6.7Pay Pal5.9Every Man's Dream6.2Let's Go Fly a Coot6.7Waiting for Duffman6.3Lisa with an 'S'7.3Bart's New Friend6.3Love Is in the N2-O2-Ar-CO2-Ne-He-CH46.9The Kids Are All Fight6.9Sky Police5.8Clown in the Dumps6.5Super Franchise Me6.7Much Apu About Something6.8I Won't Be Home for Christmas7.3Treehouse of Horror XXV6.7My Fare Lady6.5The Burns Cage6.9Mathlete's Feat6.3Lisa the Veterinarian7.1Paths of Glory7.2Puffless8.0Brush with Greatness8.8Flaming Moe's8.1Bart the General8.2Brother, Can You Spare Two Dimes?9.0Homer the Heretic9.0Cape Feare7.7Bart's Inner Child8.8Deep Space Homer8.4Sweet Seymour Skinner's Baadasssss Song8.2The Boy Who Knew Too Much9.0Treehouse of Horror V9.1Who Shot Mr. Burns? (Part One)9.2You Only Move Twice8.5El Viaje Misterioso de Nuestro Jomer (The Mysterious Voyage of Homer)9.2Homer's Enemy8.1Treehouse of Horror VIII7.7The Two Mrs. Nahasapeemapetilons7.6D'oh-in' in the Wind8.0Skinner's Sense of Snow8.0HOMR8.6Trilogy of Error8.0Poppa's Got a Brand New Badge7.6Treehouse of Horror XIII8.2Holidays of Future Passed7.9Simpsorama7.5Halloween of Horror6.7To Courier with Love7.5Homer's Odyssey7.3Grift of the Magi7.4A Tale of Two Springfields7.2Homer vs. Dignity6.5The Old Man and the Key7.1'Scuse Me While I Miss the Sky7.1Margical History Tour7.0Mobile Homer7.4Don't Fear the Roofer7.4The Seemingly Never-Ending Story6.5Homer Simpson, This Is Your Wife6.7The Wettest Stories Ever Told7.2Midnight Towboy7.1Homer and Lisa Exchange Cross Words7.2Coming to Homerica7.3Treehouse of Horror XX6.7American History X-cellent6.9The Squirt and the Whale7.1Treehouse of Horror XXI6.8The Man in the Blue Flannel Pants7.1Dark Knight Court7.2The Saga of Carl6.9You Don't Have to Live Like a Referee6.6The Princess Guide6.4How Lisa Got Her Marge Back6.9Orange Is the New Yellow6.6Monty Burns' Fleeing Circus7.2New Kids on the Blecch7.0Sweets and Sour Marge7.1The Frying Game7.3I'm Spelling As Fast As I Can7.1A Star Is Born-Again7.1The Regina Monologues7.2The Father, the Son, and the Holy Guest Star6.9Marge's Son Poisoning7.2Kiss Kiss, Bang Bangalore6.7Jazzy and the Pussycats6.7He Loves to Fly and He D'ohs6.9I Don't Wanna Know Why the Caged Bird Sings8.2Eternal Moonshine of the Simpson Mind5.9Lisa the Drama Queen7.0How the Test Was Won6.3In the Name of the Grandfather6.8Wedding for Disaster7.0The Ned-Liest Catch7.0At Long Last Leave7.3How I Wet Your Mother6.9Adventures in Baby-Getting6.4Diggs7.0Days of Future Future + 7.4Homer's Night Out8.3Krusty Gets Busted8.2Bart Gets an "F"8.1Two Cars in Every Garage and Three Eyes on Every Fish8.0Dead Putting Society8.4Bart the Daredevil7.8Bart Gets Hit by a Car8.0Homer vs. Lisa and the 8th Commandment8.2Oh Brother, Where Art Thou?7.6Old Money8.5Lisa's Substitute8.0Blood Feud7.7Mr. Lisa Goes to Washington8.7Bart the Murderer7.7Like Father, Like Clown7.9Saturdays of Thunder8.2Burns Verkaufen der Kraftwerk8.5Radio Bart8.3Bart the Lover8.2Separate Vocations7.9Colonel Homer7.8Bart's Friend Falls in Love8.4Kamp Krusty8.2Itchy & Scratchy: The Movie8.5Lisa's First Word8.0Selma's Choice7.9The Call of the Simpsons8.8One Fish, Two Fish, Blowfish, Blue Fish7.7Marge in Chains8.4Homer's Barbershop Quartet8.6Homer Goes to College8.0Marge on the Lam8.7Boy-Scoutz 'n the Hood8.2Homer the Vigilante8.1Bart Gets Famous8.2Lisa vs. Malibu Stacy7.9Bart Gets an Elephant7.5Lady Bouvier's Lover8.6Bart of Darkness8.5Itchy & Scratchy Land8.4Lisa on Ice7.8Fear of Flying8.5And Maggie Makes Three8.5Homie the Clown7.9Homer vs. Patty and Selma8.1Two Dozen and One Greyhounds8.3'Round Springfield8.6Lemon of Troy8.3Radioactive Man8.7Bart Sells His Soul8.5Treehouse of Horror VI8.3Marge Be Not Proud8.3Team Homer7.7Bart the Fink8.2New Kid on the Block8.822 Short Films About Springfield8.0Much Apu About Nothing8.3Summer of 4 Ft. 27.7Burns, Baby Burns7.8Lisa's Date with Density9.0The Springfield Files7.8The Twisted World of Marge Simpson7.9The Itchy & Scratchy & Poochie Show8.9Homer's Phobia8.7Homer vs. the Eighteenth Amendment7.7The Canine Mutiny8.0In Marge We Trust7.8The Secret War of Lisa Simpson7.4The Principal and the Pauper7.7Bart Star8.0Lisa the Skeptic5.1All Singing, All Dancing8.2The Joy of Sect7.8This Little Wiggy7.9The Trouble with Trillions8.5Trash of the Titans8.1Natural Born Kissers8.2The Wizard of Evergreen Terrace8.0Treehouse of Horror IX8.2Mayored to the Mob7.7Wild Barts Can't Be Broken7.5Make Room for Lisa7.6Mom and Pop Art7.2Monty Can't Buy Me Love7.9Thirty Minutes over Tokyo7.5Guess Who's Coming to Criticize Dinner?7.6E-I-E-I-(Annoyed Grunt)7.1Eight Misbehavin'7.3The Mansion Family7.9Alone Again, Natura-diddily7.3Pygmoelian6.6Kill the Alligator and Run7.3It's a Mad, Mad, Mad, Mad Marge7.6Treehouse of Horror XI7.1Insane Clown Poppy7.7The Computer Wore Menace Shoes7.3Pokey Mom7.2Day of the Jackanapes7.4Hungry, Hungry Homer6.9Simpson Safari7.3Children of a Lesser Clod7.5Treehouse of Horror XII7.2Homer the Moe7.7The Blunder Years7.5Half-Decent Proposal6.5The Lastest Gun in the West7.0Blame It on Lisa5.6Gump Roast8.7Homer's Triple Bypass7.0Bart vs. Lisa vs. the Third Grade7.3The Great Louse Detective7.3The Dad Who Knew Too Little6.8Pray Anything7.3C.E.D'oh7.2Three Gays of the Condo6.9Brake My Wife, Please7.7Moe Baby Blues7.3My Mother the Carjacker7.2The Fat and the Furriest7.2'Tis the Fifteenth Season7.3I, (Annoyed Grunt)-bot7.1Smart & Smarter6.9Co-Dependents' Day7.0Catch 'Em If You Can7.3The Way We Weren't7.2Fraudcast News7.1Sleeping with the Enemy7.1Fat Man and Little Boy7.0Mommie Beerest7.1There's Something About Marrying7.0Goo Goo Gai Pan6.9The Seven-Beer Snitch7.2The Heartbroke Kid7.3Thank God It's Doomsday6.3The Bonfire of the Manatees8.3Duffless6.7The Last of the Red Hat Mamas6.9Simpsons Christmas Stories6.4My Fair Laddy7.0Bart Has Two Mommies6.6Million-Dollar Abie6.7Regarding Margie7.5The Mook, the Chef, the Wife and Her Homer6.8Please Homer, Don't Hammer 'Em6.9G.I. (Annoyed Grunt)7.0Ice Cream of Margie (with the Light Blue Hair)6.4Kill Gil, Volumes I & II7.0Little Big Girl7.1Yokel Chords7.2Homerazzi7.1Crook and Ladder8.124 Minutes6.7The Homer of Seville6.7Little Orphan Millie7.1Funeral for a Fiend6.9E Pluribus Wiggum7.7The Debarted6.7Smoke on the Daughter6.9Apocalypse Cow7.1Mona Leaves-a6.9Lost Verizon7.1Treehouse of Horror XIX7.2So It's Come to This: A Simpsons Clip Show7.2Gone Maggie Gone7.0Father Knows Worst6.3Four Great Women and a Manicure7.1Homer the Whopper6.8Rednecks and Broomsticks6.8Thursdays with Abie7.1Million Dollar Maybe7.1Postcards from the Wedge5.7The Greatest Story Ever D'ohed6.9Moe Letter Blues6.6Judge Me Tender6.8Loan-a Lisa7.2Lisa Simpson, This Isn't Your Life6.9The Fight Before Christmas7.0Donnie Fatso7.0Homer the Father7.2Angry Dad: The Movie6.1A Midsummer's Nice Dream7.0The Great Simpsina7.3500 Keys7.2The Falcon and the D'ohman6.6Treehouse of Horror XXII7.2The Food Wife6.2The Ten-Per-Cent Solution6.1Politically Inept, with Homer Simpson5.7Moe Goes from Rags to Riches6.7Pranks and Greens8.5$pringfield (or, How I Learned to Stop Worrying and Love Legalized Gambling)7.1Beware My Cheating Bart6.9The Spy Who Learned Me4.5Lisa Goes Gaga6.3Penny-Wiseguys7.2To Cur with Love7.0A Test Before Trying6.5Love is a Many-Splintered Thing6.2Gorgeous Grampa6.5What Animated Women Want6.8Whiskey Business7.0Homerland6.7YOLO6.5The Kid Is All Right6.5White Christmas Blues7.2Specs and the City6.7The Man Who Grew Too Much7.0The War of Art6.5Luca$7.7Brick Like Me6.7The Yellow Badge of Cowardge6.9The Wreck of the Relationship6.3Opposites A-Frack6.9Blazed and Confused6.8The Man Who Came to Be Dinner5.8The Musk Who Fell to Earth6.7Peeping Mom7.5Life on the Fast Lane7.8The Crepes of Wrath7.9Some Enchanted Evening8.3Simpson and Delilah8.2Treehouse of Horror7.5Dancin' Homer7.7Bart vs. Thanksgiving8.1Itchy & Scratchy & Marge8.2The Way We Was7.5Principal Charming7.5Bart's Dog Gets an "F"7.9The War of the Simpsons6.8Bull-E6.7Cue Detective6.8Friend with Benefit8.4Barthood6.8Teenage Mutant Milk-Caused Hurdles6.6Gal of Constant Sorrow7.3The Marge-ian Chronicles7.1Fland Canyon6.4Simprovised8.2Simpsons Roasting on an Open Fire7.8Bart the Genius7.8There's No Disgrace Like Home7.6Moaning Lisa7.7The Telltale Head8.4Three Men and a Comic Book8.6Stark Raving Dad8.2When Flanders Failed8.5Homer Defined8.1The Front8.1Brother from the Same Planet8.7Treehouse of Horror IV9.0Marge vs. the Monorail8.3I Love Lisa8.4The Last Temptation of Homer7.7Dog of Death8.2Treehouse of Horror II7.9Lisa's Pony7.8Marge Gets a Job8.2I Married Marge9.0Last Exit to Springfield8.0Lisa the Greek7.7The Otto Show8.9Rosebud8.0Homer Alone8.6Homer at the Bat8.1Whacking Day7.8Lisa the Beauty Queen8.2Krusty Gets Kancelled8.2Black Widower8.1A Streetcar Named Marge8.4Treehouse of Horror III8.8Mr. Plow8.3Homer and Apu8.5Homer Loves Flanders8.4Burns' Heir8.0Sideshow Bob's Last Gleaming8.0Grampa vs. Sexual Inadequacy8.2A Fish Called Selma8.6Bart's Comet8.3Home Sweet Homediddly-Dum-Doodily7.7Scenes from the Class Struggle in Springfield8.5Bart vs. Australia9.0King-Size Homer8.0Secrets of a Successful Marriage8.1Lisa's Rival8.5A Star Is Burns8.3Lisa's Wedding6.0Another Simpsons Clip Show8.5Lisa the Vegetarian8.1The PTA Disbands8.3Sideshow Bob Roberts8.0Bart's Girlfriend8.9Who Shot Mr. Burns? (Part Two)8.2The Springfield Connection8.9Homer the Smithers9.0Homer Badman8.9Homer the Great7.5The Simpsons 138th Episode Spectacular8.7Two Bad Neighbors8.1Lisa the Iconoclast8.5Mother Simpson8.3Raging Abe Simpson and His Grumbling Grandson in "The Curse of the Flying Hellfish"8.0Homerpalooza8.1Lisa's Sax7.7Simpsoncalifragilisticexpiala(Annoyed Grunt)cious8.3Treehouse of Horror VII8.2Brother from Another Series8.0The Homer They Fall8.2Bart After Dark7.7Lost Our Lisa7.9Girly Edition7.5Realty Bites7.9The Old Man and the Lisa8.0A Milhouse Divided8.1My Sister, My Sitter7.5The Last Temptation of Krust8.2The Cartridge Family8.2Grade School Confidential8.8Hurricane Neddy8.3Simpson Tide7.3The Simpsons Spin-Off Showcase9.1The City of New York vs. Homer Simpson7.6Miracle on Evergreen Terrace8.3King of the Hill8.1Das Bus7.6Lard of the Dance7.7Bart Carny8.0Lisa the Simpson8.0The Day the Violence Died7.3When You Dish Upon a Star8.0Lisa Gets an "A"7.3Homer Simpson in: "Kidney Trouble"7.2Lisa the Tree Hugger6.9Sunday, Cruddy Sunday7.6Maximum Homerdrive7.3Hello Gutter, Hello Fadder7.3Simpsons Bible Stories6.9Tennis the Menace7.8Viva Ned Flanders7.7Treehouse of Horror X7.2Last Tap Dance in Springfield7.5Brother's Little Helper7.3The Old Man and the "C" Student7.0Bart to the Future7.3Beyond Blunderdome7.3They Saved Lisa's Brain7.7Homer to the Max7.1Take My Wife, Sleaze7.3Little Big Mom6.9Faith Off7.5Worst Episode Ever6.6Saddlesore Galactica7.9Behind the Laughter7.3The Great Money Caper7.3Missionary: Impossible7.4Days of Wine and D'oh'ses8.6Bart on the Road6.5Bye, Bye, Nerdie7.3I'm Goin' to Praiseland7.0Simpsons Tall Tales7.7I Am Furious (Yellow)6.9The Sweetest Apu7.0The President Wore Pearls7.1The Parent Rap7.7Weekend at Burnsie's7.1Large Marge7.1The Bart Wants What It Wants6.9Mr. Spritz Goes to Washington7.2A Hunka Hunka Burns in Love7.3How I Spent My Strummer Vacation7.1She of Little Faith6.8Helter Shelter7.3Tales from the Public Domain6.9The Strong Arms of the Ma6.9Brawl in the Family7.3Jaws Wired Shut7.2Little Girl in the Big Ten6.8Old Yeller-Belly7.1Special Edna6.6Barting Over7.0Dude, Where's My Ranch?6.6The Bart of War7.4Treehouse of Horror XIV8.6Mountain of Madness6.6Today I Am a Clown6.7Marge vs. Singles, Seniors, Childless Couples and Teens and Gays7.3Diatribe of a Mad Housewife7.0All's Fair in Oven War6.2Bart-Mangled Banner6.8A Star Is Torn6.9See Homer Run7.3Milhouse Doesn't Live Here Anymore6.9The Ziff Who Came to Dinner6.4Homer and Ned's Hail Mary Pass6.9The Girl Who Slept Too Little6.9The Wandering Juvie7.0Milhouse of Sand and Fog7.3Treehouse of Horror XVI6.7Homer's Paternity Coot6.6She Used to Be My Girl6.7My Big Fat Geek Wedding7.3Future-Drama7.0The Italian Bob7.3Simple Simpson7.0We're on the Road to D'ohwhere6.9On a Clear Day I Can't See My Sister7.1Home Away from Homer7.4Treehouse of Horror XV7.3Midnight Rx6.8Pranksta Rap7.6Dumbbell Indemnity7.2Girls Just Want to Have Sums7.1The Monkey Suit6.3The Boys of Bummer7.1Treehouse of Horror XVIII6.3Rome-Old and Juli-Eh6.1Papa Don't Leech6.6Marge and Homer Turn a Couple Play6.6The Wife Aquatic7.0Double, Double, Boy in Trouble7.1Treehouse of Horror XVII6.3That '90s Show6.6The Burns and the Bees6.8Moe'N'a Lisa7.2The Haw-Hawed Couple7.1Husbands and Knives6.4All About Lisa7.3You Kent Always Say What You Want6.6Dangerous Curves7.3Springfield Up7.0Revenge Is a Dish Best Served Three Times7.3Marge Gamer7.0Stop! Or My Dog Will Shoot7.3Dial 'N' for Nerder6.6Love, Springfieldian Style7.1MyPods and Boomsticks7.2Sex, Pies and Idiot Scrapes7.0Any Given Sundance7.5Bart the Mother7.0Take My Life, Please7.0No Loan Again, Naturally6.3Elementary School Musical7.1Waverly Hills, 9-0-2-1-D'oh7.2The Bob Next Door7.2The Good, the Sad and the Drugly6.7Once Upon a Time in Springfield6.6Bart Gets a 'Z'7.2Eeny Teeny Maya Moe6.9Chief of Hearts6.3The Great Wife Hope7.2To Surveil with Love6.7The Scorpion's Tale6.9The Blue and the Gray6.6The Color Yellow6.5The Fool Monty7.2O Brother, Where Bart Thou?6.8Boy Meets Curl6.5Love Is a Many Strangled Thing6.7The Devil Wears Nada7.2Homer Scissorhands7.0Stealing First Base6.4How Munched is That Birdie in the Window?6.6The Real Housewives of Fat Tony6.3Moms I'd Like to Forget6.8MoneyBart6.9Flaming Moe7.3I'm with Cupid7.0Bart Stops to Smell the Roosevelts6.7Replaceable You7.0The D'oh-cial Network7.1Married to the Blob6.7Ned 'n Edna's Blend6.7Gone Abie Gone6.9Homer Goes to Prep School6.5Four Regrettings and a Funeral7.0Yellow Subterfuge7.4A Totally Fun Thing That Bart Will Never Do Again7.8The Book Job6.5The Daughter Also Rises7.6Steal This Episode6.9Exit Through the Kwik-E-Mart7.0Black Eyed, Please7.1Them, Robot7.1Treehouse of Horror XXIV6.5Pulpit Friction6.6The Changing of the Guardian6.4Moonshine River6.5A Tree Grows in Springfield7.3Treehouse of Horror XXIII7.2The Day the Earth Stood Cool7.0Hardly Kirk-ing6.3The Fabulous Faker Boy7.1Labor Pains7.0Dangers on a Train7.3Marge Simpson in: "Screaming Yellow Honkers"6.6The Winter of His Content5.8What to Expect When Bart's Expecting6.5Covercraft6.3Walking Big & Tall6.8Treehouse of Horror XXVI6.6The Girl Code6.7Pay Pal5.9Every Man's Dream6.2Let's Go Fly a Coot6.7Waiting for Duffman6.3Lisa with an 'S'7.3Bart's New Friend6.3Love Is in the N2-O2-Ar-CO2-Ne-He-CH46.9The Kids Are All Fight6.9Sky Police5.8Clown in the Dumps6.5Super Franchise Me6.7Much Apu About Something6.8I Won't Be Home for Christmas7.3Treehouse of Horror XXV6.7My Fare Lady6.5The Burns Cage6.9Mathlete's Feat6.3Lisa the Veterinarian7.1Paths of Glory7.2Puffless8.0Brush with Greatness8.8Flaming Moe's8.1Bart the General8.2Brother, Can You Spare Two Dimes?9.0Homer the Heretic9.0Cape Feare7.7Bart's Inner Child8.8Deep Space Homer8.4Sweet Seymour Skinner's Baadasssss Song8.2The Boy Who Knew Too Much9.0Treehouse of Horror V9.1Who Shot Mr. Burns? (Part One)9.2You Only Move Twice8.5El Viaje Misterioso de Nuestro Jomer (The Mysterious Voyage of Homer)9.2Homer's Enemy8.1Treehouse of Horror VIII7.7The Two Mrs. Nahasapeemapetilons7.6D'oh-in' in the Wind8.0Skinner's Sense of Snow8.0HOMR8.6Trilogy of Error8.0Poppa's Got a Brand New Badge7.6Treehouse of Horror XIII8.2Holidays of Future Passed7.9Simpsorama7.5Halloween of Horror6.7To Courier with Love7.5Homer's Odyssey7.3Grift of the Magi7.4A Tale of Two Springfields7.2Homer vs. Dignity6.5The Old Man and the Key7.1'Scuse Me While I Miss the Sky7.1Margical History Tour7.0Mobile Homer7.4Don't Fear the Roofer7.4The Seemingly Never-Ending Story6.5Homer Simpson, This Is Your Wife6.7The Wettest Stories Ever Told7.2Midnight Towboy7.1Homer and Lisa Exchange Cross Words7.2Coming to Homerica7.3Treehouse of Horror XX6.7American History X-cellent6.9The Squirt and the Whale7.1Treehouse of Horror XXI6.8The Man in the Blue Flannel Pants7.1Dark Knight Court7.2The Saga of Carl6.9You Don't Have to Live Like a Referee6.6The Princess Guide6.4How Lisa Got Her Marge Back6.9Orange Is the New Yellow6.6Monty Burns' Fleeing Circus7.2New Kids on the Blecch7.0Sweets and Sour Marge7.1The Frying Game7.3I'm Spelling As Fast As I Can7.1A Star Is Born-Again7.1The Regina Monologues7.2The Father, the Son, and the Holy Guest Star6.9Marge's Son Poisoning7.2Kiss Kiss, Bang Bangalore6.7Jazzy and the Pussycats6.7He Loves to Fly and He D'ohs6.9I Don't Wanna Know Why the Caged Bird Sings8.2Eternal Moonshine of the Simpson Mind5.9Lisa the Drama Queen7.0How the Test Was Won6.3In the Name of the Grandfather6.8Wedding for Disaster7.0The Ned-Liest Catch7.0At Long Last Leave7.3How I Wet Your Mother6.9Adventures in Baby-Getting6.4Diggs7.0Days of Future Future \ No newline at end of file diff --git a/test/output/simpsonsViews.svg b/test/output/simpsonsViews.svg index 01f5064b5d..bc050499d5 100644 --- a/test/output/simpsonsViews.svg +++ b/test/output/simpsonsViews.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0 @@ -74,7 +74,7 @@ 32 ↑ Viewers (U.S., millions) - + 4.5 @@ -116,10 +116,10 @@ 9.0 IMDB rating → - + - + Homer's Night Out S1E10 diff --git a/test/output/travelersYearOverYear.svg b/test/output/travelersYearOverYear.svg index d1f069f274..d88451fc0b 100644 --- a/test/output/travelersYearOverYear.svg +++ b/test/output/travelersYearOverYear.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0.0 @@ -70,7 +70,7 @@ 3.0 ↑ Travelers per day (millions) - + March @@ -102,15 +102,15 @@ December - + - + - + - 2019 - 2020 + 2019 + 2020 \ No newline at end of file diff --git a/test/output/uniformRandomDifference.svg b/test/output/uniformRandomDifference.svg index 70b2ecb222..df99bb0ab7 100644 --- a/test/output/uniformRandomDifference.svg +++ b/test/output/uniformRandomDifference.svg @@ -4,7 +4,7 @@ white-space: pre; } - + 0 @@ -50,7 +50,7 @@ 10 ↑ Frequency (%) - + −1.0 @@ -85,7 +85,7 @@ 1.0 Difference of two uniform random variables - + @@ -107,7 +107,7 @@ - + \ No newline at end of file diff --git a/test/output/usPopulationStateAge.svg b/test/output/usPopulationStateAge.svg index c4ccb67d55..460027f407 100644 --- a/test/output/usPopulationStateAge.svg +++ b/test/output/usPopulationStateAge.svg @@ -4,7 +4,7 @@ white-space: pre; } - + <10 @@ -42,7 +42,7 @@ ≥80 Age - + 0 @@ -88,10 +88,10 @@ 20 Percent (%) → - + - + diff --git a/test/output/usPresidentialElection2020.svg b/test/output/usPresidentialElection2020.svg index dfcc14e723..b32585ff9e 100644 --- a/test/output/usPresidentialElection2020.svg +++ b/test/output/usPresidentialElection2020.svg @@ -4,7 +4,7 @@ white-space: pre; } - + @@ -178,7 +178,7 @@ ↑ Total number of votes - + −80 @@ -216,10 +216,10 @@ +80 ← Biden · Vote margin (%) · Trump → - + - + ED 1, Alaska 3,429 votes for Trump diff --git a/test/output/usRetailSales.svg b/test/output/usRetailSales.svg index 23cf699640..0afccd59ab 100644 --- a/test/output/usRetailSales.svg +++ b/test/output/usRetailSales.svg @@ -4,7 +4,7 @@ white-space: pre; } </style> - <g transform="translate(40,0)" fill="none" text-anchor="end"> + <g class="axisY" transform="translate(40,0)" fill="none" text-anchor="end"> <g class="tick" opacity="1" transform="translate(0,366.5)"> <line stroke="currentColor" x2="-6"></line> <line stroke="currentColor" x2="580" stroke-opacity="0.1"></line><text fill="currentColor" x="-9" dy="0.32em">0</text> @@ -54,7 +54,7 @@ <line stroke="currentColor" x2="580" stroke-opacity="0.1"></line><text fill="currentColor" x="-9" dy="0.32em">550</text> </g><text fill="currentColor" transform="translate(-40,20)" dy="-1em" text-anchor="start">U.S. retail monthly sales (in billions, seasonally-adjusted)</text> </g> - <g transform="translate(0,366)" fill="none" text-anchor="middle"> + <g class="axisX" transform="translate(0,366)" fill="none" text-anchor="middle"> <g class="tick" opacity="1" transform="translate(100.5,0)"> <line stroke="currentColor" y2="6"></line><text fill="currentColor" y="9" dy="0.71em">1995</text> </g> @@ -74,13 +74,13 @@ <line stroke="currentColor" y2="6"></line><text fill="currentColor" y="9" dy="0.71em">2020</text> </g> </g> - <g fill="none" stroke="#bab0ab" stroke-width="1.5" transform="translate(0.5,0.5)"> + <g fill="none" stroke="#bab0ab" stroke-width="1.5" class="line" transform="translate(0.5,0.5)"> <path d="M40,280.35947106767225L41.7023291043363,279.948165308262L43.29483052452187,272.7769353038655L44.99715962885817,270.2418174439447L46.6445748911191,266.4979404105651L48.3469039954554,267.3199668571815L49.99431925771634,266.60208326287665L51.69664836205264,266.3247590381818L53.39897746638894,269.6871689945551L55.04639272864988,264.3992864148263L56.74872183298618,265.63261862085295L58.39613709524711,243.81469106158477L60.09846619958341,276.3546518313098L61.80079530391971,278.1882681186377L63.33838288202992,266.2808786228821L65.04071198636622,262.76049917142956L66.68812724862715,259.38170719334437L68.39045635296345,259.7889174473266L70.03787161522439,258.5327674253441L71.74020071956069,258.74573370759913L73.44252982389699,262.204680577632L75.08994508615793,259.0856606581217L76.79227419049423,256.33231086610976L78.43968945275515,234.62788731441714L80.14201855709146,271.5991849572187L81.84434766142776,270.72625722885454L83.38193523953797,253.47949879941828L85.08426434387427,255.0884473604112L86.7316796061352,251.95363049139297L88.4340087104715,250.18729750752476L90.08142397273244,252.873363996077L91.78375307706874,247.5884067773682L93.48608218140504,252.52290574588255L95.13349744366597,250.1814467854848L96.83582654800227,247.51117724644055L98.48324181026321,224.93265582197571L100.18557091459951,263.4110994622747L101.8879000189358,265.2868409482905L103.42548759704601,248.23725185160134L105.1278167013823,251.30303020054788L106.77523196364325,242.85517264702898L108.47756106797955,242.0559640163685L110.12497633024049,246.9898779126788L111.82730543457679,240.64945043795868L113.52963453891307,247.74403598363148L115.17704980117402,246.61952720754843L116.87937890551031,241.8535290337854L118.52679416777124,221.1998951604721L120.22912327210754,257.75052588859955L121.93145237644387,253.44380939497447L123.52395379662943,241.9003348101052L125.22628290096571,242.12968311407215L126.87369816322666,233.22605431363928L128.57602726756295,238.74035983631504L130.2234425298239,238.3893165139166L131.92577163416018,233.73740741993305L133.62810073849647,243.57364131353782L135.27551600075742,235.7260678413203L136.97784510509373,234.9713246981636L138.62526036735466,215.00398052013932L140.32758947169097,248.75796611315906L142.02991857602728,250.41547566708374L143.56750615413748,234.28093949744664L145.26983525847376,237.09162636545028L146.9172505207347,228.98194054584192L148.619579625071,232.9750583381244L150.26699488733195,230.5434982583111L151.96932399166823,228.36059386519668L153.67165309600455,235.64181744394466L155.31906835826547,230.11639554939293L157.02139746260178,232.43737698265076L158.6688127248627,207.4138388176807L160.37114182919902,244.3909871825222L162.0734709335353,246.725425276472L163.61105851164552,231.25026548073996L165.31338761598184,228.79881294599073L166.96080287824276,222.64151307112175L168.66313198257907,223.20318238695933L170.31054724484,224.7454327166965L172.01287634917628,225.31236768237005L173.7152054535126,230.70614833102235L175.36262071577352,223.10547532889174L177.06494982010983,225.00286448645542L178.71236508237075,196.93227028306674L180.41469418670707,238.3805404308566L182.11702329104338,236.90381818796715L183.65461086915357,217.6549426764517L185.35693997348986,219.27383746491262L187.0043552357508,212.6449693936217L188.7066843400871,213.3441306773986L190.35409960234804,212.68124387026953L192.05642870668433,210.90379451452532L193.75875781102062,217.4472420440326L195.40617307328156,215.02796848050326L197.10850217761785,211.47892049105482L198.7559174398788,180.1465487503805L200.4582465442151,227.67605938651968L202.16057564855137,219.39260712232408L203.75307706873696,202.46354289965842L205.45540617307327,211.2969630356116L207.1028214353342,200.01150529270518L208.80515053967048,201.42620988197098L210.45256580193143,207.3600121749129L212.15489490626774,199.8722581081538L213.85722401060406,208.5248909330718L215.50463927286498,207.5045250093003L217.2069683772013,204.2234400892827L218.8543836394622,178.80146775339034L220.55671274379856,219.29548513646048L222.25904184813484,221.03548987114883L223.79662942624503,201.91708546112483L225.49895853058132,205.1490243160066L227.14637379284227,192.81102167810886L228.84870289717855,197.56882884101594L230.4961181594395,202.70751800872532L232.1984472637758,193.5423619331056L233.90077636811208,212.75554804017725L235.54819163037303,195.3952856031655L237.2505207347093,197.77009367919106L238.89793599697026,175.1482769116304L240.60026510130655,216.45671480266495L242.3025942056429,217.92641617910647L243.84018178375308,199.1017180154892L245.54251088808937,199.40244512834386L247.18992615035032,190.2431397747641L248.8922552546866,196.99955358652645L250.53967051694752,193.15036355642732L252.24199962128384,186.23305488856573L253.94432872562015,206.16470966214615L255.5917439878811,197.76833846257907L257.2940730922174,195.91658493692722L258.94148835447834,168.82715681964223L260.6438174588146,209.00874564577768L262.3461465631509,214.43646048226182L263.88373414126113,194.1683891913829L265.5860632455974,193.8419189015523L267.23347850785836,183.2298792654469L268.93580761219465,189.89443674118164L270.5832228744556,184.67266732050462L272.2855519787919,180.49934728939093L273.9878810831282,194.0531299671954L275.6352963453891,188.11698738543745L277.3376254497254,189.73822246271433L278.98504071198636,156.79163651121107L280.68736981632264,201.32557746288342L282.38969892065893,200.74986641414995L283.98220034084454,179.31691636511212L285.6845294451809,181.59050694984614L287.33194470744183,173.8576076296121L289.0342738117781,178.16607933984915L290.68168907403907,174.09631708884305L292.38401817837536,175.0809936081707L294.08634728271164,182.56582231390985L295.7337625449726,178.93720450471778L297.4360916493089,176.2850722039974L299.0835069115698,139.48637086137512L300.7858360159061,194.42114038350974L302.4881651202424,193.36742534411036L304.02575269835256,167.57802766410768L305.7280818026889,169.63104602793467L307.3754970649498,163.9464844938956L309.07782616928614,160.67183536812203L310.72524143154703,160.1558016841963L312.4275705358834,157.88923196591023L314.12989964021966,171.00187020190063L315.7773149024806,169.33733978152793L317.4796440068169,164.85334641009163L319.1270592690778,128.6900334810105L320.82938837341413,179.62758970543473L322.5317174777504,182.25748926240323L324.06930505586064,154.20795765835842L325.7716341601969,160.2494132368359L327.4190494224579,147.44042747472014L329.12137852679416,151.50375393148227L330.76879378905505,154.08509249551898L332.4711228933914,146.13279109878584L334.17345199772774,163.43981196523387L335.8208672599887,161.9291555345125L337.523196364325,157.17134837160538L339.1706116265859,121.44508437891038L340.8729407309222,173.58320876593731L342.5752698352585,176.92689641178262L344.11285741336866,147.09991545199367L345.81518651770494,156.23113733978153L347.4626017799659,136.9372112685583L349.1649308843022,145.63899015861207L350.81234614656313,148.14602455274104L352.5146752508994,138.98262369373327L354.2170043552357,158.92188440596573L355.86441961749665,150.2949947580236L357.56674872183294,144.95855118536304L359.2141639840939,116.71419053738711L360.9164930884302,165.53144509452468L362.61882219276646,164.79776455071192L364.21132361295207,147.82247962393046L365.91365271728836,150.15516250126822L367.5610679795493,133.16700598599883L369.2633970838856,144.54607528154486L370.91081234614654,141.49258344888227L372.61314145048283,141.99808583313603L374.3154705548191,160.907619466333L375.96288581708006,161.3142446481112L377.66521492141635,169.68194730968244L379.31263018367736,141.19419662484358L381.01495928801364,184.51762318644526L382.71728839235,190.8223612567216L384.25487597046015,173.7885691095404L385.95720507479643,173.0115932226318L387.6046203370574,162.55401264838176L389.30694944139367,164.49820758226522L390.9543647036546,162.35333288241063L392.6566938079909,159.24016368494028L394.3590229123272,176.05864926105042L396.00643817458814,167.88870100443032L397.7087672789244,167.44814163482025L399.3561825411854,131.8067131117048L401.05851164552166,181.96144272718047L402.76084074985795,184.08642497209917L404.29842832796817,154.97674253441107L406.0007574323045,157.51946633298385L407.6481726945654,152.0946768575197L409.3505017989017,156.1907673577057L410.99791706116264,154.23955155737428L412.7002461654989,153.83702188102404L414.40257526983527,163.5656024890933L416.04999053209616,158.177087490277L417.7523196364325,151.96420575602826L419.3997348986934,116.37133822584462L421.10206400302974,169.65737427711457L422.804393107366,168.64695458081096L424.34198068547624,139.5255706990429L426.04430978981253,143.2191315228787L427.6917250520735,136.6522811052115L429.39405415640977,138.58243430619905L431.0414694186707,140.9332544218607L432.743798523007,135.12524265277827L434.4461276273433,146.58329669586394L436.09354288960424,143.97562988264735L437.7958719939405,137.1080523521255L439.4432872562015,101.65209171767728L441.14561636053776,158.19171429537693L442.84794546487404,148.11852615915316L444.4404468850596,123.69293178666845L446.14277598939594,136.09646251141396L447.79019125165684,121.08409482904392L449.4925203559932,131.4006730021306L451.13993561825407,134.29619533971388L452.8422647225904,121.48545436098617L454.5445938269267,140.39089248875513L456.1920090891876,132.32216172342658L457.89433819352394,125.49729446379655L459.54175345578483,95.63696438837972L461.24408256012117,146.25448611721737L462.94641166445746,147.19060164361323L464.4839992425677,119.26393520240794L466.18632834690396,126.97226149007406L467.8337436091649,110.21345327877168L469.5360727135012,123.36236599140992L471.18348797576215,118.85965030944568L472.88581708009843,111.49066590009805L474.5881461844348,134.18678683756636L476.23556144669567,122.78548479826848L477.937890551032,118.05459095674522L479.58530581329296,86.97321519158575L481.28763491762925,141.8857519699686L482.98996402196553,143.66144610910075L484.52755160007575,112.86792586830802L486.22988070441204,113.60219148432478L487.877295966673,97.31670668605634L489.5796250710093,112.49874530758565L491.2270403332702,106.64860833981534L492.9293694376065,101.91829957049612L494.6316985419428,119.4365315025872L496.27911380420375,109.47099665189897L497.98144290854003,109.05676553146874L499.628858170801,72.10067976597114L501.33118727513727,133.12546585951503L503.03351637947355,138.9551253001454L504.5711039575838,105.07534918326623L506.2734330619201,108.78061145118198L507.920848324181,94.0672156650546L509.62317742851735,102.8380330751801L511.27059269077824,97.14001488044909L512.9729217951145,98.09251242855696L514.6752508994508,112.79128140958436L516.3226661617118,104.71084920017583L518.0249952660481,104.60553620345632L519.672410528309,61.98185599783555L521.3747396326453,130.79044269336129L523.0770687369817,123.08796712773513L524.6695701571673,96.17055023842536L526.3718992615035,101.87792958842032L528.0193145237645,90.76740843450911L529.7216436281008,93.90749095336331L531.3690588903618,95.58255267340797L533.071387994698,89.82719740268527L534.7737170990343,103.37863979167372L536.4211323612952,100.77623862829316L538.1234614656315,92.21195170617874L539.7708767278924,49.76496330616526L541.4732058322288,119.06091514762085L543.1755349365651,121.13558118299571L544.7131225146753,83.01988230917516L546.4154516190116,92.97781122121143L548.0628668812726,75.89253272007844L549.7651959856088,83.40837025262945L551.4126112478697,87.20139335114477L553.1149403522061,78.39956711420743L554.8172694565424,90.59247184551387L556.4646847188033,86.85035002874629L558.1670138231397,73.88749027697926L559.8144290854005,38.444986303222926L561.5167581897368,105.81780581013899L563.2190872940731,110.8979877574487L564.7566748721833,68.00809969900911L566.4590039765195,84.27837261997362L568.1064192387805,56.344100240116354L569.8087483431168,68.61247928573844L571.4561636053778,69.65273766444588L573.1584927097141,60.61454225709356L574.8608218140504,85.98736852785011L576.5082370763114,70.42503297372247L578.2105661806476,61.203124894314975L579.8579814429086,38.77555209848151L581.5603105472449,97.9848591430214L583.2626396515811,106.39878250870844L584.8002272296912,64.2817748317495L586.5025563340276,67.95661334505732L588.1499715962885,45.889445026886264L589.8523007006248,62.77287361764006L591.4997159628857,54.68132503635566L593.2020450672221,46.991135987013465L594.9043741715584,75.760891474179L596.5517894338193,58.52173898339477L598.2541185381556,52.78042544556799L599.9015338004166,20L601.6038629047528,84.07593763739048L603.3061920090893,85.24257161216138L604.8986934292747,84.28012783658562L606.6010225336111,125.91854645067467L608.248437795872,68.65401941222227L609.9507669002082,51.80335486489226L611.5981821624691,43.01381514423892L613.3005112668055,44.01019310764652L615.0028403711417,53.56383712672054"></path> </g> - <g fill="none" stroke="currentColor" stroke-width="1.5" transform="translate(0.5,0.5)"> + <g fill="none" stroke="currentColor" stroke-width="1.5" class="line" transform="translate(0.5,0.5)"> <path d="M40,269.9925766850418L41.7023291043363,269.92353816497007L43.29483052452187,270.21139368933683L44.99715962885817,269.6333423517873L46.6445748911191,269.10502215157766L48.3469039954554,268.83296357671884L49.99431925771634,268.1425783760019L51.69664836205264,267.82488416923127L53.39897746638894,266.88876864283543L55.04639272864988,266.17205519293856L56.74872183298618,265.9508978998275L58.39613709524711,264.7210761270249L60.09846619958341,263.54917650241805L61.80079530391971,264.34721498867054L63.33838288202992,265.1885488180189L65.04071198636622,262.5890730156583L66.68812724862715,261.6079069295546L68.39045635296345,261.76529135242987L70.03787161522439,260.25229463289253L71.74020071956069,260.2733572322365L73.44252982389699,259.6496702627752L75.08994508615793,258.9996550441341L76.79227419049423,257.9096655280868L78.43968945275515,256.9431262470831L80.14201855709146,257.6785620075079L81.84434766142776,255.9631303053874L83.38193523953797,253.9124522303764L85.08426434387427,253.87734789813655L86.7316796061352,254.2927491629747L88.4340087104715,253.0050052419764L90.08142397273244,252.64635598092596L91.78375307706874,251.2304812472522L93.48608218140504,250.29319557644834L95.13349744366597,249.23655517602896L96.83582654800227,249.14294362338933L98.48324181026321,248.57483851330787L100.18557091459951,248.06524062362607L101.8879000189358,249.92225979911396L103.42548759704601,248.84104636612668L105.1278167013823,248.38176468598866L106.77523196364325,247.23853359937772L108.47756106797955,245.76766207852816L110.12497633024049,246.1070039568467L111.82730543457679,245.1703033582468L113.52963453891307,244.88654333930805L115.17704980117402,245.37215326862594L116.87937890551031,243.9164936250803L118.52679416777124,242.90139335114475L120.22912327210754,243.8960160979404L121.93145237644387,241.96001217491295L123.52395379662943,240.85832121478575L125.22628290096571,240.39903953464776L126.87369816322666,239.44946734755993L128.57602726756295,239.58461902668336L130.2234425298239,239.43015996482802L131.92577163416018,239.4149480875241L133.62810073849647,237.71940884033953L135.27551600075742,236.66393858432815L136.97784510509373,236.72069058811593L138.62526036735466,236.11923636240655L140.32758947169097,235.2474787784504L142.02991857602728,234.11185363049137L143.56750615413748,233.67948527173732L145.26983525847376,234.58400689911733L146.9172505207347,235.570438635057L148.619579625071,233.74033278095305L150.26699488733195,232.19223172917583L151.96932399166823,231.83767797355338L153.67165309600455,231.25085055294392L155.31906835826547,231.52934492204673L157.02139746260178,231.1759613108323L158.6688127248627,230.74242280767018L160.37114182919902,230.50488349284728L162.0734709335353,230.4481314890595L163.61105851164552,229.6296154756671L165.31338761598184,227.93115086746252L166.96080287824276,227.29400723730936L168.66313198257907,226.18471033853024L170.31054724484,227.0974229767662L172.01287634917628,227.70121749129154L173.7152054535126,226.43102573641312L175.36262071577352,224.09132199262743L177.06494982010983,223.0721262132639L178.71236508237075,221.76214954851366L180.41469418670707,221.56439514356254L182.11702329104338,220.01278365856132L183.65461086915357,219.34170584057625L185.35693997348986,218.28272515134094L187.0043552357508,216.96163211471472L188.7066843400871,216.54389056106058L190.35409960234804,215.3696506476377L192.05642870668433,213.74666035374884L193.75875781102062,213.11068686800365L195.40617307328156,212.81756569380096L197.10850217761785,210.97634346782104L198.7559174398788,208.11065981264164L200.4582465442151,209.17490615171292L202.16057564855137,206.84865906861918L203.75307706873696,204.99281003753927L205.45540617307327,207.41851939531267L207.1028214353342,207.21491426832156L208.80515053967048,206.02838783861475L210.45256580193143,206.49176502418075L212.15489490626774,206.32326422942947L213.85722401060406,203.61437992492137L215.50463927286498,203.97770976360377L217.2069683772013,204.50310460279348L218.8543836394622,204.64235178734486L220.55671274379856,202.8619770705807L222.25904184813484,202.89766647502452L223.79662942624503,204.25678920491055L225.49895853058132,201.70704453988978L227.14637379284227,201.30451486353954L228.84870289717855,201.9451689269167L230.4961181594395,202.4699786939024L232.1984472637758,201.3530758564713L233.90077636811208,204.4709256315736L235.54819163037303,193.67283303459703L237.2505207347093,198.01933443809395L238.89793599697026,200.0120903649092L240.60026510130655,200.12734958909672L242.3025942056429,199.22282796171672L243.84018178375308,199.68620514728264L245.54251088808937,197.01184010281034L247.18992615035032,199.2830903987284L248.8922552546866,197.86663059285064L250.53967051694752,196.10380804220634L252.24199962128384,194.77861950015222L253.94432872562015,197.2593256451013L255.5917439878811,196.57713145524028L257.2940730922174,195.4608136900132L258.94148835447834,194.01978085156753L260.6438174588146,193.25860191416686L262.3461465631509,195.64628157868037L263.88373414126113,192.62847915046163L265.5860632455974,193.0526564983598L267.23347850785836,192.57874801312184L268.93580761219465,190.69715580506613L270.5832228744556,188.8711454563901L272.2855519787919,185.90950995975513L273.9878810831282,187.00710541445434L275.6352963453891,187.6647265717474L277.3376254497254,185.489428117285L278.98504071198636,186.14470898576212L280.68736981632264,185.06408062497883L282.38969892065893,183.81261118062838L283.98220034084454,180.58359768676655L285.6845294451809,182.5728431803578L287.33194470744183,179.38302952416382L289.0342738117781,181.7268287733775L290.68168907403907,179.62583448882276L292.38401817837536,179.37542358551187L294.08634728271164,176.1036998207582L295.7337625449726,174.8335080658798L297.4360916493089,174.1922689302986L299.0835069115698,171.829747370557L300.7858360159061,173.6891068348608L302.4881651202424,171.15574419155195L304.02575269835256,170.8310291183334L305.7280818026889,169.0746423619331L307.3754970649498,170.2804761743718L309.07782616928614,164.73633196929217L310.72524143154703,163.22801582738677L312.4275705358834,165.14061686225438L314.12989964021966,164.76090500186004L315.7773149024806,164.67840982109644L317.4796440068169,162.7897967465927L319.1270592690778,162.74299097027296L320.82938837341413,156.93556427339442L322.5317174777504,158.47137880888766L324.06930505586064,157.9102945652541L325.7716341601969,156.88173763062667L327.4190494224579,157.30240454530085L329.12137852679416,156.61494470560382L330.76879378905505,155.95556833169874L332.4711228933914,154.96972166796309L334.17345199772774,155.9818965808786L335.8208672599887,156.27384761067333L337.523196364325,155.80344955865942L339.1706116265859,153.1916872400149L340.8729407309222,153.2583854712706L342.5752698352585,153.03020731171162L344.11285741336866,151.18605972471167L345.81518651770494,151.7541648347932L347.4626017799659,148.97682708241737L349.1649308843022,150.60332780953024L350.81234614656313,149.74912239169404L352.5146752508994,148.72875646792247L354.2170043552357,147.84471236768235L355.86441961749665,146.4288376340086L357.56674872183294,144.33954479353375L359.2141639840939,147.00864418817002L360.9164930884302,146.45984646082047L362.61882219276646,148.4508471710237L364.21132361295207,147.91726132097807L365.91365271728836,148.0184788122696L367.5610679795493,145.99178869762252L369.2633970838856,145.74664344414757L370.91081234614654,146.57569075721193L372.61314145048283,148.18697960702087L374.3154705548191,151.43705570022658L375.96288581708006,159.49876559910717L377.66521492141635,167.45574757347222L379.31263018367736,171.70278670228953L381.01495928801364,168.87220737935L382.71728839235,169.66381007135848L384.25487597046015,173.07419594845953L385.95720507479643,172.1351550610437L387.6046203370574,170.43610538063513L389.30694944139367,167.1439040887416L390.9543647036546,166.7729683114072L392.6566938079909,163.174189184619L394.3590229123272,167.94896344144206L396.00643817458814,166.10774121546214L397.7087672789244,164.51575974838516L399.3561825411854,163.5228922182015L401.05851164552166,163.45443877033378L402.76084074985795,163.10456559234333L404.29842832796817,158.52871588487946L406.0007574323045,156.97125367783832L407.6481726945654,158.87566370184993L409.3505017989017,158.81013561500222L410.99791706116264,158.54568297879536L412.7002461654989,157.27724644052893L414.40257526983527,155.7841421759275L416.04999053209616,153.31338225844632L417.7523196364325,151.07665122256412L419.3997348986934,149.96267374615306L421.10206400302974,148.4713246981636L422.804393107366,146.56515945754L424.34198068547624,144.56713788088874L426.04430978981253,143.22030166728666L427.6917250520735,143.50757211944943L429.39405415640977,141.80208664479693L431.0414694186707,142.04021103182384L432.743798523007,141.36386756400282L434.4461276273433,139.16224086036053L436.09354288960424,137.8680611451182L437.7958719939405,136.8921607088505L439.4432872562015,136.74706280225914L441.14561636053776,134.67649227231226L442.84794546487404,131.83772193851667L444.4404468850596,130.91564814501675L446.14277598939594,132.02084953836788L447.79019125165684,132.34380939497447L449.4925203559932,134.2294971084582L451.13993561825407,133.45837194358955L452.8422647225904,130.71204301802564L454.5445938269267,128.8316209543779L456.1920090891876,128.50456559234334L457.89433819352394,127.53627109472761L459.54175345578483,126.82657851127871L461.24408256012117,124.81100476850756L462.94641166445746,121.87862288207242L464.4839992425677,123.65314687679665L466.18632834690396,124.79345260238766L467.8337436091649,123.69995265311644L469.5360727135012,122.8194189861003L471.18348797576215,121.17185565964354L472.88581708009843,121.70485643748518L474.5881461844348,121.77857553518886L476.23556144669567,120.69326659677364L477.937890551032,119.94437417565695L479.58530581329296,118.58115594034294L481.28763491762925,121.1332408941797L482.98996402196553,117.53504683959554L484.52755160007575,114.92562480976697L486.22988070441204,112.28460888092256L487.877295966673,111.8733031215124L489.5796250710093,111.24201021339917L491.2270403332702,110.82836416517299L492.9293694376065,108.77300551253002L494.6316985419428,109.32472860089959L496.27911380420375,108.63317325577464L497.98144290854003,107.8210930366262L499.628858170801,109.2703168859278L501.33118727513727,110.8441611146809L503.03351637947355,111.29466671175894L504.5711039575838,107.46829449761574L506.2734330619201,107.04704251073758L507.920848324181,104.93727214312285L509.62317742851735,104.53240217795661L511.27059269077824,102.85383002468804L512.9729217951145,102.73213500625653L514.6752508994508,103.45528425039737L516.3226661617118,104.1825289999662L518.0249952660481,103.16099293178665L519.672410528309,102.14530758564713L521.3747396326453,103.69750414285231L523.0770687369817,101.22264871994318L524.6695701571673,102.05520646623151L526.3718992615035,100.94239913422841L528.0193145237645,99.97761506983666L529.7216436281008,97.40037201122797L531.3690588903618,97.69817376306267L533.071387994698,97.43898677669183L534.7737170990343,95.7592444790152L536.4211323612952,94.97115222023062L538.1234614656315,95.115079982414L539.7708767278924,92.14174304169907L541.4732058322288,88.77406743548985L543.1755349365651,88.92033548648925L544.7131225146753,89.44046467584295L546.4154516190116,87.89470391288174L548.0628668812726,89.11926003584836L549.7651959856088,88.20888768642834L551.4126112478697,88.06437485204097L553.1149403522061,87.70865095201053L554.8172694565424,81.62214481382532L556.4646847188033,81.28338800771077L558.1670138231397,78.93549325306905L559.8144290854005,77.56174371808312L561.5167581897368,77.79343231086611L563.2190872940731,76.49749737901182L564.7566748721833,76.53728228888363L566.4590039765195,75.82349420000676L568.1064192387805,72.08839324968716L569.8087483431168,72.80101119415603L571.4561636053778,71.22073117115899L573.1584927097141,71.78181541479253L574.8608218140504,72.05562920626332L576.5082370763114,68.76225776996176L578.2105661806476,68.50775136122289L579.8579814429086,74.90259055091482L581.5603105472449,70.51747438195409L583.2626396515811,70.72224965335319L584.8002272296912,66.09081808650953L586.5025563340276,64.63632858737192L588.1499715962885,63.56857181507659L589.8523007006248,62.700324664344386L591.4997159628857,60.69118671581722L593.2020450672221,59.14308566404004L594.9043741715584,61.15982955121919L596.5517894338193,59.66379992559776L598.2541185381556,58.82890189049342L599.9015338004166,58.56386418208258L601.6038629047528,56.13639960769726L603.3061920090893,57.5072237816632L604.8986934292747,82.85489194764787L606.6010225336111,124.5020866447969L608.248437795872,80.35721870878284L609.9507669002082,55.93396462511416L611.5981821624691,52.44634921708547L613.3005112668055,48.06942405898069L615.0028403711417,43.07875815888263"></path> </g> - <g stroke="currentColor" transform="translate(0,0.5)"> + <g stroke="currentColor" class="ruleY" transform="translate(0,0.5)"> <line x1="40" x2="620" y1="366" y2="366"></line> </g> </svg> \ No newline at end of file diff --git a/test/output/usStatePopulationChange.svg b/test/output/usStatePopulationChange.svg index 37525b4642..0f852f4d5d 100644 --- a/test/output/usStatePopulationChange.svg +++ b/test/output/usStatePopulationChange.svg @@ -4,7 +4,7 @@ white-space: pre; } </style> - <g transform="translate(100,0)" fill="none" text-anchor="end"> + <g class="axisY" transform="translate(100,0)" fill="none" text-anchor="end"> <g class="tick" opacity="1" transform="translate(0,48.5)"> <line stroke="currentColor" x2="-6"></line> <line stroke="currentColor" x2="520" stroke-opacity="0.1"></line><text fill="currentColor" x="-9" dy="0.32em">Texas</text> @@ -214,7 +214,7 @@ <line stroke="currentColor" x2="520" stroke-opacity="0.1"></line><text fill="currentColor" x="-9" dy="0.32em">Puerto Rico</text> </g> </g> - <g transform="translate(0,30)" fill="none" text-anchor="middle"> + <g class="axisX" transform="translate(0,30)" fill="none" text-anchor="middle"> <g class="tick" opacity="1" transform="translate(110.5,0)"> <line stroke="currentColor" y2="-6"></line> <line stroke="currentColor" y2="750" stroke-opacity="0.1"></line><text fill="currentColor" y="-9" dy="0em">−0.5</text> @@ -252,7 +252,7 @@ <line stroke="currentColor" y2="750" stroke-opacity="0.1"></line><text fill="currentColor" y="-9" dy="0em">+3.5</text> </g><text fill="currentColor" transform="translate(360,-30)" dy="1em" text-anchor="middle">← decrease · Change in population, 2010–2019 (millions) · increase →</text> </g> - <g transform="translate(0,0)"> + <g class="bar" transform="translate(0,0)"> <rect x="168" width="261" y="70" height="13" fill="rgb(78, 121, 167)"></rect> <rect x="168" width="446" y="42" height="13" fill="rgb(78, 121, 167)"></rect> <rect x="168" width="310" y="56" height="13" fill="rgb(78, 121, 167)"></rect> @@ -306,7 +306,7 @@ <rect x="167" width="1" y="700" height="13" fill="rgb(225, 87, 89)"></rect> <rect x="168" width="1" y="658" height="13" fill="rgb(78, 121, 167)"></rect> </g> - <g stroke="currentColor" transform="translate(0.5,0)"> + <g stroke="currentColor" class="ruleX" transform="translate(0.5,0)"> <line x1="168" x2="168" y1="30" y2="780"></line> </g> </svg> \ No newline at end of file diff --git a/test/output/wordLengthMobyDick.svg b/test/output/wordLengthMobyDick.svg index 766266326d..dcded25629 100644 --- a/test/output/wordLengthMobyDick.svg +++ b/test/output/wordLengthMobyDick.svg @@ -4,7 +4,7 @@ white-space: pre; } </style> - <g transform="translate(40,0)" fill="none" text-anchor="end"> + <g class="axisY" transform="translate(40,0)" fill="none" text-anchor="end"> <g class="tick" opacity="1" transform="translate(0,366.5)"> <line stroke="currentColor" x2="-6"></line> <line stroke="currentColor" x2="580" stroke-opacity="0.1"></line><text fill="currentColor" x="-9" dy="0.32em">0</text> @@ -50,7 +50,7 @@ <line stroke="currentColor" x2="580" stroke-opacity="0.1"></line><text fill="currentColor" x="-9" dy="0.32em">20</text> </g><text fill="currentColor" transform="translate(-40,20)" dy="-1em" text-anchor="start">↑ Frequency (%)</text> </g> - <g transform="translate(0,366)" fill="none" text-anchor="middle"> + <g class="axisX" transform="translate(0,366)" fill="none" text-anchor="middle"> <g class="tick" opacity="1" transform="translate(63.5,0)"> <line stroke="currentColor" y2="6"></line><text fill="currentColor" y="9" dy="0.71em">1</text> </g> @@ -94,7 +94,7 @@ <line stroke="currentColor" y2="6"></line><text fill="currentColor" y="9" dy="0.71em">14</text> </g><text fill="currentColor" transform="translate(640,30)" dy="-0.32em" text-anchor="end">Word length →</text> </g> - <g transform="translate(0,0)"> + <g class="groupX" transform="translate(0,0)"> <rect x="168" width="37" y="41.86056644880169" height="324.1394335511983"></rect> <rect x="86" width="37" y="46.38344226579521" height="319.6165577342048"></rect> <rect x="291" width="37" y="255.94335511982567" height="110.05664488017433"></rect>