Giter VIP home page Giter VIP logo

react-google-charts's Introduction

react-google-charts

[![npm package][npm-badge]][npm]

A React JS wrapper to make it easy and fun to work with Google Charts.

Installation

npm install react-google-charts

Quick Start

import React from 'react'
import {render} from 'react-dom'
import {Chart} from 'react-google-charts'

export default class App extends React.Component{
  render() {
    return (
    <div className={"my-pretty-chart-container"}>
      <Chart chartType = "ScatterChart" data = {[     ['Age', 'Weight'], [ 8,      12], [ 4,      5.5]]} options = {{}} graph_id = "ScatterChart"  width={"100%"} height={"400px"}  legend_toggle={true} />
    </div>
    )
  }
}
render(<App/>, document.querySelector('#app'));

Quick Walkthrough

Initialize from dataTable array :

componentDidMount() {

    let options = {
        title: 'Age vs. Weight comparison',
        hAxis: {title: 'Age', minValue: 0, maxValue: 15},
        vAxis: {title: 'Weight', minValue: 0, maxValue: 15},
        legend: 'none'
    };

    let data = [
       	['Age', 'Weight'],
       	[ 8,      12],
       	[ 4,      5.5],
       	[ 11,     14],
       	[ 4,      5],
       	[ 3,      3.5],
       	[ 6.5,    7]
    ];
    this.setState({
       	'data' : data,
       	'options' : options
     });


},
render() {
    <Chart chartType = "ScatterChart" data = {this.state.data} options = {this.state.options} graph_id = "ScatterChart"  width={"100%"} height={"400px"}  legend_toggle={true} />
}

Initialize using rows and columns :

componentDidMount: function() {

    var options = {
       	title: 'Age vs. Weight comparison',
        hAxis: {title: 'Age', minValue: 0, maxValue: 15},
        vAxis: {title: 'Weight', minValue: 0, maxValue: 15},
        legend: 'none'
    };

    var rows = [
       	[ 8,      12],
       	[ 4,      5.5],
       	[ 11,     14],
       	[ 4,      5],
       	[ 3,      3.5],
       	[ 6.5,    7]
    ];

    var columns = [
	{
		'type': 'number',
		'label' : 'Age'
	}, 
	{
		'type' : 'number',
		'label' : 'Weight'
	}
	];

      	this.setState({
            'rows' : rows,
            'columns' : columns,
            'options' : options
        });


},
render: function() {
        <Chart chartType = "ScatterChart" rows = {this.state.rows} columns = {this.state.columns} options = {this.state.options} graph_id = "ScatterChart"  width={"100%"} height={"400px"}  legend_toggle={true} />

}

Listen to chart events

Set the chart-specific events you want to listen to and the corresponding callback. The callback has the component as an argument.

componentDidMount: function() {
	var chart_events = [
        {
       	    eventName : 'onmouseover',
            callback  : function(Chart) { 
                // Returns Chart so you can access props and  the ChartWrapper object from chart.wrapper
                console.log("mouseover the chart"); 
            }
        }
        ];

},
render: function() {
        <Chart chartType = "ScatterChart" rows = {this.state.rows} columns = {this.state.columns} options = {this.state.options} graph_id = "ScatterChart"  width={"100%"} height={"400px"} chartEvents = {chart_events} />

}

##Isomorphic support

Supports isomorphic configurations out of the box thanks to @voogryk

Examples

The demo directory is the source code of : http://rakannimer.github.io/react-google-charts/

Check it out.

Contributing

Contributions are very welcome. Check out CONTRIBUTING.md

react-google-charts's People

Contributors

charleschenster avatar evilfer avatar jadjoubran avatar kmayer avatar kulak avatar lgo avatar marcin1j avatar mkscrg avatar nwind21 avatar rakannimer avatar

Watchers

 avatar  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.