d3.drag().on('drag', () => { const barsTranslateX = bars.node().transform.baseVal[0].matrix.e; const barsWidth = bars.node().getBBox().width; const xAxisTranslateX = d3.select('.axis.x').node().transform.baseVal[0].matrix.e; const dx = d3.event.dx; if (barsTranslateX + dx < 0 && barsTranslateX + dx > -barsWidth + this.innerWidth()) { bars.attr('transform', `translate(${barsTranslateX + dx}, 0)`); d3.select('.axis.x').attr('transform', `translate(${xAxisTranslateX + d3.event.dx}, ${xAxisTranslateY})`); } })
onresize() { const trans = d3.zoomTransform(this.svg.node()); const ctrans = this.panZoom.constrain()(trans, this.getSvgExtent(), this.panZoom.translateExtent()); this.panZoom.transform(this.svg, ctrans); }
function exports(_inputConfig, _container) { if(_container) container = _container; d3.select(d3.select(container).node().parentNode).selectAll('.svg-container>*:not(.chart-root)').remove(); config = (!config) ? _inputConfig : extendDeepAll(config, _inputConfig); if(!plot) plot = Plotly.micropolar.Axis(); convertedInput = Plotly.micropolar.adapter.plotly().convert(config); plot.config(convertedInput).render(container); _gd.data = config.data; _gd.layout = config.layout; manager.fillLayout(_gd); return config; }
//Wraps SVG text function wrap(text, width) { text.each(function() { var text = d3.select(this), words = text.text().split(/\s+/).reverse(), word, line = [], lineNumber = 0, lineHeight = 1.4, // ems y = text.attr("y"), x = text.attr("x"), dy = parseFloat(text.attr("dy")), tspan = text.text(null).append("tspan").attr("x", x).attr("y", y).attr("dy", dy + "em"); while (word = words.pop()) { line.push(word); tspan.text(line.join(" ")); if (tspan.node().getComputedTextLength() > width) { line.pop(); tspan.text(line.join(" ")); line = [word]; tspan = text.append("tspan").attr("x", x).attr("y", y).attr("dy", ++lineNumber * lineHeight + dy + "em").text(word); } } }); }
function getClipBBox(clipPathId) { var clipPath = d3.select('#' + clipPathId); var clipBBox; try { // this line throws an error in FF (38 and 45 at least) clipBBox = clipPath.node().getBBox(); } catch(e) { // use DOM attributes as fallback var path = d3.select(clipPath.node().firstChild); clipBBox = {}; ATTRS.forEach(function(attr) { clipBBox[attr] = path.attr(attr); }); } return clipBBox; }
function texToSVG(_texString, _config, _callback) { var randomID = 'math-output-' + Plotly.Lib.randstr([], 64); var tmpDiv = d3.select('body').append('div') .attr({id: randomID}) .style({visibility: 'hidden', position: 'absolute'}) .style({'font-size': _config.fontSize + 'px'}) .text(cleanEscapesForTex(_texString)); MathJax.Hub.Queue(['Typeset', MathJax.Hub, tmpDiv.node()], function() { var glyphDefs = d3.select('body').select('#MathJax_SVG_glyphs'); if(tmpDiv.select('.MathJax_SVG').empty() || !tmpDiv.select('svg').node()) { Lib.log('There was an error in the tex syntax.', _texString); _callback(); } else { var svgBBox = tmpDiv.select('svg').node().getBoundingClientRect(); _callback(tmpDiv.select('.MathJax_SVG'), glyphDefs, svgBBox); } tmpDiv.remove(); }); }
function getContext(){ var canvas = d3.select('canvas'); var context = canvas.node().getContext("2d"); var image = new Image; image.src = "IMG_1736.JPG"; image.onload = start; function start() { context.drawImage(image, 0, 0); image = context.getImageData(0, 0, width, height); voronoi(samples).forEach(function(cell) { var x = Math.floor(cell.point[0]), y = Math.floor(cell.point[1]), i = (y * width + x) << 2; context.fillStyle = d3.rgb(image.data[i + 0], image.data[i + 1], image.data[i + 2]) + ""; context.beginPath(); context.moveTo(cell[0][0], cell[0][1]); for (var i = 1, n = cell.length; i < n; ++i) context.lineTo(cell[i][0], cell[i][1]); context.closePath(); context.fill(); }); } }
}) .on('click', (d, index, nodes) => { const node = select(nodes[index]).node()
if(thisLabel.empty()) thisLabel = s.select('text'); var bb = Drawing.bBox(thisLabel.node());
label.attr('transform', ''); var tbb = ltext.node().getBoundingClientRect(); if(hovermode === 'x') { ltext.attr('text-anchor', 'middle')
Drawing.bBox(mathjaxGroup.node()).width * {end: -0.5, start: 0.5}[anchor]; mathjaxGroup.attr('transform', transform +
function appendEditable() { var plotDiv = d3.select(Plotly.Lib.getPlotDiv(that.node())), container = plotDiv.select('.svg-container'), div = container.append('div'); else mathjaxClass = '[class*=-math-group]'; if(mathjaxClass) { d3.select(that.node().parentNode).select(mathjaxClass).style({opacity: 0}); d3.select(document).on('mouseup', function() { if(d3.event.target === context) return false; if(document.activeElement === div.node()) div.node().blur(); }); })
.on('mouseover', (d, index, nodes) => { const bar = select(nodes[index]) const bounds = bar.node().getBoundingClientRect() const containerBounds = container.getBoundingClientRect() this.setState({