BeeswarmEdit
A Beeswarm chart adapted from this D3 example. For an alternate algorithm, see this example, which uses accurate-beeswarm-plot. You can also use a force layout for a Beeswarm, as in this example.
This chart is an example of using the slot prop let: width
to set a dynamic circle radius based on the chart's width.
- +page.svelte
- ./_components/Key.html.svelte
- ./_components/AxisX.svelte
- ./_components/Beeswarm.svelte
- ./_data/cars-2.csv
<script>
import { LayerCake, Svg, Html } from 'layercake';
import { format } from 'd3-format';
import { scaleOrdinal } from 'd3-scale';
import Key from './_components/Key.html.svelte';
import AxisX from './_components/AxisX.svelte';
import Beeswarm from './_components/Beeswarm.svelte';
// This example loads csv data as json using @rollup/plugin-dsv
import data from './_data/cars-2.csv';
const xKey = 'Weight_in_lbs';
const zKey = 'Origin';
const titleKey = 'Name';
const r = 4;
const seriesNames = new Set();
const seriesColors = ['#ccc', '#fc0', '#000'];
const dataTransformed = data.map(d => {
seriesNames.add(d[zKey]);
return {
[titleKey]: d[titleKey],
[xKey]: +d[xKey],
[zKey]: d[zKey]
};
});
const addCommas = format(',');
</script>
<div class="chart-container">
<LayerCake
padding={{ bottom: 15 }}
x={xKey}
z={zKey}
zScale={scaleOrdinal()}
zRange={seriesColors}
data={dataTransformed}
let:width
>
<Svg>
<AxisX baseline format={addCommas} tickMarks />
<!-- The Beeswarm component transforms the data and nests our original fields under `data` so access the `titleKey` under that -->
<Beeswarm r={width < 400 ? r / 1.6 : r} spacing={1} getTitle={d => d.data[titleKey]} />
</Svg>
<Html pointerEvents={false}>
<Key
align="end"
shape="circle"
lookup={{
USA: 'U.S.'
}}
/>
</Html>
</LayerCake>
</div>
<style>
/*
The wrapper div needs to have an explicit width and height in CSS.
It can also be a flexbox child or CSS grid element.
The point being it needs dimensions since the <LayerCake> element will
expand to fill it.
*/
.chart-container {
width: 100%;
height: 250px;
}
</style>
<!--
@component
Creates a key for ordinal scales on `zScale`.
-->
<script>
import { getContext } from 'svelte';
/** @type {String} [shape='square'] - The shape for each item. Can be 'circle', 'line', or 'square'; */
export let shape = 'square';
/** @type {String} [align='start'] - Sets the CSS flexbox justify-content setting for the box as a whole. Can be 'start', 'center' or 'end'. */
export let align = 'start';
/** @type {Function|Object|undefined} [lookup] - Either a function that takes the value and returns a formatted string, or an object of values. If a given value is not present in a lookup object, it returns the original value. */
export let lookup = undefined;
/** @type {boolean} [capitalize=true] - Capitalize the first character. */
export let capitalize = true;
const { zDomain, zScale } = getContext('LayerCake');
function cap(val) {
return String(val).replace(/^\w/, d => d.toUpperCase());
}
function displayName(val) {
if (lookup) {
return typeof lookup === 'function' ? lookup(val) : lookup[val] || val;
}
return capitalize === true ? cap(val) : val;
}
</script>
<div class="key" style="justify-content: {align === 'end' ? 'flex-end' : align};">
{#each $zDomain as item}
<div class="key-item">
<div
class="chip chip__{shape}"
style="background: {shape === `line`
? `linear-gradient(-45deg, #ffffff 40%, ${$zScale(item)} 41%, ${$zScale(item)} 59%, #ffffff 60%)`
: $zScale(item)};"
></div>
<div class="name">{displayName(item)}</div>
</div>
{/each}
</div>
<style>
.key {
display: flex;
}
.key-item {
margin-right: 14px;
}
.chip {
display: inline-block;
position: relative;
width: 12px;
height: 12px;
}
.chip__circle {
border-radius: 50%;
}
.chip__line:after {
content: '';
position: absolute;
border-width: 3px;
width: 14px;
transform: rotate(-45deg);
transform-origin: 14px 5px;
}
.name {
display: inline;
font-size: 14px;
text-shadow:
-1px -1px 0 #fff,
1px -1px 0 #fff,
-1px 1px 0 #fff,
1px 1px 0 #fff;
}
</style>
<!--
@component
Generates an SVG x-axis. This component is also configured to detect if your x-scale is an ordinal scale. If so, it will place the markers in the middle of the bandwidth.
-->
<script>
import { getContext } from 'svelte';
const { width, height, xScale, yRange } = getContext('LayerCake');
/** @type {boolean} [tickMarks=false] - Show a vertical mark for each tick. */
export let tickMarks = false;
/** @type {boolean} [gridlines=true] - Show gridlines extending into the chart area. */
export let gridlines = true;
/** @type {Number} [tickMarkLength=6] - The length of the tick mark. */
export let tickMarkLength = 6;
/** @type {boolean} [baseline=false] – Show a solid line at the bottom. */
export let baseline = false;
/** @type {boolean} [snapLabels=false] - Instead of centering the text labels on the first and the last items, align them to the edges of the chart. */
export let snapLabels = false;
/** @type {(d: any) => string} [format=d => d] - A function that passes the current tick value and expects a nicely formatted value in return. */
export let format = d => d;
/** @type {Number|Array<any>|Function|undefined} [ticks] - If this is a number, it passes that along to the [d3Scale.ticks](https://github.com/d3/d3-scale) function. If this is an array, hardcodes the ticks to those values. If it's a function, passes along the default tick values and expects an array of tick values in return. If nothing, it uses the default ticks supplied by the D3 function. */
export let ticks = undefined;
/** @type {Number} [tickGutter=0] - The amount of whitespace between the start of the tick and the chart drawing area (the yRange min). */
export let tickGutter = 0;
/** @type {Number} [dx=0] - Any optional value passed to the `dx` attribute on the text label. */
export let dx = 0;
/** @type {Number} [dy=12] - Any optional value passed to the `dy` attribute on the text label. */
export let dy = 12;
/**@param {Number} i
* @param {boolean} sl */
function textAnchor(i, sl) {
if (sl === true) {
if (i === 0) {
return 'start';
}
if (i === tickVals.length - 1) {
return 'end';
}
}
return 'middle';
}
$: tickLen = tickMarks === true ? tickMarkLength ?? 6 : 0;
$: isBandwidth = typeof $xScale.bandwidth === 'function';
/** @type {Array<any>} */
$: tickVals = Array.isArray(ticks)
? ticks
: isBandwidth
? $xScale.domain()
: typeof ticks === 'function'
? ticks($xScale.ticks())
: $xScale.ticks(ticks);
$: halfBand = isBandwidth ? $xScale.bandwidth() / 2 : 0;
</script>
<g class="axis x-axis" class:snapLabels>
{#each tickVals as tick, i (tick)}
{#if baseline === true}
<line class="baseline" y1={$height} y2={$height} x1="0" x2={$width} />
{/if}
<g class="tick tick-{i}" transform="translate({$xScale(tick)},{Math.max(...$yRange)})">
{#if gridlines === true}
<line class="gridline" x1={halfBand} x2={halfBand} y1={-$height} y2="0" />
{/if}
{#if tickMarks === true}
<line
class="tick-mark"
x1={halfBand}
x2={halfBand}
y1={tickGutter}
y2={tickGutter + tickLen}
/>
{/if}
<text x={halfBand} y={tickGutter + tickLen} {dx} {dy} text-anchor={textAnchor(i, snapLabels)}
>{format(tick)}</text
>
</g>
{/each}
</g>
<style>
.tick {
font-size: 11px;
}
line,
.tick line {
stroke: #aaa;
stroke-dasharray: 2;
}
.tick text {
fill: #666;
}
.tick .tick-mark,
.baseline {
stroke-dasharray: 0;
}
/* This looks slightly better */
.axis.snapLabels .tick:last-child text {
transform: translateX(3px);
}
.axis.snapLabels .tick.tick-0 text {
transform: translateX(-3px);
}
</style>
<!--
@component
Generates an SVG Beeswarm chart.
-->
<script>
import { getContext } from 'svelte';
const { data, xGet, zGet, height, config } = getContext('LayerCake');
/** @type {Number} [r=3] - The circle radius size in pixels. */
export let r = 3;
/** @type {Number} [strokeWidth=0] - The circle's stroke width in pixels. */
export let strokeWidth = 0;
/** @type {String} [stroke='#fff'] - The circle's stroke color. */
export let stroke = '#fff';
/** @type {Number} [spacing=1.5] - Whitespace padding between each circle, in pixels */
export let spacing = 1.5;
/** @type {Function|undefined} [getTitle] — An accessor function to get the field on the data element to display as a hover label using a `<title>` tag. */
export let getTitle = undefined;
$: circles = dodge($data, { rds: r * 2 + spacing + strokeWidth, x: $xGet });
function dodge(data, { rds = 1, x = d => d } = {}) {
const radius2 = rds ** 2;
const circles = data
.map(d => ({ x: x(d), [$config.z]: d[$config.z], data: d }))
.sort((a, b) => a.x - b.x);
const epsilon = 1e-3;
let head = null,
tail = null;
// Returns true if circle ⟨x,y⟩ intersects with any circle in the queue.
function intersects(x, y) {
let a = head;
while (a) {
if (radius2 - epsilon > (a.x - x) ** 2 + (a.y - y) ** 2) {
return true;
}
a = a.next;
}
return false;
}
// Place each circle sequentially.
for (const b of circles) {
// Remove circles from the queue that can’t intersect the new circle b.
while (head && head.x < b.x - radius2) head = head.next;
// Choose the minimum non-intersecting tangent.
if (intersects(b.x, (b.y = 0))) {
let a = head;
b.y = Infinity;
do {
let y = a.y + Math.sqrt(radius2 - (a.x - b.x) ** 2);
if (y < b.y && !intersects(b.x, y)) b.y = y;
a = a.next;
} while (a);
}
// Add b to the queue.
b.next = null;
if (head === null) head = tail = b;
else tail = tail.next = b;
}
return circles;
}
</script>
<g class="bee-group">
{#each circles as d}
<circle
fill={$zGet(d)}
{stroke}
stroke-width={strokeWidth}
cx={d.x}
cy={$height - r - spacing - strokeWidth / 2 - d.y}
{r}
>
{#if getTitle}
<title>{getTitle(d)}</title>
{/if}
</circle>
{/each}
</g>
Name,Miles_per_Gallon,Cylinders,Displacement,Horsepower,Weight_in_lbs,Acceleration,Year,Origin chevrolet chevelle malibu,18,8,307,130,3504,12,1970,USA buick skylark 320,15,8,350,165,3693,11.5,1970,USA plymouth satellite,18,8,318,150,3436,11,1970,USA amc rebel sst,16,8,304,150,3433,12,1970,USA ford torino,17,8,302,140,3449,10.5,1970,USA ford galaxie 500,15,8,429,198,4341,10,1970,USA chevrolet impala,14,8,454,220,4354,9,1970,USA plymouth fury iii,14,8,440,215,4312,8.5,1970,USA pontiac catalina,14,8,455,225,4425,10,1970,USA amc ambassador dpl,15,8,390,190,3850,8.5,1970,USA citroen ds-21 pallas,,4,133,115,3090,17.5,1970,Europe chevrolet chevelle concours (sw),,8,350,165,4142,11.5,1970,USA ford torino (sw),,8,351,153,4034,11,1970,USA plymouth satellite (sw),,8,383,175,4166,10.5,1970,USA amc rebel sst (sw),,8,360,175,3850,11,1970,USA dodge challenger se,15,8,383,170,3563,10,1970,USA plymouth 'cuda 340,14,8,340,160,3609,8,1970,USA ford mustang boss 302,,8,302,140,3353,8,1970,USA chevrolet monte carlo,15,8,400,150,3761,9.5,1970,USA buick estate wagon (sw),14,8,455,225,3086,10,1970,USA toyota corona mark ii,24,4,113,95,2372,15,1970,Japan plymouth duster,22,6,198,95,2833,15.5,1970,USA amc hornet,18,6,199,97,2774,15.5,1970,USA ford maverick,21,6,200,85,2587,16,1970,USA datsun pl510,27,4,97,88,2130,14.5,1970,Japan volkswagen 1131 deluxe sedan,26,4,97,46,1835,20.5,1970,Europe peugeot 504,25,4,110,87,2672,17.5,1970,Europe audi 100 ls,24,4,107,90,2430,14.5,1970,Europe saab 99e,25,4,104,95,2375,17.5,1970,Europe bmw 2002,26,4,121,113,2234,12.5,1970,Europe amc gremlin,21,6,199,90,2648,15,1970,USA ford f250,10,8,360,215,4615,14,1970,USA chevy c20,10,8,307,200,4376,15,1970,USA dodge d200,11,8,318,210,4382,13.5,1970,USA hi 1200d,9,8,304,193,4732,18.5,1970,USA datsun pl510,27,4,97,88,2130,14.5,1971,Japan chevrolet vega 2300,28,4,140,90,2264,15.5,1971,USA toyota corona,25,4,113,95,2228,14,1971,Japan ford pinto,25,4,98,,2046,19,1971,USA volkswagen super beetle 117,,4,97,48,1978,20,1971,Europe amc gremlin,19,6,232,100,2634,13,1971,USA plymouth satellite custom,16,6,225,105,3439,15.5,1971,USA chevrolet chevelle malibu,17,6,250,100,3329,15.5,1971,USA ford torino 500,19,6,250,88,3302,15.5,1971,USA amc matador,18,6,232,100,3288,15.5,1971,USA chevrolet impala,14,8,350,165,4209,12,1971,USA pontiac catalina brougham,14,8,400,175,4464,11.5,1971,USA ford galaxie 500,14,8,351,153,4154,13.5,1971,USA plymouth fury iii,14,8,318,150,4096,13,1971,USA dodge monaco (sw),12,8,383,180,4955,11.5,1971,USA ford country squire (sw),13,8,400,170,4746,12,1971,USA pontiac safari (sw),13,8,400,175,5140,12,1971,USA amc hornet sportabout (sw),18,6,258,110,2962,13.5,1971,USA chevrolet vega (sw),22,4,140,72,2408,19,1971,USA pontiac firebird,19,6,250,100,3282,15,1971,USA ford mustang,18,6,250,88,3139,14.5,1971,USA mercury capri 2000,23,4,122,86,2220,14,1971,USA opel 1900,28,4,116,90,2123,14,1971,Europe peugeot 304,30,4,79,70,2074,19.5,1971,Europe fiat 124b,30,4,88,76,2065,14.5,1971,Europe toyota corolla 1200,31,4,71,65,1773,19,1971,Japan datsun 1200,35,4,72,69,1613,18,1971,Japan volkswagen model 111,27,4,97,60,1834,19,1971,Europe plymouth cricket,26,4,91,70,1955,20.5,1971,USA toyota corona hardtop,24,4,113,95,2278,15.5,1972,Japan dodge colt hardtop,25,4,97.5,80,2126,17,1972,USA volkswagen type 3,23,4,97,54,2254,23.5,1972,Europe chevrolet vega,20,4,140,90,2408,19.5,1972,USA ford pinto runabout,21,4,122,86,2226,16.5,1972,USA chevrolet impala,13,8,350,165,4274,12,1972,USA pontiac catalina,14,8,400,175,4385,12,1972,USA plymouth fury iii,15,8,318,150,4135,13.5,1972,USA ford galaxie 500,14,8,351,153,4129,13,1972,USA amc ambassador sst,17,8,304,150,3672,11.5,1972,USA mercury marquis,11,8,429,208,4633,11,1972,USA buick lesabre custom,13,8,350,155,4502,13.5,1972,USA oldsmobile delta 88 royale,12,8,350,160,4456,13.5,1972,USA chrysler newport royal,13,8,400,190,4422,12.5,1972,USA mazda rx2 coupe,19,3,70,97,2330,13.5,1972,Japan amc matador (sw),15,8,304,150,3892,12.5,1972,USA chevrolet chevelle concours (sw),13,8,307,130,4098,14,1972,USA ford gran torino (sw),13,8,302,140,4294,16,1972,USA plymouth satellite custom (sw),14,8,318,150,4077,14,1972,USA volvo 145e (sw),18,4,121,112,2933,14.5,1972,Europe volkswagen 411 (sw),22,4,121,76,2511,18,1972,Europe peugeot 504 (sw),21,4,120,87,2979,19.5,1972,Europe renault 12 (sw),26,4,96,69,2189,18,1972,Europe ford pinto (sw),22,4,122,86,2395,16,1972,USA datsun 510 (sw),28,4,97,92,2288,17,1972,Japan toyouta corona mark ii (sw),23,4,120,97,2506,14.5,1972,Japan dodge colt (sw),28,4,98,80,2164,15,1972,USA toyota corolla 1600 (sw),27,4,97,88,2100,16.5,1972,Japan buick century 350,13,8,350,175,4100,13,1973,USA amc matador,14,8,304,150,3672,11.5,1973,USA chevrolet malibu,13,8,350,145,3988,13,1973,USA ford gran torino,14,8,302,137,4042,14.5,1973,USA dodge coronet custom,15,8,318,150,3777,12.5,1973,USA mercury marquis brougham,12,8,429,198,4952,11.5,1973,USA chevrolet caprice classic,13,8,400,150,4464,12,1973,USA ford ltd,13,8,351,158,4363,13,1973,USA plymouth fury gran sedan,14,8,318,150,4237,14.5,1973,USA chrysler new yorker brougham,13,8,440,215,4735,11,1973,USA buick electra 225 custom,12,8,455,225,4951,11,1973,USA amc ambassador brougham,13,8,360,175,3821,11,1973,USA plymouth valiant,18,6,225,105,3121,16.5,1973,USA chevrolet nova custom,16,6,250,100,3278,18,1973,USA amc hornet,18,6,232,100,2945,16,1973,USA ford maverick,18,6,250,88,3021,16.5,1973,USA plymouth duster,23,6,198,95,2904,16,1973,USA volkswagen super beetle,26,4,97,46,1950,21,1973,Europe chevrolet impala,11,8,400,150,4997,14,1973,USA ford country,12,8,400,167,4906,12.5,1973,USA plymouth custom suburb,13,8,360,170,4654,13,1973,USA oldsmobile vista cruiser,12,8,350,180,4499,12.5,1973,USA amc gremlin,18,6,232,100,2789,15,1973,USA toyota carina,20,4,97,88,2279,19,1973,Japan chevrolet vega,21,4,140,72,2401,19.5,1973,USA datsun 610,22,4,108,94,2379,16.5,1973,Japan maxda rx3,18,3,70,90,2124,13.5,1973,Japan ford pinto,19,4,122,85,2310,18.5,1973,USA mercury capri v6,21,6,155,107,2472,14,1973,USA fiat 124 sport coupe,26,4,98,90,2265,15.5,1973,Europe chevrolet monte carlo s,15,8,350,145,4082,13,1973,USA pontiac grand prix,16,8,400,230,4278,9.5,1973,USA fiat 128,29,4,68,49,1867,19.5,1973,Europe opel manta,24,4,116,75,2158,15.5,1973,Europe audi 100ls,20,4,114,91,2582,14,1973,Europe volvo 144ea,19,4,121,112,2868,15.5,1973,Europe dodge dart custom,15,8,318,150,3399,11,1973,USA saab 99le,24,4,121,110,2660,14,1973,Europe toyota mark ii,20,6,156,122,2807,13.5,1973,Japan oldsmobile omega,11,8,350,180,3664,11,1973,USA plymouth duster,20,6,198,95,3102,16.5,1974,USA ford maverick,21,6,200,,2875,17,1974,USA amc hornet,19,6,232,100,2901,16,1974,USA chevrolet nova,15,6,250,100,3336,17,1974,USA datsun b210,31,4,79,67,1950,19,1974,Japan ford pinto,26,4,122,80,2451,16.5,1974,USA toyota corolla 1200,32,4,71,65,1836,21,1974,Japan chevrolet vega,25,4,140,75,2542,17,1974,USA chevrolet chevelle malibu classic,16,6,250,100,3781,17,1974,USA amc matador,16,6,258,110,3632,18,1974,USA plymouth satellite sebring,18,6,225,105,3613,16.5,1974,USA ford gran torino,16,8,302,140,4141,14,1974,USA buick century luxus (sw),13,8,350,150,4699,14.5,1974,USA dodge coronet custom (sw),14,8,318,150,4457,13.5,1974,USA ford gran torino (sw),14,8,302,140,4638,16,1974,USA amc matador (sw),14,8,304,150,4257,15.5,1974,USA audi fox,29,4,98,83,2219,16.5,1974,Europe volkswagen dasher,26,4,79,67,1963,15.5,1974,Europe opel manta,26,4,97,78,2300,14.5,1974,Europe toyota corona,31,4,76,52,1649,16.5,1974,Japan datsun 710,32,4,83,61,2003,19,1974,Japan dodge colt,28,4,90,75,2125,14.5,1974,USA fiat 128,24,4,90,75,2108,15.5,1974,Europe fiat 124 tc,26,4,116,75,2246,14,1974,Europe honda civic,24,4,120,97,2489,15,1974,Japan subaru,26,4,108,93,2391,15.5,1974,Japan fiat x1.9,31,4,79,67,2000,16,1974,Europe plymouth valiant custom,19,6,225,95,3264,16,1975,USA chevrolet nova,18,6,250,105,3459,16,1975,USA mercury monarch,15,6,250,72,3432,21,1975,USA ford maverick,15,6,250,72,3158,19.5,1975,USA pontiac catalina,16,8,400,170,4668,11.5,1975,USA chevrolet bel air,15,8,350,145,4440,14,1975,USA plymouth grand fury,16,8,318,150,4498,14.5,1975,USA ford ltd,14,8,351,148,4657,13.5,1975,USA buick century,17,6,231,110,3907,21,1975,USA chevroelt chevelle malibu,16,6,250,105,3897,18.5,1975,USA amc matador,15,6,258,110,3730,19,1975,USA plymouth fury,18,6,225,95,3785,19,1975,USA buick skyhawk,21,6,231,110,3039,15,1975,USA chevrolet monza 2+2,20,8,262,110,3221,13.5,1975,USA ford mustang ii,13,8,302,129,3169,12,1975,USA toyota corolla,29,4,97,75,2171,16,1975,Japan ford pinto,23,4,140,83,2639,17,1975,USA amc gremlin,20,6,232,100,2914,16,1975,USA pontiac astro,23,4,140,78,2592,18.5,1975,USA toyota corona,24,4,134,96,2702,13.5,1975,Japan volkswagen dasher,25,4,90,71,2223,16.5,1975,Europe datsun 710,24,4,119,97,2545,17,1975,Japan ford pinto,18,6,171,97,2984,14.5,1975,USA volkswagen rabbit,29,4,90,70,1937,14,1975,Europe amc pacer,19,6,232,90,3211,17,1975,USA audi 100ls,23,4,115,95,2694,15,1975,Europe peugeot 504,23,4,120,88,2957,17,1975,Europe volvo 244dl,22,4,121,98,2945,14.5,1975,Europe saab 99le,25,4,121,115,2671,13.5,1975,Europe honda civic cvcc,33,4,91,53,1795,17.5,1975,Japan fiat 131,28,4,107,86,2464,15.5,1976,Europe opel 1900,25,4,116,81,2220,16.9,1976,Europe capri ii,25,4,140,92,2572,14.9,1976,USA dodge colt,26,4,98,79,2255,17.7,1976,USA renault 12tl,27,4,101,83,2202,15.3,1976,Europe chevrolet chevelle malibu classic,17.5,8,305,140,4215,13,1976,USA dodge coronet brougham,16,8,318,150,4190,13,1976,USA amc matador,15.5,8,304,120,3962,13.9,1976,USA ford gran torino,14.5,8,351,152,4215,12.8,1976,USA plymouth valiant,22,6,225,100,3233,15.4,1976,USA chevrolet nova,22,6,250,105,3353,14.5,1976,USA ford maverick,24,6,200,81,3012,17.6,1976,USA amc hornet,22.5,6,232,90,3085,17.6,1976,USA chevrolet chevette,29,4,85,52,2035,22.2,1976,USA chevrolet woody,24.5,4,98,60,2164,22.1,1976,USA vw rabbit,29,4,90,70,1937,14.2,1976,Europe honda civic,33,4,91,53,1795,17.4,1976,Japan dodge aspen se,20,6,225,100,3651,17.7,1976,USA ford granada ghia,18,6,250,78,3574,21,1976,USA pontiac ventura sj,18.5,6,250,110,3645,16.2,1976,USA amc pacer d/l,17.5,6,258,95,3193,17.8,1976,USA volkswagen rabbit,29.5,4,97,71,1825,12.2,1976,Europe datsun b-210,32,4,85,70,1990,17,1976,Japan toyota corolla,28,4,97,75,2155,16.4,1976,Japan ford pinto,26.5,4,140,72,2565,13.6,1976,USA volvo 245,20,4,130,102,3150,15.7,1976,Europe plymouth volare premier v8,13,8,318,150,3940,13.2,1976,USA peugeot 504,19,4,120,88,3270,21.9,1976,Europe toyota mark ii,19,6,156,108,2930,15.5,1976,Japan mercedes-benz 280s,16.5,6,168,120,3820,16.7,1976,Europe cadillac seville,16.5,8,350,180,4380,12.1,1976,USA chevy c10,13,8,350,145,4055,12,1976,USA ford f108,13,8,302,130,3870,15,1976,USA dodge d100,13,8,318,150,3755,14,1976,USA honda Accelerationord cvcc,31.5,4,98,68,2045,18.5,1977,Japan buick opel isuzu deluxe,30,4,111,80,2155,14.8,1977,USA renault 5 gtl,36,4,79,58,1825,18.6,1977,Europe plymouth arrow gs,25.5,4,122,96,2300,15.5,1977,USA datsun f-10 hatchback,33.5,4,85,70,1945,16.8,1977,Japan chevrolet caprice classic,17.5,8,305,145,3880,12.5,1977,USA oldsmobile cutlass supreme,17,8,260,110,4060,19,1977,USA dodge monaco brougham,15.5,8,318,145,4140,13.7,1977,USA mercury cougar brougham,15,8,302,130,4295,14.9,1977,USA chevrolet concours,17.5,6,250,110,3520,16.4,1977,USA buick skylark,20.5,6,231,105,3425,16.9,1977,USA plymouth volare custom,19,6,225,100,3630,17.7,1977,USA ford granada,18.5,6,250,98,3525,19,1977,USA pontiac grand prix lj,16,8,400,180,4220,11.1,1977,USA chevrolet monte carlo landau,15.5,8,350,170,4165,11.4,1977,USA chrysler cordoba,15.5,8,400,190,4325,12.2,1977,USA ford thunderbird,16,8,351,149,4335,14.5,1977,USA volkswagen rabbit custom,29,4,97,78,1940,14.5,1977,Europe pontiac sunbird coupe,24.5,4,151,88,2740,16,1977,USA toyota corolla liftback,26,4,97,75,2265,18.2,1977,Japan ford mustang ii 2+2,25.5,4,140,89,2755,15.8,1977,USA chevrolet chevette,30.5,4,98,63,2051,17,1977,USA dodge colt m/m,33.5,4,98,83,2075,15.9,1977,USA subaru dl,30,4,97,67,1985,16.4,1977,Japan volkswagen dasher,30.5,4,97,78,2190,14.1,1977,Europe datsun 810,22,6,146,97,2815,14.5,1977,Japan bmw 320i,21.5,4,121,110,2600,12.8,1977,Europe mazda rx-4,21.5,3,80,110,2720,13.5,1977,Japan volkswagen rabbit custom diesel,43.1,4,90,48,1985,21.5,1978,Europe ford fiesta,36.1,4,98,66,1800,14.4,1978,USA mazda glc deluxe,32.8,4,78,52,1985,19.4,1978,Japan datsun b210 gx,39.4,4,85,70,2070,18.6,1978,Japan honda civic cvcc,36.1,4,91,60,1800,16.4,1978,Japan oldsmobile cutlass salon brougham,19.9,8,260,110,3365,15.5,1978,USA dodge diplomat,19.4,8,318,140,3735,13.2,1978,USA mercury monarch ghia,20.2,8,302,139,3570,12.8,1978,USA pontiac phoenix lj,19.2,6,231,105,3535,19.2,1978,USA chevrolet malibu,20.5,6,200,95,3155,18.2,1978,USA ford fairmont (auto),20.2,6,200,85,2965,15.8,1978,USA ford fairmont (man),25.1,4,140,88,2720,15.4,1978,USA plymouth volare,20.5,6,225,100,3430,17.2,1978,USA amc concord,19.4,6,232,90,3210,17.2,1978,USA buick century special,20.6,6,231,105,3380,15.8,1978,USA mercury zephyr,20.8,6,200,85,3070,16.7,1978,USA dodge aspen,18.6,6,225,110,3620,18.7,1978,USA amc concord d/l,18.1,6,258,120,3410,15.1,1978,USA chevrolet monte carlo landau,19.2,8,305,145,3425,13.2,1978,USA buick regal sport coupe (turbo),17.7,6,231,165,3445,13.4,1978,USA ford futura,18.1,8,302,139,3205,11.2,1978,USA dodge magnum xe,17.5,8,318,140,4080,13.7,1978,USA chevrolet chevette,30,4,98,68,2155,16.5,1978,USA toyota corona,27.5,4,134,95,2560,14.2,1978,Japan datsun 510,27.2,4,119,97,2300,14.7,1978,Japan dodge omni,30.9,4,105,75,2230,14.5,1978,USA toyota celica gt liftback,21.1,4,134,95,2515,14.8,1978,Japan plymouth sapporo,23.2,4,156,105,2745,16.7,1978,USA oldsmobile starfire sx,23.8,4,151,85,2855,17.6,1978,USA datsun 200-sx,23.9,4,119,97,2405,14.9,1978,Japan audi 5000,20.3,5,131,103,2830,15.9,1978,Europe volvo 264gl,17,6,163,125,3140,13.6,1978,Europe saab 99gle,21.6,4,121,115,2795,15.7,1978,Europe peugeot 604sl,16.2,6,163,133,3410,15.8,1978,Europe volkswagen scirocco,31.5,4,89,71,1990,14.9,1978,Europe honda Accelerationord lx,29.5,4,98,68,2135,16.6,1978,Japan pontiac lemans v6,21.5,6,231,115,3245,15.4,1979,USA mercury zephyr 6,19.8,6,200,85,2990,18.2,1979,USA ford fairmont 4,22.3,4,140,88,2890,17.3,1979,USA amc concord dl 6,20.2,6,232,90,3265,18.2,1979,USA dodge aspen 6,20.6,6,225,110,3360,16.6,1979,USA chevrolet caprice classic,17,8,305,130,3840,15.4,1979,USA ford ltd landau,17.6,8,302,129,3725,13.4,1979,USA mercury grand marquis,16.5,8,351,138,3955,13.2,1979,USA dodge st. regis,18.2,8,318,135,3830,15.2,1979,USA buick estate wagon (sw),16.9,8,350,155,4360,14.9,1979,USA ford country squire (sw),15.5,8,351,142,4054,14.3,1979,USA chevrolet malibu classic (sw),19.2,8,267,125,3605,15,1979,USA chrysler lebaron town @ country (sw),18.5,8,360,150,3940,13,1979,USA vw rabbit custom,31.9,4,89,71,1925,14,1979,Europe maxda glc deluxe,34.1,4,86,65,1975,15.2,1979,Japan dodge colt hatchback custom,35.7,4,98,80,1915,14.4,1979,USA amc spirit dl,27.4,4,121,80,2670,15,1979,USA mercedes benz 300d,25.4,5,183,77,3530,20.1,1979,Europe cadillac eldorado,23,8,350,125,3900,17.4,1979,USA peugeot 504,27.2,4,141,71,3190,24.8,1979,Europe oldsmobile cutlass salon brougham,23.9,8,260,90,3420,22.2,1979,USA plymouth horizon,34.2,4,105,70,2200,13.2,1979,USA plymouth horizon tc3,34.5,4,105,70,2150,14.9,1979,USA datsun 210,31.8,4,85,65,2020,19.2,1979,Japan fiat strada custom,37.3,4,91,69,2130,14.7,1979,Europe buick skylark limited,28.4,4,151,90,2670,16,1979,USA chevrolet citation,28.8,6,173,115,2595,11.3,1979,USA oldsmobile omega brougham,26.8,6,173,115,2700,12.9,1979,USA pontiac phoenix,33.5,4,151,90,2556,13.2,1979,USA vw rabbit,41.5,4,98,76,2144,14.7,1980,Europe toyota corolla tercel,38.1,4,89,60,1968,18.8,1980,Japan chevrolet chevette,32.1,4,98,70,2120,15.5,1980,USA datsun 310,37.2,4,86,65,2019,16.4,1980,Japan chevrolet citation,28,4,151,90,2678,16.5,1980,USA ford fairmont,26.4,4,140,88,2870,18.1,1980,USA amc concord,24.3,4,151,90,3003,20.1,1980,USA dodge aspen,19.1,6,225,90,3381,18.7,1980,USA audi 4000,34.3,4,97,78,2188,15.8,1980,Europe toyota corona liftback,29.8,4,134,90,2711,15.5,1980,Japan mazda 626,31.3,4,120,75,2542,17.5,1980,Japan datsun 510 hatchback,37,4,119,92,2434,15,1980,Japan toyota corolla,32.2,4,108,75,2265,15.2,1980,Japan mazda glc,46.6,4,86,65,2110,17.9,1980,Japan dodge colt,27.9,4,156,105,2800,14.4,1980,USA datsun 210,40.8,4,85,65,2110,19.2,1980,Japan vw rabbit c (diesel),44.3,4,90,48,2085,21.7,1980,Europe vw dasher (diesel),43.4,4,90,48,2335,23.7,1980,Europe audi 5000s (diesel),36.4,5,121,67,2950,19.9,1980,Europe mercedes-benz 240d,30,4,146,67,3250,21.8,1980,Europe honda civic 1500 gl,44.6,4,91,67,1850,13.8,1980,Japan renault lecar deluxe,40.9,4,85,,1835,17.3,1980,Europe subaru dl,33.8,4,97,67,2145,18,1980,Japan vokswagen rabbit,29.8,4,89,62,1845,15.3,1980,Europe datsun 280-zx,32.7,6,168,132,2910,11.4,1980,Japan mazda rx-7 gs,23.7,3,70,100,2420,12.5,1980,Japan triumph tr7 coupe,35,4,122,88,2500,15.1,1980,Europe ford mustang cobra,23.6,4,140,,2905,14.3,1980,USA honda Accelerationord,32.4,4,107,72,2290,17,1980,Japan plymouth reliant,27.2,4,135,84,2490,15.7,1982,USA buick skylark,26.6,4,151,84,2635,16.4,1982,USA dodge aries wagon (sw),25.8,4,156,92,2620,14.4,1982,USA chevrolet citation,23.5,6,173,110,2725,12.6,1982,USA plymouth reliant,30,4,135,84,2385,12.9,1982,USA toyota starlet,39.1,4,79,58,1755,16.9,1982,Japan plymouth champ,39,4,86,64,1875,16.4,1982,USA honda civic 1300,35.1,4,81,60,1760,16.1,1982,Japan subaru,32.3,4,97,67,2065,17.8,1982,Japan datsun 210,37,4,85,65,1975,19.4,1982,Japan toyota tercel,37.7,4,89,62,2050,17.3,1982,Japan mazda glc 4,34.1,4,91,68,1985,16,1982,Japan plymouth horizon 4,34.7,4,105,63,2215,14.9,1982,USA ford escort 4w,34.4,4,98,65,2045,16.2,1982,USA ford escort 2h,29.9,4,98,65,2380,20.7,1982,USA volkswagen jetta,33,4,105,74,2190,14.2,1982,Europe renault 18i,34.5,4,100,,2320,15.8,1982,Europe honda prelude,33.7,4,107,75,2210,14.4,1982,Japan toyota corolla,32.4,4,108,75,2350,16.8,1982,Japan datsun 200sx,32.9,4,119,100,2615,14.8,1982,Japan mazda 626,31.6,4,120,74,2635,18.3,1982,Japan peugeot 505s turbo diesel,28.1,4,141,80,3230,20.4,1982,Europe saab 900s,,4,121,110,2800,15.4,1982,Europe volvo diesel,30.7,6,145,76,3160,19.6,1982,Europe toyota cressida,25.4,6,168,116,2900,12.6,1982,Japan datsun 810 maxima,24.2,6,146,120,2930,13.8,1982,Japan buick century,22.4,6,231,110,3415,15.8,1982,USA oldsmobile cutlass ls,26.6,8,350,105,3725,19,1982,USA ford granada gl,20.2,6,200,88,3060,17.1,1982,USA chrysler lebaron salon,17.6,6,225,85,3465,16.6,1982,USA chevrolet cavalier,28,4,112,88,2605,19.6,1982,USA chevrolet cavalier wagon,27,4,112,88,2640,18.6,1982,USA chevrolet cavalier 2-door,34,4,112,88,2395,18,1982,USA pontiac j2000 se hatchback,31,4,112,85,2575,16.2,1982,USA dodge aries se,29,4,135,84,2525,16,1982,USA pontiac phoenix,27,4,151,90,2735,18,1982,USA ford fairmont futura,24,4,140,92,2865,16.4,1982,USA amc concord dl,23,4,151,,3035,20.5,1982,USA volkswagen rabbit l,36,4,105,74,1980,15.3,1982,Europe mazda glc custom l,37,4,91,68,2025,18.2,1982,Japan mazda glc custom,31,4,91,68,1970,17.6,1982,Japan plymouth horizon miser,38,4,105,63,2125,14.7,1982,USA mercury lynx l,36,4,98,70,2125,17.3,1982,USA nissan stanza xe,36,4,120,88,2160,14.5,1982,Japan honda Accelerationord,36,4,107,75,2205,14.5,1982,Japan toyota corolla,34,4,108,70,2245,16.9,1982,Japan honda civic,38,4,91,67,1965,15,1982,Japan honda civic (auto),32,4,91,67,1965,15.7,1982,Japan datsun 310 gx,38,4,91,67,1995,16.2,1982,Japan buick century limited,25,6,181,110,2945,16.4,1982,USA oldsmobile cutlass ciera (diesel),38,6,262,85,3015,17,1982,USA chrysler lebaron medallion,26,4,156,92,2585,14.5,1982,USA ford granada l,22,6,232,112,2835,14.7,1982,USA toyota celica gt,32,4,144,96,2665,13.9,1982,Japan dodge charger 2.2,36,4,135,84,2370,13,1982,USA chevrolet camaro,27,4,151,90,2950,17.3,1982,USA ford mustang gl,27,4,140,86,2790,15.6,1982,USA vw pickup,44,4,97,52,2130,24.6,1982,Europe dodge rampage,32,4,135,84,2295,11.6,1982,USA ford ranger,28,4,120,79,2625,18.6,1982,USA chevy s-10,31,4,119,82,2720,19.4,1982,USA