JSPM

  • Created
  • Published
  • Downloads 6909
  • Score
    100M100P100Q139895F
  • License MIT

A package for radial-axis visualizations https://williaster.github.io/data-ui

Package Exports

  • @data-ui/radial-chart

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@data-ui/radial-chart) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@data-ui/radial-chart

demo at williaster.github.io/data-ui

Overview

This package exports declarative react <RadialChart />s implmented with @vx which (for the time being) can be used to render both donut and pie charts depending on props. As demonstrated in the demo, in combination with @vx/legend and @vx/scalethese can be used to create re-usable radial charts.

Usage

See the demo at williaster.github.io/data-ui for more example outputs.

screen shot 2017-06-28 at 5 48 06 pm
import { scaleOrdinal } from '@vx/scale';
import { LegendOrdinal } from '@vx/legend';

import { colors } from '@data-ui/theme';
import { RadialChart, ArcSeries, ArcLabel } from '@data-ui/radial-chart';

const colorScale = scaleOrdinal({ range: colors.categories });

export default () => (
  <div style={{ display: 'flex', alignItems: 'center' }}>
    <RadialChart
      ariaLabel="This is a radial-chart chart of..."
      width={width}
      height={height}
      margin={{ top, right, bottom, left }}
    >
      <ArcSeries
        data={data}
        pieValue={d => d.value}
        fill={arc => colorScale(arc.data.label)}
        stroke="#fff"
        strokeWidth={1}
        label{arc => `${(arc.data.value).toFixed(1)}%`}
        labelComponent={<ArcLabel />}
        innerRadius={radius => 0.35 * radius}
        outerRadius={radius => 0.6 * radius}
        labelRadius={radius => 0.75 * radius}
      />
    </RadialChart>
    <LegendOrdinal
      direction="column"
      scale={colorScale}
      shape="rect"
      fill={({ datum }) => colorScale(datum)}
      labelFormat={label => label}
    />
  </div>
);

Roadmap

  • more types of radial series
  • interactions (eg tooltips)
  • animations / transitions

Although pie 🍰 and donut 🍩 charts are frequently encountered, they are not the most effective visualization for conveying quatitative information. With that caveat, when used well they can effecvitely give an overview of population makeup which is an entirely reasonable use of these charts. We don't recommend using >7 slices for user readability.

@data-ui packages