@@ -69,36 +69,19 @@ function calc(container, trace) {
69
69
}
70
70
71
71
// get log converted positions
72
- var rawx , rawy ;
73
- if ( xaxis . type === 'log' ) {
74
- rawx = x . slice ( 0 , count ) ;
75
- for ( i = 0 ; i < count ; i ++ ) {
76
- x [ i ] = xaxis . d2l ( x [ i ] ) ;
77
- }
78
- }
79
- else {
80
- rawx = x ;
81
- for ( i = 0 ; i < count ; i ++ ) {
82
- x [ i ] = parseFloat ( x [ i ] ) ;
83
- }
84
- }
85
- if ( yaxis . type === 'log' ) {
86
- rawy = y . slice ( 0 , count ) ;
87
- for ( i = 0 ; i < count ; i ++ ) {
88
- y [ i ] = yaxis . d2l ( y [ i ] ) ;
89
- }
90
- }
91
- else {
92
- rawy = y ;
93
- for ( i = 0 ; i < count ; i ++ ) {
94
- y [ i ] = parseFloat ( y [ i ] ) ;
95
- }
96
- }
72
+ var rawx = ( xaxis . type === 'log' || x . length > count ) ? x . slice ( 0 , count ) : x ;
73
+ var rawy = ( yaxis . type === 'log' || y . length > count ) ? y . slice ( 0 , count ) : y ;
74
+
75
+ var convertX = ( xaxis . type === 'log' ) ? xaxis . d2l : parseFloat ;
76
+ var convertY = ( yaxis . type === 'log' ) ? yaxis . d2l : parseFloat ;
97
77
98
78
// we need hi-precision for scatter2d
99
79
positions = new Array ( count * 2 ) ;
100
80
101
81
for ( i = 0 ; i < count ; i ++ ) {
82
+ x [ i ] = convertX ( x [ i ] ) ;
83
+ y [ i ] = convertY ( y [ i ] ) ;
84
+
102
85
// if no x defined, we are creating simple int sequence (API)
103
86
// we use parseFloat because it gives NaN (we need that for empty values to avoid drawing lines) and it is incredibly fast
104
87
xx = isNumeric ( x [ i ] ) ? + x [ i ] : NaN ;
0 commit comments