Skip to content

forestjohnsonilm/d3-funnel

 
 

Repository files navigation

D3 Funnel

D3Funnel is an extensible, open-source JavaScript library for rendering funnel charts using the D3.js library.

D3Funnel is focused on providing practical and visually appealing funnels through a variety of customization options. Check out the examples page to get a showcasing of the several possible options.

Usage

To use this library, you must include the source files for D3.js and D3Funnel.

<script src="/path/to/d3.min.js"></script>
<script src="/path/to/d3-funnel.js"></script>

You must also create a container element and instantiate a new chart:

<div id="funnel"></div>

<script>
    var data = [
        ['Plants',     5000],
        ['Flowers',    2500],
        ['Perennials', 200],
        ['Roses',      50]
    ];
    var options = {};

    var chart = new D3Funnel('#funnel');
    chart.draw(data, options);
</script>

Options

Option Description Type Default
width The pixel width of the chart. int Container's width
height The pixel height of the chart. int Container's height
bottomWidth The percent of total width the bottom should be. float 1 / 3
bottomPinch How many sections to pinch on the bottom to create a "neck". int 0
isCurved Whether the funnel is curved. bool false
curveHeight The curvature amount (if isCurved is true). int 20
fillType Either "solid" or "gradient". string 'solid'
isInverted Whether the funnel is inverted (like a pyramid). bool false
hoverEffects Whether the funnel has effects on hover. bool false
dynamicArea Whether block areas are calculated by counts (as opposed to static height). bool false
minHeight The minimum pixel height of a block. int/bool false
animation The load animation speed in milliseconds. int/bool false
label.fontSize Any valid font size for the labels. string '14px'
label.fill Any valid hex color for the label color string '#fff'
onItemClick Event handler if one of the items is clicked. function function(d, i) {}

Advanced Data

You can specify overriding colors for any data point (hex only):

var data = [
    ['Teal',      12000, '#008080' '#080800'],
    ['Byzantium', 4000,  '#702963'],
    ['Persimmon', 2500,  '#ff634d' '#6f34fd'],
    ['Azure',     1500,  '#007fff' '#07fff0']
    //         Background ---^         ^--- Label
];

If you want to pass formatted values to be shown in the funnel, pass in an array containing the value and formatted value:

var data = [
    ['Teal',      [12000, 'USD 12,000']],
    ['Byzantium', [4000,  'USD 4,000']],
    ['Persimmon', [2500,  'USD 2,500']],
    ['Azure',     [1500,  'USD 1,500']]
];

License

MIT license.

About

A JavaScript library for rendering funnel charts using the D3.js framework.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%