1.0.2 • Published 7 years ago

react-solidgauge v1.0.2

Weekly downloads
38
License
MIT
Repository
github
Last release
7 years ago

React-solidgauge

Build Status Coverage Status

This is a really nice looking react d3 graph that is sort of inspired by amcharts solid-gauge. This chart is supposed to handle situations where you need to compare level of completions or performance between similar entities.

Install from NPM

npm install react-solidgauge

Examples

I will do a proper example page when I have finished building all the charts that I need, till then check out these examples

SolidGauge Values shape

The Chart needs values to be set like the example below.

const values = [{
  value: 34,
  label: 'Facebook campaign',
  fill: '#118',
  stroke: '#050570',
}, .....]

if the value is not between 0 and 100 then the value will be set to either, 0 if it's less than zero and 100 if it's more than 100

Shadow Value

You can set a shadow effect on the background paths by setting the shadow prop on solid gauge. See the example below.

shadow={{
  y: '-10%',
  x: '-10%',
  height: '130%',
  width: '130%',
  stdDeviation: 2,
  dx: 1,
  dy: 2,
}}

Responsive

If you set the responsive prop then the chart will calculate the width and height of the parent element and fill into that space. Also it will listen for screen resize and if it fires it will rerender. This is pretty conveniant when you are using a responsive grid system and dont know how big the chart will be.

Props for SolidGauge

NameTypeDefaultDescription
responsivebooleantrueRerenders the chart on screen resize and calculates width and height of parent and uses 100% dimensions available, perfect if you are using a responsive framework like bootstrap or google's mdl
widthnumbersets the width of the component, if responsive is true then it will fill out into the parent container
heightnumbersets the height of the component, the same applies here to the responsive prop.
chartMarginnumbernullThe Margin frame of the chart in pixels
endAnglenumberMath.PI*1.5EndAngle value
valuesArray of shapeThis is the array that holds all the info, each shape has value, label, fill and stroke, that are applied to the legend and the path
pathWidthnumber0.1The path width, 0.1 by default means 10% of the chart radius
pathMarginnumber0.1The margin between the paths, 0.1 by default means 10% of the chart radius
circleRadiusnumbernullIf this prop is set then the chart will add a circle to the end of the path.
backgroundshape{fill:'#ccc',stroke:'#999'}The fill and stroke of the background arc
fontSizestringnullSets the fontsize for lables
animationTimenumber2000The length of the animation in ms, if this number is set then the paths will animate
animationEasestringeaseBounceThe name of the easing function that's being used check out d3-easing project for a complete list of easing functions
showTooltipbooltrueIf true then show the tooltip
mouseFillstringrgba(254,254,254,.95)The background fill of the mouse
mouseStrokeWidthnumber4The Mouse stroke width - a.k.a the borders
shadowobjectIf this object is set then the background paths will have a shadow effect on them

Using SolidGauge

import React, { Component } from 'react';
import { render } from 'react-dom';
import SolidGauge from 'react-solidgauge';

const values = [
  { label: 'Email Campaign',    value: 189, fill: '#881' },
  { label: 'Google AdWords',    value: 65,  fill: '#188' },
  { label: 'Youtube Campaign',  value: 49,  fill: '#818' },
  { label: 'Facebook Campaign', value: 29,  fill: '#bb4' },
];

class Chart extends Component {
  constructor() {
    super();
    this.onClick = this.onClick.bind(this);
  }

  onClick() {
    this.setState({
      state: this.state.values.map(d => {
        d.values = Math.random() * 100;
        return d;
      });
    });
  }

  render() {
    return (
      <div style={{
        width: '100%',
        height: '500px',
      }}>
        <SolidGauge
          responsive
          background={{
            fill: '#ddd',
            stroke: '#aaa',
          }}
          pathWidth={0.1}
          pathMargin={0.1}
          values={this.state.values}
          animationTime={1500}
          showTooltip
          animateTime={2000}
          ease='easeLinear'
          fontSize={18}
          />
        </div>
    );
  }
}

render (<Chart />, document.getElementById('app'));

Licence

The MIT License (MIT) Copyright (c) 2016 Arnthor Agustsson

1.0.2

7 years ago

1.0.15

7 years ago

1.0.14

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.2.0

7 years ago

0.1.2

7 years ago

0.1.0

7 years ago

0.0.12

7 years ago

0.0.11

7 years ago

0.0.1

7 years ago