99
1010'use strict' ;
1111
12- var d3 = require ( 'd3' ) ;
13-
1412var Plots = require ( '../../plots/plots' ) ;
15- var getColorscale = require ( '../../components/colorscale/get_scale' ) ;
1613var drawColorbar = require ( '../../components/colorbar/draw' ) ;
1714
15+ var makeColorMap = require ( './make_color_map' ) ;
16+
1817
1918module . exports = function colorbar ( gd , cd ) {
2019 var trace = cd [ 0 ] . trace ,
@@ -32,55 +31,23 @@ module.exports = function colorbar(gd, cd) {
3231
3332 var contours = trace . contours ,
3433 line = trace . line ,
35- cs = contours . size || 1 ,
36- nc = Math . floor ( ( contours . end + cs / 10 - contours . start ) / cs ) + 1 ,
37- scl = getColorscale ( trace . colorscale ) ,
38- extraLevel = contours . coloring === 'lines' ? 0 : 1 ,
39- colormap = d3 . scale . linear ( ) . interpolate ( d3 . interpolateRgb ) ,
40- colorDomain = scl . map ( function ( si ) {
41- return ( si [ 0 ] * ( nc + extraLevel - 1 ) - ( extraLevel / 2 ) ) * cs +
42- contours . start ;
43- } ) ,
44- colorRange = scl . map ( function ( si ) { return si [ 1 ] ; } ) ;
34+ cs = contours . size || 1 ,
35+ coloring = contours . coloring ;
36+
37+ var colorMap = makeColorMap ( trace , { isColorbar : true } ) ;
4538
46- // colorbar fill and lines
47- if ( contours . coloring === 'heatmap' ) {
48- if ( trace . zauto && trace . autocontour === false ) {
49- trace . zmin = contours . start - cs / 2 ;
50- trace . zmax = trace . zmin + nc * cs ;
51- }
39+ if ( coloring === 'heatmap' ) {
5240 cb . filllevels ( {
5341 start : trace . zmin ,
5442 end : trace . zmax ,
55- size : ( trace . zmax - trace . zmin ) / 254
43+ size : ( trace . zmax - trace . zmin ) / 254
5644 } ) ;
57- colorDomain = scl . map ( function ( si ) {
58- return si [ 0 ] * ( trace . zmax - trace . zmin ) + trace . zmin ;
59- } ) ;
60-
61- // do the contours extend beyond the colorscale?
62- // if so, extend the colorscale with constants
63- var zRange = d3 . extent ( [ trace . zmin , trace . zmax , contours . start ,
64- contours . start + cs * ( nc - 1 ) ] ) ,
65- zmin = zRange [ trace . zmin < trace . zmax ? 0 : 1 ] ,
66- zmax = zRange [ trace . zmin < trace . zmax ? 1 : 0 ] ;
67- if ( zmin !== trace . zmin ) {
68- colorDomain . splice ( 0 , 0 , zmin ) ;
69- colorRange . splice ( 0 , 0 , colorRange [ 0 ] ) ;
70- }
71- if ( zmax !== trace . zmax ) {
72- colorDomain . push ( zmax ) ;
73- colorRange . push ( colorRange [ colorRange . length - 1 ] ) ;
74- }
7545 }
7646
77- colormap . domain ( colorDomain ) . range ( colorRange ) ;
78-
79- cb . fillcolor ( contours . coloring === 'fill' || contours . coloring === 'heatmap' ?
80- colormap : '' )
47+ cb . fillcolor ( ( coloring === 'fill' || coloring === 'heatmap' ) ? colorMap : '' )
8148 . line ( {
82- color : contours . coloring === 'lines' ? colormap : line . color ,
83- width : contours . showlines !== false ? line . width : 0 ,
49+ color : coloring === 'lines' ? colorMap : line . color ,
50+ width : contours . showlines !== false ? line . width : 0 ,
8451 dash : line . dash
8552 } )
8653 . levels ( {
0 commit comments