2.0.0-alpha.36 • Published 1 month ago

@asphalt-react/data-viz v2.0.0-alpha.36

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
1 month ago

DataViz

npm

DataViz charts visually represent data to effectively communicate information and patterns. There are multiple charts availables like Bar, Grouped Bar, Stacked Bar, Line, and Donut. Use these charts to represent complex data in a visual format.

You can control whether to show legends, grid, tooltip, change the format of the tick labels, and change the position of the legend.

You can also customize the colors of the bars and lines.

The charts are all reponsive and adapts to the screen size seemlessly.

Usage

import React from "react"
import {
  BarChart
} from "@asphalt-react/data-viz"

const data = [
  {
    date: "2012-05-13",
    "New York": "65.3",
    "San Francisco": "52.0",
    Austin: "72.4",
  },
  {
    date: "2012-05-14",
    "New York": "64.2",
    "San Francisco": "56.0",
    Austin: "72.5",
  }
]

export const BasicBarChart = ({ ...props }) => {
  return (
    <div style={{ width: "100%", height: "400px" }}>
      <BarChart data={data} dataKey="date" />
    </div>
  )
}

Types

There are multiple types of data visualization components. You can use any of them as per your use-case.

  1. BarChart
  2. LineChart
  3. DonutChart

Responsive behavior

We set a minimum width of "312px" and a minimum height of "360px". The minimum height excludes the legends, as their wrapping behavior depends on the number of legends and available space.

All charts stretch to fit their container. Ensure you account for the legend height when defining the height of the container as the legend's height is dynamic becuse of it's wrapping behaviour.

BarChart

Bar chart which can display multiple data series, grouped, stack or side by side. Also supports both vertical and horizontal layout.

Props

data

Bar chart data.

Example:

[
  {
    month: "Jan",
    customers: 4350,
    attrition: 120
  },
  {
    month: "Feb",
    customers: 6600,
    attrition: 220
  }
]

To enhance the user experience, limit the number of bars to 20. In case of grouped, limit the sets to 8.

typerequireddefault
arrayOftrueN/A

colors

Colors of individual bars in a grouped or stack bar chart. Use this prop to override the default set of colors. Accepts an object with the key mapped to the key of the bar, and the value mapped to the color value.

For instance:

const data = [
  {
    month: "Jan",
    customers: 4350,
    attrition: 120
  },
  {
    month: "Feb",
    customers: 6600,
    attrition: 220
  }
]

const colors = { customers: "#497aaa", attrition: "#666666" }
typerequireddefault
objectfalseN/A

dataKey

Key of the datum to index the data.

For instance:

const data = [
  {
    month: "Jan",
    customers: 4350,
    attrition: 120
  },
  {
    month: "Feb",
    customers: 6600,
    attrition: 220
  }
]

Use "month" as the dataKey. This plots the "month" on x-axis, whereas in case of horizontal bar charts, plots the data on y-axis.

typerequireddefault
stringtrueN/A

xAxisLabel

Label for X-axis.

typerequireddefault
stringfalseN/A

yAxisLabel

Label for Y-axis.

typerequireddefault
stringfalseN/A

showGrid

Show grid lines.

typerequireddefault
boolfalsefalse

showLegend

Show chart legend.

typerequireddefault
boolfalsetrue

legendTop

Position the legends at the top.

typerequireddefault
boolfalsefalse

xTickFormat

Formats the default x-axis tick label.

tickLabel - tick label value. return value should be string|number.

For instance:

(tickLabel) => {
 // return the formatted label
}
typerequireddefault
funcfalseN/A

yTickFormat

Formats the default y-axis tick label.

tickLabel - tick label value. return value should be "string|number".

For instance:

(tickLabel) => {
 // return the formatted label
}
typerequireddefault
funcfalseN/A

tooltip

React node to pass your own tooltip.

typerequireddefault
nodefalsenull

viewTooltip

Show tooltip.

typerequireddefault
boolfalsetrue

onMouseHover

Returns the value of the bar on mouse hover.

  • event - browser event.
  • currentData - the current data on which the mouse is hovering.
  • groupData - the entire group which the current data is part of.
