From af2f22f38fb9eb1a7e0816d246cc9ddbae169863 Mon Sep 17 00:00:00 2001 From: Jamie Nunez Date: Mon, 20 Nov 2017 15:00:19 -0800 Subject: [PATCH 1/4] Added cividis, a new colormap mathematically optimized while considering those with a color vision deficiency --- src/components/colorscale/scales.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/components/colorscale/scales.js b/src/components/colorscale/scales.js index 1993b937264..5b56ea2c9dd 100644 --- a/src/components/colorscale/scales.js +++ b/src/components/colorscale/scales.js @@ -126,4 +126,16 @@ module.exports = { [0.8784313725490196, '#addc30'], [0.9411764705882353, '#d8e219'], [1, '#fde725'] ] + + 'Cividis': [ + [0.000000, 'rgb(0,32,76)'], [0.058824, 'rgb(0,42,102)'], + [0.117647, 'rgb(0,52,110)'], [0.176471, 'rgb(39,63,108)'], + [0.235294, 'rgb(60,74,107)'], [0.294118, 'rgb(76,85,107)'], + [0.352941, 'rgb(91,95,109)'], [0.411765, 'rgb(104,106,112)'], + [0.470588, 'rgb(117,117,117)'], [0.529412, 'rgb(131,129,120)'], + [0.588235, 'rgb(146,140,120)'], [0.647059, 'rgb(161,152,118)'], + [0.705882, 'rgb(176,165,114)'], [0.764706, 'rgb(192,177,109)'], + [0.823529, 'rgb(209,191,102)'], [0.882353, 'rgb(225,204,92)'], + [0.941176, 'rgb(243,219,79)'], [1.000000, 'rgb(255,233,69)'] + ] }; From f012ed0dab3fc010ce9e519e8ff1051e8e8fa1cb Mon Sep 17 00:00:00 2001 From: Jamie Nunez Date: Tue, 21 Nov 2017 17:10:01 -0800 Subject: [PATCH 2/4] Added cividis_heatmap.json and replaced tabs with spaces --- src/components/colorscale/scales.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/components/colorscale/scales.js b/src/components/colorscale/scales.js index 5b56ea2c9dd..3ae611de2d2 100644 --- a/src/components/colorscale/scales.js +++ b/src/components/colorscale/scales.js @@ -126,16 +126,16 @@ module.exports = { [0.8784313725490196, '#addc30'], [0.9411764705882353, '#d8e219'], [1, '#fde725'] ] - - 'Cividis': [ - [0.000000, 'rgb(0,32,76)'], [0.058824, 'rgb(0,42,102)'], - [0.117647, 'rgb(0,52,110)'], [0.176471, 'rgb(39,63,108)'], - [0.235294, 'rgb(60,74,107)'], [0.294118, 'rgb(76,85,107)'], - [0.352941, 'rgb(91,95,109)'], [0.411765, 'rgb(104,106,112)'], - [0.470588, 'rgb(117,117,117)'], [0.529412, 'rgb(131,129,120)'], - [0.588235, 'rgb(146,140,120)'], [0.647059, 'rgb(161,152,118)'], - [0.705882, 'rgb(176,165,114)'], [0.764706, 'rgb(192,177,109)'], - [0.823529, 'rgb(209,191,102)'], [0.882353, 'rgb(225,204,92)'], - [0.941176, 'rgb(243,219,79)'], [1.000000, 'rgb(255,233,69)'] + + 'Cividis': [ + [0.000000, 'rgb(0,32,76)'], [0.058824, 'rgb(0,42,102)'], + [0.117647, 'rgb(0,52,110)'], [0.176471, 'rgb(39,63,108)'], + [0.235294, 'rgb(60,74,107)'], [0.294118, 'rgb(76,85,107)'], + [0.352941, 'rgb(91,95,109)'], [0.411765, 'rgb(104,106,112)'], + [0.470588, 'rgb(117,117,117)'], [0.529412, 'rgb(131,129,120)'], + [0.588235, 'rgb(146,140,120)'], [0.647059, 'rgb(161,152,118)'], + [0.705882, 'rgb(176,165,114)'], [0.764706, 'rgb(192,177,109)'], + [0.823529, 'rgb(209,191,102)'], [0.882353, 'rgb(225,204,92)'], + [0.941176, 'rgb(243,219,79)'], [1.000000, 'rgb(255,233,69)'] ] }; From c16d671122f2b0fca47126daac7e22c4c59aa9ae Mon Sep 17 00:00:00 2001 From: Jamie Nunez Date: Tue, 21 Nov 2017 17:10:11 -0800 Subject: [PATCH 3/4] Added cividis_heatmap.json and replaced tabs with spaces --- test/image/mocks/cividis_heatmap.json | 2613 +++++++++++++++++++++++++ 1 file changed, 2613 insertions(+) create mode 100644 test/image/mocks/cividis_heatmap.json diff --git a/test/image/mocks/cividis_heatmap.json b/test/image/mocks/cividis_heatmap.json new file mode 100644 index 00000000000..d1838b39bb3 --- /dev/null +++ b/test/image/mocks/cividis_heatmap.json @@ -0,0 +1,2613 @@ +{ + "data": [ + { + "z": [ + [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51 + ], + [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52 + ], + [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + [ + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54 + ], + [ + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + [ + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56 + ], + [ + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58 + ], + [ + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + [ + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60 + ], + [ + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62 + ], + [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + [ + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64 + ], + [ + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ], + [ + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ], + [ + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67 + ], + [ + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68 + ], + [ + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69 + ], + [ + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70 + ], + [ + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71 + ], + [ + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72 + ], + [ + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73 + ], + [ + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74 + ], + [ + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75 + ], + [ + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76 + ], + [ + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77 + ], + [ + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78 + ], + [ + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79 + ], + [ + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80 + ], + [ + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81 + ], + [ + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82 + ], + [ + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83 + ], + [ + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84 + ], + [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85 + ], + [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86 + ], + [ + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87 + ], + [ + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88 + ], + [ + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89 + ], + [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90 + ], + [ + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91 + ], + [ + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92 + ], + [ + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93 + ], + [ + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94 + ], + [ + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95 + ], + [ + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96 + ], + [ + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97 + ], + [ + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98 + ], + [ + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99 + ], + [ + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100 + ] + ], + "scl": "Cividis", + "type": "heatmap" + } + ], + "layout": { + "title": "Cividis" + } +} From 56f28273f7e02476f93dfe250a4c217068891a1f Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Mon, 27 Nov 2017 12:22:57 -0500 Subject: [PATCH 4/4] lint cividis and add baseline image --- src/components/colorscale/scales.js | 20 ++++++++++---------- test/image/baselines/cividis_heatmap.png | Bin 0 -> 37295 bytes 2 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 test/image/baselines/cividis_heatmap.png diff --git a/src/components/colorscale/scales.js b/src/components/colorscale/scales.js index 3ae611de2d2..1434a229aba 100644 --- a/src/components/colorscale/scales.js +++ b/src/components/colorscale/scales.js @@ -125,17 +125,17 @@ module.exports = { [0.7529411764705882, '#5ec962'], [0.8156862745098039, '#84d44b'], [0.8784313725490196, '#addc30'], [0.9411764705882353, '#d8e219'], [1, '#fde725'] - ] - + ], + 'Cividis': [ - [0.000000, 'rgb(0,32,76)'], [0.058824, 'rgb(0,42,102)'], - [0.117647, 'rgb(0,52,110)'], [0.176471, 'rgb(39,63,108)'], - [0.235294, 'rgb(60,74,107)'], [0.294118, 'rgb(76,85,107)'], - [0.352941, 'rgb(91,95,109)'], [0.411765, 'rgb(104,106,112)'], - [0.470588, 'rgb(117,117,117)'], [0.529412, 'rgb(131,129,120)'], - [0.588235, 'rgb(146,140,120)'], [0.647059, 'rgb(161,152,118)'], - [0.705882, 'rgb(176,165,114)'], [0.764706, 'rgb(192,177,109)'], - [0.823529, 'rgb(209,191,102)'], [0.882353, 'rgb(225,204,92)'], + [0.000000, 'rgb(0,32,76)'], [0.058824, 'rgb(0,42,102)'], + [0.117647, 'rgb(0,52,110)'], [0.176471, 'rgb(39,63,108)'], + [0.235294, 'rgb(60,74,107)'], [0.294118, 'rgb(76,85,107)'], + [0.352941, 'rgb(91,95,109)'], [0.411765, 'rgb(104,106,112)'], + [0.470588, 'rgb(117,117,117)'], [0.529412, 'rgb(131,129,120)'], + [0.588235, 'rgb(146,140,120)'], [0.647059, 'rgb(161,152,118)'], + [0.705882, 'rgb(176,165,114)'], [0.764706, 'rgb(192,177,109)'], + [0.823529, 'rgb(209,191,102)'], [0.882353, 'rgb(225,204,92)'], [0.941176, 'rgb(243,219,79)'], [1.000000, 'rgb(255,233,69)'] ] }; diff --git a/test/image/baselines/cividis_heatmap.png b/test/image/baselines/cividis_heatmap.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f614a66b353987ab5591fc059ddc6067047405 GIT binary patch literal 37295 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%0Dj~7D z;rX>PahmbuTZbPql9(IaU!Hme8f0ZMlcQJ3h?X~&xd%h6Q?c&z_Cy*Jbre27` z+pK9Wp9vc3)GxkiZ97zqF|4>Z@-ao){>RsLG1mpXMWBs77l&h8kMf#r- z67-nKl$yZ{O{`VC`zleREYx7qbVTzpTJsXR<&Is z;BL&?=zUz_a`bNKS+>ziA_;*WEg z{r|}lCU30*Tiw7OYKa=ltf;fpth%w$-%1-$nDooi&rj9PdwMn}GmVRM^Pi$K6*jK( z#1t7}@^=NOqfcv=^XX>a0GIaYP6!yMf(#g86xcM#O5Urjar`o6#0~i8Z*CMbsTElV z8N_U<+i+L0he6)!o2zk=`xxfDow4N}~f0((aDMzM2Kt$(HaF~-IK#EQQ zEv)1RU6Q4C-n8F+l#U5WoMUoFw!l8b9@H`q(!?4fHEzKj2ZO!6<~}Xydr095&6+IO5N59%MwYOIJ;EaI266>?#o8x~Pu9Pi3GBnIrKv0oBKN zeF9NuC}D&@QS_dyWm4d|t8@fD{sr~_&%ec1Zg*S+zCGc=K=`W@;I6CDlm7iHjLWB| zhv~*c1ldTb|9$NxJnD6wX2pMoj*v`*n=t70$&OY^j8j+D|ddSw*TaqnaDNb0S{!6GsD<(oTT)nBL* z#UXb01EVzD>GGQzFTU}(G48DKcbJdY;uGF|QmzYkpaGVx8Grud-sZK6Uu$!p6Gd$c zo##G^nKzTMiCBG-!?c-gFl@mUs?!aeZ(+`Fgz9QZwm7`Oku1V0z1sR^&eCXRVrw?Z z@q6`Rarj&hxci()+J-w2mcWkXHQutTs|yKv(jaTfm!Wb}dZ|PY^AyW@cg`J4FunyGS{Q8%t}E9y!V z?QmQEVjazkiey=Urp7O}DaY@k0rV%xkVB}lJk{fhYg@?h6y3$4o4WdmtT#dw;(yBj`pU2aV>Hb@QH5pGrvY`XokpCXHOm(e^faA& z`}O%5bbgRDy{7*#=oi!apxcJ;;C z`bbeuQ=j$gUZ9fr{#1#kj6qA{B!we7j43rn1{y1?x0-&7+YOg)T`q^yh`r#@aq7eT zr~L8vh@>6IWu!r+yacZJk;j^%yS=*h>rH1 zyZPo*wfhQ(&|%~$3#C$=KT5iRMyq*XvveubePw*r|Gz@~&dU{cNrA2LTwi#T?zPq>{`!R7@G@8!qG3p;rL;&T zj*#i8LI^l4E;A(!m(47JNt12&(XZ|U`PT>g`(yH$dcU6y7z^Hnr+sA1j#YlOvUzo`zh{<23xeArw#=wGB6EJVuol zznP+_nN75vlCzzy-!%@E#fbTAyRboXzm}dHW5X~Go`xfGpcZ_S^=iqzPg8sZTAEB2 zzZ72{CL(jp<`1QG8Lse}&wA1N1gGtJgAdRQhDo2R6*c&f*r%n{tH36xvZOHweUVTN zw4FE0MEADG>Cn(I%y=JCH*oue_g1h^sPk-R8Au?T|I|5*Rim}aur=aAYrj+MKUa;w zZ5~XUdZA28v-L7JH$^qj5AYxl3tKbV+SNukb$wuSti6p8B)o*-7O4nh9jt5kiNorg zFxUA%*1F{#71KvIm_uH?#J22|wQ+PH%QCoe8Oyd&8XWtyC7k6mF7yP4Zs=}0jwcE) zkutHzL#LmHeIbJ7SQL9ptwN_?NJ4XbxW2@5zBg-irm3{yh1o7y5HB}k=g4R_TfaSk zi#ki1KrJ3&k78`n2*L5Gp?i-qn`0x?K1=i9TAJ{eT;u;#yDko1kZROccxev9cDj*G z+@TVl{DQi}jTDNgUx@N;>-{6MUGneeYH^P)6=B01ZYWcUpSc~bgudxJd^>dDk3XeU zAWD8$qu?)X>-F){hN2}~f_3>Rr%2BC%h0!H zHpm$D#Zj-};oiL97v!Heu%XxaO!>e3vEcHS