Skip to content

Instantly share code, notes, and snippets.

componentDidMount() {
// use d3's events so we get to use the handy d3.mouse function to get x,y in svg coords
const handleMouseMove = this._handleMouseMove;
d3.select(React.findDOMNode(this.refs.svg)).on('mousemove', function mouseMoveHandler() {
handleMouseMove(d3.mouse(this));
}).on('mouseleave', function mouseOutHandler() {
handleMouseMove([null, null]);
});
},
import d3 from 'd3';
/**
* Like d3.bisect but chooses the closest element, not always the left or right
* That is, finds the element in the array closest to the value through the use of accessor
*/
export function findClosest(array, value, accessor) {
if (!array || !array.length) {
return null;
}
.line-chart .highlight-mark {
fill: #FA7F9F;
stroke: #891836;
stroke-width: 1px;
}
.radial-heatmap circle.highlight {
stroke: #FA7F9F;
}
@pbeshai
pbeshai / LineChart-vega-basic.js
Last active December 19, 2015 20:01
LineChart using React and Vega, no interactivity
import React, { Component, PropTypes } from 'react';
import PureRenderMixin from 'react-addons-pure-render-mixin';
import vg from 'vega';
class LineChart extends Component {
constructor(props) {
super(props);
this.state = {
vis: null
};
@pbeshai
pbeshai / LineChart-vega-hover-voronoi.js
Created December 19, 2015 20:52
LineChart using React and Vega, with highlight on mouseover using voronoi cells
import React, { Component, PropTypes } from 'react';
import PureRenderMixin from 'react-addons-pure-render-mixin';
import vg from 'vega';
class LineChart extends Component {
constructor(props) {
super(props);
this.state = {
vis: null
};
@pbeshai
pbeshai / LineChart-vega-hover-mousemove.js
Created December 19, 2015 20:52
LineChart using React and Vega, with highlight on mouseover using mouse move
import React, { Component, PropTypes } from 'react';
import PureRenderMixin from 'react-addons-pure-render-mixin';
import vg from 'vega';
class LineChart extends Component {
constructor(props) {
super(props);
this.state = {
vis: null
};
@pbeshai
pbeshai / RadialHeatmap-vega.js
Created December 19, 2015 22:08
Radial Heatmap using React and Vega, with mouse hover behaviour
import React, { Component, PropTypes } from 'react';
import PureRenderMixin from 'react-addons-pure-render-mixin';
import vg from 'vega';
class RadialHeatmap extends Component {
constructor(props) {
super(props);
this.state = {
vis: null
};
@pbeshai
pbeshai / computeSegments.js
Last active April 2, 2018 11:28
Helpers for Showing Missing Data in Line Charts
/**
* Helper function to compute the contiguous segments of the data
*
* Derived from https://github.com/pbeshai/d3-line-chunked/blob/master/src/lineChunked.js
*
* @param {Array} lineData the line data
* @param {Function} defined function that takes a data point and returns true if
* it is defined, false otherwise
* @param {Function} isNext function that takes the previous data point and the
* current one and returns true if the current point is the expected one to
@pbeshai
pbeshai / .block
Last active October 11, 2019 18:43
Jagged Lines
license: mit
height: 500
border: no