(event, { currentData, groupData }) => {}
typerequireddefault
funcfalseN/A

horizontal

Enable horizontal view.

typerequireddefault
boolfalsefalse

stack

Enable stack view.

typerequireddefault
boolfalsefalse

LineChart

These display data points connected by straight lines. They are commonly used to show trends over time.

Props

data

Line chart data.

Example:

[
  {
    month: "Jan",
    customers: 4350,
    attrition: 120
  },
  {
    month: "Feb",
    customers: 6600,
    attrition: 220
  }
]
  • To enhance the user experience, limit the number of lines to 20.
typerequireddefault
arrayOftrueN/A

colors

Colors of individual lines. Use this prop to override the default set of colors. Accepts an object with the key mapped to the key of the point, and the value mapped to the color value.

For instance:

const data = [
  {
    month: "Jan",
    customers: 4350,
    attrition: 120
  },
  {
    month: "Feb",
    customers: 6600,
    attrition: 220
  }
]

const colors = { customers: "#497aaa", attrition: "#666666" }
typerequireddefault
objectfalseN/A

dataKey

Key of the datum to index the data.

For instance:

const data = [
  {
    month: "Jan",
    customers: 4350,
    attrition: 120
  },
  {
    month: "Feb",
    customers: 6600,
    attrition: 220
  }
]

Use "month" as the dataKey. This plots the "month" on x-axis.

typerequireddefault
stringtrueN/A

xAxisLabel

Label for X-axis.

typerequireddefault
stringfalseN/A

yAxisLabel

Label for Y-axis.

typerequireddefault
stringfalseN/A

showGrid

Show grid lines.

typerequireddefault
boolfalsefalse

showLegend

Show chart legend.

typerequireddefault
boolfalsetrue

legendTop

Position the legends at the top.

typerequireddefault
boolfalsefalse

xTickFormat

Formats the default x-axis tick label.

tickLabel - tick label value. return value should be "string|number".

For instance:

(tickLabel) => new Date(tickLabel)
typerequireddefault
funcfalseN/A

yTickFormat

Formats the default y-axis tick label.

tickLabel - tick label value. return value should be "string|number".

For instance:

(tickLabel) => new Date(tickLabel)
typerequireddefault
funcfalseN/A

tooltip

React node to pass your own tooltip.

typerequireddefault
nodefalsenull

viewTooltip

Show tooltip.

typerequireddefault
boolfalsetrue

onMouseHover

Returns the value of the point(s) on mouse hover.

  • event - browser event.
  • currentData - the current data on which the mouse is hovering.
(event, { currentData }) => {}
typerequireddefault
funcfalseN/A

showPoints

Show data points(circles) on the lines.

typerequireddefault
boolfalsefalse

startFromZero

Starts from 0 in y-axis. Else, takes the minimum value available.

typerequireddefault
boolfalsefalse

DonutChart

Donut charts are probably the most commonly used charts. They are divided into segments, the arc of each segment shows the proportional value of each piece of data.

Props

data

Donut chart data. Accepts an object with the key mapped to an arc.

Example:

  {
    Cartography: 100,
    GoFood: 200,
    Transport: 250
  }
typerequireddefault
objecttrueN/A

colors

Colors of individual arcs in a donut chart. Use this prop to override the default set of colors. Accepts an object with the key mapped to an arc, and the value mapped to the color value.

For instance:

const data =  {
    Cartography: 100,
    GoFood: 200,
    Transport: 250
}

const colors = { GoFood: "#497aaa", Transport: "#666666" }
typerequireddefault
objectfalseN/A

showLegend

Show chart legend.

typerequireddefault
boolfalsetrue

legendTop

Position the legends at the top.

typerequireddefault
boolfalsefalse

tooltip

React node to pass your own tooltip.

typerequireddefault
nodefalsenull

viewTooltip

Show tooltip.

typerequireddefault
boolfalsetrue

onMouseHover

Returns the value of the arc on mouse hover.

  • event - browser event.
  • currentData - the current data on which the mouse is hovering.
(event, { currentData }) => {}
typerequireddefault
funcfalseN/A