Giter Club home page Giter Club logo

amcharts-nested-labels's Introduction

amcharts-nested-labels

Contributors License

Wrapper library to add nested labels to amcharts5 axes

NPM lib

Independent labels

independent label ref source code - codepen

Nested labels

nested label ref react source code - codesandbox

Prerequisites

  • this library is meant to be used on data vizualization with axes created using amcharts5

Usage

This library helps you to inject html in amcharts5 axes in a nested tree format as depicted in the sample image above

invoke createLabel with the required parameters to get nested axes labels

    import { createLabel } from 'amcharts-nested-labels'

    createLabel({
        xAxisRef, // instance of amcharts axes
        seriesRef, // instance of amcharts series created
        // Array containing all leaf node labels where arr[0]=first label & arr[end] = last label
        startEndLabels: string[],
        // string label to be used for new nested label,
        label: string,
        // pass delta Y to alter Y position of the new label
        dy?: (number) => number,
    });

NOTE - labels passed in startEndLabels must be individual bars in the chart plot, else labels will not be placed correctly

Motivation

I faced a challenge to create a similar label vizualization. Initially thought was to get x position of each bar and plot a label with html content(border)

Next challenge was calculating the html content width?

  • should it stick to bar width?
  • should it show the whole text content?
    • what if the text overflows the bar and take too much space?
  • finding x pos for each bar is expensive, can it be optimized?

Exploring solutions to the above, led me to axes range in a data viz libraries - amcharts axes

axes range - a range of values in the chart, can be a subset of the whole set of values

found a nifty answer to create nested labels using range and this library is product of the same!

Contributing

found the lib useful?

please create an issue to get the discussion started on any open bugs/feature requests

amcharts-nested-labels's People

Contributors

adarshlilha avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.