Skip to content

Commit 2886b6e

Browse files
committed
axis ticks - tickvals, ticktext
1 parent 01b6a8b commit 2886b6e

File tree

5 files changed

+23
-34
lines changed

5 files changed

+23
-34
lines changed

src/traces/parcoords/attributes.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
var colorAttributes = require('../../components/colorscale/color_attributes');
1212
var colorbarAttrs = require('../../components/colorbar/attributes');
13+
var axesAttrs = require('../../plots/cartesian/layout_attributes');
1314

1415
var extendFlat = require('../../lib/extend').extendFlat;
1516

@@ -66,12 +67,7 @@ module.exports = {
6667
role: 'info',
6768
description: 'The shown name of the dimension.'
6869
},
69-
integer: {
70-
valType: 'boolean',
71-
dflt: false,
72-
role: 'info',
73-
description: 'The shown name of the dimension.'
74-
},
70+
tickvals: axesAttrs.tickvals,
7571
visible: {
7672
valType: 'boolean',
7773
dflt: true,

src/traces/parcoords/calc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ module.exports = function calc(gd, trace) {
3636
i: i,
3737
range: vals[i].range,
3838
constraintrange: vals[i].constraintrange,
39-
integer: vals[i].integer,
39+
tickvals: vals[i].tickvals,
4040
visible: vals[i].visible,
4141
label: vals[i].label,
4242
values: vals[i].values

src/traces/parcoords/defaults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ function dimensionsDefaults(traceIn, traceOut) {
4848

4949
coerce('id');
5050
coerce('label');
51-
coerce('integer');
51+
coerce('tickvals');
5252
coerce('visible');
5353
coerce('range');
5454
coerce('constraintrange');

src/traces/parcoords/parcoords.js

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ var lineLayerMaker = require('./lines');
1212
var Lib = require('../../lib');
1313
var d3 = require('d3');
1414

15+
1516
var overdrag = 40;
1617
var legendWidth = 80;
17-
var integerPadding = 0;
1818
var verticalPadding = 2; // otherwise, horizontal lines on top or bottom are of lower width
1919

2020
var filterBar = {
@@ -69,12 +69,14 @@ function ordinalScaleSnap(scale, v) {
6969
return a[a.length - 1];
7070
}
7171

72-
function domainScale(height, padding, integerPadding, dimension) {
72+
function domainScale(height, padding, dimension) {
7373
var extent = dimensionExtent(dimension);
74-
return dimension.integer ?
74+
return dimension.tickvals ?
7575
d3.scale.ordinal()
76-
.domain(d3.range(Math.round(extent[0]), Math.round(extent[1] + 1)))
77-
.rangePoints([height - padding, padding], integerPadding) :
76+
.domain(dimension.tickvals)
77+
.range(dimension.tickvals
78+
.map(function(d) {return (d - extent[0]) / (extent[1] - extent[0]);})
79+
.map(function(d) {return (height - padding + d * (padding - (height - padding)));})) :
7880
d3.scale.linear()
7981
.domain(extent)
8082
.range([height - padding, padding]);
@@ -83,12 +85,11 @@ function domainScale(height, padding, integerPadding, dimension) {
8385
function unitScale(height, padding) {return d3.scale.linear().range([height - padding, padding]);}
8486
function domainToUnitScale(dimension) {return d3.scale.linear().domain(dimensionExtent(dimension));}
8587

86-
function integerScale(integerPadding, dimension) {
88+
function integerScale(dimension) {
8789
var extent = dimensionExtent(dimension);
88-
return dimension.integer && d3.scale.ordinal()
89-
.domain(d3.range(0, Math.round(extent[1] + 1) - Math.round(extent[0]))
90-
.map(function(d, _, a) {return d / (a.length - 1);}))
91-
.rangePoints([0, 1], integerPadding);
90+
return dimension.tickvals && d3.scale.ordinal()
91+
.domain(dimension.tickvals)
92+
.range(dimension.tickvals.map(function(d) {return (d - extent[0]) / (extent[1] - extent[0]);}));
9293
}
9394

9495
function model(layout, d, i) {
@@ -149,7 +150,8 @@ function viewModel(model) {
149150
return {
150151
key: dimension.id || dimension.label,
151152
label: dimension.label,
152-
integer: dimension.integer,
153+
tickvals: dimension.tickvals || false,
154+
integer: !!dimension.tickvals,
153155
scatter: dimension.scatter,
154156
xIndex: i,
155157
originalXIndex: i,
@@ -160,8 +162,8 @@ function viewModel(model) {
160162
x: xScale(i),
161163
canvasX: xScale(i) * canvasPixelRatio,
162164
unitScale: unitScale(height, verticalPadding),
163-
domainScale: domainScale(height, verticalPadding, integerPadding, dimension),
164-
integerScale: integerScale(integerPadding, dimension),
165+
domainScale: domainScale(height, verticalPadding, dimension),
166+
integerScale: integerScale(dimension),
165167
domainToUnitScale: domainToUnit,
166168
pieChartCheat: dimension.pieChartCheat,
167169
filter: dimension.constraintrange ? dimension.constraintrange.map(domainToUnit) : [0, 1],

0 commit comments

Comments
 (0)