Skip to content

Commit 440f815

Browse files
committed
Merge pull request plotly#441 from plotly/rangeslider-datafix
Rangeslider data conversion upgrade
2 parents 1c84913 + ca7c175 commit 440f815

File tree

3 files changed

+45
-28
lines changed

3 files changed

+45
-28
lines changed

src/components/rangeslider/data_processors.js

-18
This file was deleted.

src/components/rangeslider/range_plot.js

+16-10
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ var Symbols = require('../drawing/symbol_defs');
1212
var Drawing = require('../drawing');
1313

1414
var helpers = require('./helpers');
15-
var dataProcessors = require('./data_processors');
1615
var svgNS = require('../../constants/xmlns_namespaces').svg;
1716

1817
module.exports = function rangePlot(gd, w, h) {
@@ -42,10 +41,6 @@ module.exports = function rangePlot(gd, w, h) {
4241
rangePlot.appendChild(clipDefs);
4342

4443

45-
var processX = dataProcessors[gd._fullLayout.xaxis.type || 'category'],
46-
processY = dataProcessors[gd._fullLayout.yaxis.type || 'category'];
47-
48-
4944
// for now, only scatter traces are supported
5045
var allowedTypes = ['scatter'];
5146

@@ -59,12 +54,13 @@ module.exports = function rangePlot(gd, w, h) {
5954
continue;
6055
}
6156

62-
for(var k = 0; k < trace.x.length; k++) {
63-
var x = processX(trace.x[k], k),
64-
y = processY(trace.y[k], k);
57+
var x = makeLinearData(trace, xaxis),
58+
y = makeLinearData(trace, yaxis);
6559

66-
var posX = w * (x - minX) / (maxX - minX),
67-
posY = h * (1 - (y - minY) / (maxY - minY));
60+
for(var k = 0; k < x.length; k++) {
61+
62+
var posX = w * (x[k] - minX) / (maxX - minX),
63+
posY = h * (1 - (y[k] - minY) / (maxY - minY));
6864

6965
pointPairs.push([posX, posY]);
7066
}
@@ -77,6 +73,16 @@ module.exports = function rangePlot(gd, w, h) {
7773
return rangePlot;
7874
};
7975

76+
function makeLinearData(trace, axis) {
77+
var data = axis.makeCalcdata(trace || [], axis._id[0]);
78+
79+
for(var i = 0; i < data.length; i++) {
80+
data[i] = axis.c2l(data[i]);
81+
}
82+
83+
return data;
84+
}
85+
8086

8187
function makeScatter(trace, pointPairs, w, h) {
8288

test/jasmine/tests/range_slider_test.js

+29
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,35 @@ describe('the range slider', function() {
308308
expect(layoutOut).toEqual(expected);
309309
});
310310
});
311+
312+
describe('in general', function() {
313+
314+
beforeEach(function() {
315+
gd = createGraphDiv();
316+
});
317+
318+
afterEach(destroyGraphDiv);
319+
320+
it('should plot when only x data is provided', function(done) {
321+
Plotly.plot(gd, [{ x: [1,2,3] }], { xaxis: { rangeslider: {} }})
322+
.then(function() {
323+
var rangeslider = document.getElementsByClassName('range-slider');
324+
325+
expect(rangeslider.length).toBe(1);
326+
})
327+
.then(done);
328+
});
329+
330+
it('should plot when only y data is provided', function(done) {
331+
Plotly.plot(gd, [{ y: [1,2,3] }], { xaxis: { rangeslider: {} }})
332+
.then(function() {
333+
var rangeslider = document.getElementsByClassName('range-slider');
334+
335+
expect(rangeslider.length).toBe(1);
336+
})
337+
.then(done);
338+
});
339+
});
311340
});
312341

313342

0 commit comments

Comments
 (0)