# React Google Charts [![CircleCI][circleci-badge]][circleci-href] [![NPM][npm-dm-badge]][npm-href] [![NPM][npm-version-badge]][npm-href] [![NPM][npm-license-badge]][npm-href] [![BundlePhobia][bundlephobia-badge]][bundlephobia-href] A thin, typed, React wrapper for [Google Charts](https://developers.google.com/chart/interactive/docs/reference). ## [Docs and examples](https://react-google-charts.com/). - [React Google Charts](#react-google-charts) - [Docs and examples.](#docs-and-examples) - [Installation](#installation) - [Quick Start](#quick-start) - [Quick Walkthrough](#quick-walkthrough) - [Initialize from data array](#initialize-from-data-array) - [Initialize using rows and columns](#initialize-using-rows-and-columns) - [Listen to chart events](#listen-to-chart-events) - [Examples](#examples) - [Load Data](#load-data) - [Load Data From SpreadSheet](#load-data-from-spreadsheet) - [Charts](#charts) - [Area Chart](#area-chart) - [Bar Chart](#bar-chart) - [Bubble Chart](#bubble-chart) - [Calendar Chart](#calendar-chart) - [Candlestick Chart](#candlestick-chart) - [Column Chart](#column-chart) - [Diff Scatter Chart](#diff-scatter-chart) - [Diff Column Chart](#diff-column-chart) - [Donut Chart](#donut-chart) - [Gantt Chart](#gantt-chart) - [Gauge Chart](#gauge-chart) - [Geo Chart](#geo-chart) - [Histogram Chart](#histogram-chart) - [Line Chart](#line-chart) - [Material Bar Chart](#material-bar-chart) - [Material Line Chart](#material-line-chart) - [Org Chart](#org-chart) - [Pie Chart](#pie-chart) - [Sankey Chart](#sankey-chart) - [Scatter Chart](#scatter-chart) - [Stepped Area Chart](#stepped-area-chart) - [Table Chart](#table-chart) - [Timeline Chart](#timeline-chart) - [Treemap Chart](#treemap-chart) - [Waterfall Chart](#waterfall-chart) - [Wordtree Chart](#wordtree-chart) - [Run the example app](#run-the-example-app) - [Contributing](#contributing) ## Installation With your favorite package manager (yarn, pnpm or npm) : ```sh yarn add react-google-charts # or npm i -s react-google-charts ``` Note : If you're using react < 16.3 then use 2.x version: ```sh yarn add react-google-charts@2 ``` ## Quick Start ```javascript import * as React from "react"; import { render } from "react-dom"; import { Chart } from "react-google-charts"; export default class App extends React.Component { render() { return (
); } } render(, document.querySelector("#app")); ``` ## Quick Walkthrough ### Initialize from data array ```javascript import { Chart } from "react-google-charts"; import * as React from "react"; import { render } from "react-dom"; const options = { title: "Age vs. Weight comparison", hAxis: { title: "Age", viewWindow: { min: 0, max: 15 } }, vAxis: { title: "Weight", viewWindow: { min: 0, max: 15 } }, legend: "none" }; const data = [ ["Age", "Weight"], [8, 12], [4, 5.5], [11, 14], [4, 5], [3, 3.5], [6.5, 7] ]; const ExampleChart = () => { return ( ); }; render(, document.getElementByID("app")); ``` ### Initialize using rows and columns ```javascript import * as React from "react"; import { Chart } from "react-google-charts"; const ExampleChart = () => { return ( ); }; export default ExampleChart; ``` ### 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. ```javascript import * as React from "react"; import { Chart } from "react-google-charts"; const chartEvents = [ { eventName: "select", callback({ chartWrapper }) { console.log("Selected ", chartWrapper.getChart().getSelection()); } } ]; const data = [ ["age", "weight"], [8, 12], [4, 5.5], [11, 14], [4, 5], [3, 3.5], [6.5, 7] ]; const options = { title: "Age vs. Weight comparison", hAxis: { title: "Age", viewWindow: { min: 0, max: 15 } }, vAxis: { title: "Weight", viewWindow: { min: 0, max: 15 } }, legend: "none" }; const ExampleChart = () => { return ( ); }; export default ExampleChart; ``` ## Examples ### Load Data #### Load Data From SpreadSheet - [Demo](https://react-google-charts.com/data-sources/from-google-spreadsheet#simple-example) ### Charts #### Area Chart - [Demo](https://react-google-charts.com/area-chart) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/area-chart) - [Raw Code](./sandboxes/area-chart/index.js) #### Bar Chart - [Demo](https://react-google-charts.com/bar-chart) - [Code](./sandboxes/bar-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/bar-chart) #### Bubble Chart - [Demo][barchart-demo] - [Code][barchart-example-code] - [Sandbox][barchart-example-sandbox] #### Calendar Chart - [Demo](https://react-google-charts.com/calendar-chart) - [Code](./sandboxes/calendar/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/calendar) #### Candlestick Chart - [Demo](https://react-google-charts.com/candleStick-chart) - [Code](./sandboxes/candlestick/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/candlestick) #### Column Chart - [Code](./sandboxes/column-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/column-chart) #### Diff Scatter Chart - [Demo](https://react-google-charts.com/diff-chart) - [Code](./sandboxes/diff-scatter-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/diff-scatter-chart) #### Diff Column Chart - [Demo](https://react-google-charts.com/diff-chart#diff-column-charts) - [Code](./sandboxes/diff-column-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/diff-column-chart) #### Donut Chart - [Code](./sandboxes/donut-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/donut-chart) #### Gantt Chart - [Demo](https://react-google-charts.com/gantt-chart) - [Code](./sandboxes/gantt-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/gantt-chart) #### Gauge Chart - [Demo](https://react-google-charts.com/gauge-chart) - [Code](./sandboxes/gauge/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/gauge) #### Geo Chart - [Demo](https://react-google-charts.com/geo-chart) - [Code](./sandboxes/geo-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/geo-chart) #### Histogram Chart - [Demo](https://react-google-charts.com/histogram-chart) - [Code](./sandboxes/histogram/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/histogram) #### Line Chart - [Demo](https://react-google-charts.com/line-chart) - [Code](./sandboxes/linechart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/linechart) #### Material Bar Chart - [Demo](https://react-google-charts.com/bar-chart#material-design) - [Code](./sandboxes/material-bar-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/material-bar-chart) #### Material Line Chart - [Demo](https://react-google-charts.com/line-chart#material-design-linechart) - [Code](./sandboxes/material-line-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/material-line-chart) #### Org Chart - [Demo](https://react-google-charts.com/org-chart) - [Code](./sandboxes/org-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/org-chart) #### Pie Chart - [Demo](https://react-google-charts.com/pie-chart) - [Code](./sandboxes/pie-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/pie-chart) #### Sankey Chart - [Demo](https://react-google-charts.com/sankey-diagram) - [Code](./sandboxes/sankey/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/sankey) #### Scatter Chart - [Demo](https://react-google-charts.com/scatter-chart) - [Code](./sandboxes/scatter-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/scatter-chart) #### Stepped Area Chart - [Demo](https://react-google-charts.com/stepped-area-chart) - [Code](./sandboxes/stepped-area-chart/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/stepped-area-chart) #### Table Chart - [Demo](https://react-google-charts.com/table-chart) - [Code](./sandboxes/table/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/table) #### Timeline Chart - [Demo](https://react-google-charts.com/timeline-chart) - [Code](./sandboxes/timeline/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/timeline) #### Treemap Chart - [Demo](https://react-google-charts.com/treemap-chart) - [Code](./sandboxes/treemap/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/treemap) #### Waterfall Chart - [Code](./sandboxes/waterfall/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/waterfall) #### Wordtree Chart - [Demo](https://react-google-charts.com/wordtree-chart) - [Code](./sandboxes/wordtree/index.js) - [Sandbox](https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/wordtree) ### Run the example app ```bash git clone https://www.github.com/rakannimer/react-google-charts cd react-google-charts npm i npm start ``` ## Contributing Contributions are very welcome. Check out [CONTRIBUTING.md](CONTRIBUTING.md) [circleci-href]: https://circleci.com/gh/rakannimer/react-google-charts [circleci-badge]: https://img.shields.io/circleci/project/github/rakannimer/react-google-charts.svg [npm-href]: https://www.npmjs.com/package/react-google-charts [npm-dm-badge]: https://img.shields.io/npm/dm/react-google-charts.svg [npm-version-badge]: https://badgen.net/npm/v/react-google-charts [npm-license-badge]: https://img.shields.io/github/license/rakannimer/react-google-charts.svg [bundlephobia-badge]: https://img.shields.io/bundlephobia/minzip/react-google-charts.svg [bundlephobia-href]: https://bundlephobia.com/result?p=react-google-charts - [Demo](https://rakannimer.github.io/react-google-charts/#/react-google-charts/bar-chart) [barchart-demo]: https://react-google-charts.com/bar-chart [barchart-example-code]: ./sandboxes/bar-chart/index.js [barchart-example-sandbox]: https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/bar-chart [bubblechart-demo]: https://react-google-charts.com/bubble-chart [bubblechart-example-code]: ./sandboxes/bubble-chart/index.js [bubblechart-example-sandbox]: https://codesandbox.io/s/github/rakannimer/react-google-charts/tree/master/sandboxes/bubble-chart