@@ -12,9 +12,9 @@ var lineLayerMaker = require('./lines');
12
12
var Lib = require ( '../../lib' ) ;
13
13
var d3 = require ( 'd3' ) ;
14
14
15
+
15
16
var overdrag = 40 ;
16
17
var legendWidth = 80 ;
17
- var integerPadding = 0 ;
18
18
var verticalPadding = 2 ; // otherwise, horizontal lines on top or bottom are of lower width
19
19
20
20
var filterBar = {
@@ -69,12 +69,14 @@ function ordinalScaleSnap(scale, v) {
69
69
return a [ a . length - 1 ] ;
70
70
}
71
71
72
- function domainScale ( height , padding , integerPadding , dimension ) {
72
+ function domainScale ( height , padding , dimension ) {
73
73
var extent = dimensionExtent ( dimension ) ;
74
- return dimension . integer ?
74
+ return dimension . tickvals ?
75
75
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 ) ) ) ; } ) ) :
78
80
d3 . scale . linear ( )
79
81
. domain ( extent )
80
82
. range ( [ height - padding , padding ] ) ;
@@ -83,12 +85,11 @@ function domainScale(height, padding, integerPadding, dimension) {
83
85
function unitScale ( height , padding ) { return d3 . scale . linear ( ) . range ( [ height - padding , padding ] ) ; }
84
86
function domainToUnitScale ( dimension ) { return d3 . scale . linear ( ) . domain ( dimensionExtent ( dimension ) ) ; }
85
87
86
- function integerScale ( integerPadding , dimension ) {
88
+ function integerScale ( dimension ) {
87
89
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 ] ) ; } ) ) ;
92
93
}
93
94
94
95
function model ( layout , d , i ) {
@@ -149,7 +150,8 @@ function viewModel(model) {
149
150
return {
150
151
key : dimension . id || dimension . label ,
151
152
label : dimension . label ,
152
- integer : dimension . integer ,
153
+ tickvals : dimension . tickvals || false ,
154
+ integer : ! ! dimension . tickvals ,
153
155
scatter : dimension . scatter ,
154
156
xIndex : i ,
155
157
originalXIndex : i ,
@@ -160,8 +162,8 @@ function viewModel(model) {
160
162
x : xScale ( i ) ,
161
163
canvasX : xScale ( i ) * canvasPixelRatio ,
162
164
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 ) ,
165
167
domainToUnitScale : domainToUnit ,
166
168
pieChartCheat : dimension . pieChartCheat ,
167
169
filter : dimension . constraintrange ? dimension . constraintrange . map ( domainToUnit ) : [ 0 , 1 ] ,
0 commit comments