diff --git a/.circleci/config.yml b/.circleci/config.yml index ca0f24634a9..900be5994a0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -78,41 +78,96 @@ jobs: name: Run jasmine tests (part C) command: ./.circleci/test.sh no-gl-flaky-jasmine - stable-image: - docker: - - image: plotly/testbed:latest + make-baselines: parallelism: 4 - working_directory: /var/www/streambed/image_server/plotly.js/ + docker: + - image: circleci/python:3.8.9 + working_directory: ~/plotly.js steps: - attach_workspace: - at: /var/www/streambed/image_server/ + at: ~/ + - run: + name: which pip3 version + command: which pip3 && pip3 --version + - run: + name: install kaleido v0.2.1 + command: python3 -m pip install kaleido==0.2.1 - run: - name: Run and setup container + name: install plotly.io v4.14.3 + command: python3 -m pip install plotly==4.14.3 + - run: + name: install liberation2 fonts + command: sudo apt-get install fonts-liberation2 + - run: + name: install NotoSansCJK fonts + command: sudo apt install fonts-noto-cjk + - run: + name: download google fonts e.g. GravitasOne, NotoSansMono, NotoSans, NotoSerif, Old_Standard_TT, PT_Sans_Narrow, Raleway and Roboto + command: python3 ./.circleci/download_google_fonts.py + - run: + name: install OpenSans as well as downloaded google fonts command: | - supervisord & - npm run docker -- setup + sudo cp -r .circleci/fonts/ /usr/share/ + sudo fc-cache -f + - run: + name: create all png files + command: ./.circleci/test.sh make-baselines + - persist_to_workspace: + root: ~/ + paths: + - plotly.js + + test-baselines: + docker: + - image: circleci/node:12.22.1 + working_directory: ~/plotly.js + steps: + - attach_workspace: + at: ~/ - run: - name: Run image tests (part A) - command: ./.circleci/test.sh stable-image || { tar -cvf build/baselines.tar build/test_images/ ; exit 1; } ; find build -maxdepth 1 -type f -delete + name: compare pixels + command: ./.circleci/test.sh test-image ; find build -maxdepth 1 -type f -delete - store_artifacts: path: build destination: / - flaky-image: + make-exports: docker: - - image: plotly/testbed:latest - working_directory: /var/www/streambed/image_server/plotly.js/ + - image: circleci/python:3.8.9 + working_directory: ~/plotly.js steps: - attach_workspace: - at: /var/www/streambed/image_server/ + at: ~/ - run: - name: Run and setup container - command: | - supervisord & - npm run docker -- setup + name: which pip3 version + command: which pip3 && pip3 --version + - run: + name: install kaleido v0.2.1 + command: python3 -m pip install kaleido==0.2.1 + - run: + name: install plotly.io v4.14.3 + command: python3 -m pip install plotly==4.14.3 - run: - name: Run image tests (part B) - command: ./.circleci/test.sh flaky-image ; find build -maxdepth 1 -type f -delete + name: install poppler-utils to have pdftops for exporting eps + command: sudo apt-get install poppler-utils + - run: + name: create svg, jpg, jpeg, webp, pdf and eps files + command: python3 test/image/make_exports.py + - persist_to_workspace: + root: ~/ + paths: + - plotly.js + + test-exports: + docker: + - image: circleci/node:12.22.1 + working_directory: ~/plotly.js + steps: + - attach_workspace: + at: ~/ + - run: + name: test export sizes + command: node test/image/export_test.js ; find build -maxdepth 1 -type f -delete - store_artifacts: path: build destination: / @@ -237,12 +292,18 @@ workflows: - no-gl-flaky-jasmine: requires: - install-and-cibuild - - stable-image: + - make-baselines: requires: - install-and-cibuild - - flaky-image: + - test-baselines: + requires: + - make-baselines + - make-exports: requires: - install-and-cibuild + - test-exports: + requires: + - make-exports - mock-validation: requires: - install-and-cibuild diff --git a/.circleci/download_google_fonts.py b/.circleci/download_google_fonts.py new file mode 100644 index 00000000000..8cdad4a5c72 --- /dev/null +++ b/.circleci/download_google_fonts.py @@ -0,0 +1,109 @@ +import requests + +dirOut = '.circleci/fonts/truetype/googleFonts/' + +def download(repo, family, types) : + for t in types : + name = family + t + '.ttf' + url = repo + name + '?raw=true' + print(url) + req = requests.get(url, allow_redirects=True) + open(dirOut + name, 'wb').write(req.content) + +download( + 'https://github.com/googlefonts/noto-fonts/blob/main/hinted/ttf/NotoSansMono/', + 'NotoSansMono', + [ + '-Regular', + '-Bold' + ] +) + +download( + 'https://github.com/googlefonts/noto-fonts/blob/main/hinted/ttf/NotoSans/', + 'NotoSans', + [ + '-Regular', + '-Italic', + '-Bold' + ] +) + +download( + 'https://github.com/googlefonts/noto-fonts/blob/main/hinted/ttf/NotoSerif/', + 'NotoSerif', + [ + '-Regular', + '-Italic', + '-Bold', + '-BoldItalic', + ] +) + +download( + 'https://github.com/google/fonts/blob/main/ofl/oldstandardtt/', + 'OldStandard', + [ + '-Regular', + '-Italic', + '-Bold' + ] +) + +""" +download( + 'https://github.com/googlefonts/opensans/blob/main/fonts/ttf/', + 'OpenSans', + [ + 'Bold', + 'BoldItalic', + 'ExtraBold', + 'ExtraBoldItalic', + 'Italic', + 'Light', + 'LightItalic', + 'Regular', + 'Semibold', + 'SemiboldItalic', + ] +) +""" + +download( + 'https://github.com/google/fonts/blob/main/ofl/ptsansnarrow/', + 'PT_Sans-Narrow-Web', + [ + '-Regular', + '-Bold' + ] +) + +download( + 'https://github.com/impallari/Raleway/blob/master/fonts/v3.000%20Fontlab/TTF/', + 'Raleway', + [ + '-Regular', + '-Regular-Italic', + '-Bold', + '-Bold-Italic' + ] +) + +download( + 'https://github.com/googlefonts/roboto/blob/main/src/hinted/', + 'Roboto', + [ + '-Regular', + '-Italic', + '-Bold', + '-BoldItalic' + ] +) + +download( + 'https://github.com/expo/google-fonts/blob/master/font-packages/gravitas-one/', + 'GravitasOne', + [ + '_400Regular' + ] +) diff --git a/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Bold.ttf b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Bold.ttf new file mode 100644 index 00000000000..fd79d43bea0 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Bold.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-BoldItalic.ttf b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-BoldItalic.ttf new file mode 100644 index 00000000000..9bc800958a4 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-BoldItalic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-ExtraBold.ttf b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-ExtraBold.ttf new file mode 100644 index 00000000000..21f6f84a079 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-ExtraBold.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-ExtraBoldItalic.ttf b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-ExtraBoldItalic.ttf new file mode 100644 index 00000000000..31cb688340e Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-ExtraBoldItalic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Italic.ttf b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Italic.ttf new file mode 100644 index 00000000000..c90da48ff3b Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Italic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Light.ttf b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Light.ttf new file mode 100644 index 00000000000..0d381897da2 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Light.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-LightItalic.ttf b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-LightItalic.ttf new file mode 100644 index 00000000000..68299c4bc6b Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-LightItalic.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Regular.ttf b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Regular.ttf new file mode 100644 index 00000000000..db433349b70 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Regular.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Semibold.ttf b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Semibold.ttf new file mode 100644 index 00000000000..1a7679e3949 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-Semibold.ttf differ diff --git a/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-SemiboldItalic.ttf b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-SemiboldItalic.ttf new file mode 100644 index 00000000000..59b6d16b065 Binary files /dev/null and b/.circleci/fonts/truetype/googleFonts/OpenSans/OpenSans-SemiboldItalic.ttf differ diff --git a/.circleci/test.sh b/.circleci/test.sh index 7d62f24f64c..94b68739b48 100755 --- a/.circleci/test.sh +++ b/.circleci/test.sh @@ -76,16 +76,14 @@ case $1 in exit $EXIT_STATE ;; - stable-image) - SUITE=$(find $ROOT/test/image/mocks/ -type f -printf "%f\n" | circleci tests split) - npm run test-image -- $SUITE --filter --skip-flaky || EXIT_STATE=$? + make-baselines) + SUITE=$(find $ROOT/test/image/mocks/ -type f -printf "%f\n" | sed 's/\.json$//1' | circleci tests split) + python3 test/image/make_baseline.py $SUITE || EXIT_STATE=$? exit $EXIT_STATE ;; - flaky-image) - MAX_AUTO_RETRY=5 - retry npm run test-image -- --just-flaky - npm run test-export || EXIT_STATE=$? + test-image) + node test/image/compare_pixels_test.js || { tar -cvf build/baselines.tar build/test_images/*.png ; exit 1 ; } || EXIT_STATE=$? exit $EXIT_STATE ;; diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f0063005e06..ee871a84a53 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,8 +3,8 @@ Thanks for your interest in contributing to Plotly.js! We are actively looking for diverse contributors, with diverse background and skills. -This document outlines the general way that changes get made to this library and by whom, -and then provides specific technical information about how to set up a development +This document outlines the general way that changes get made to this library and by whom, +and then provides specific technical information about how to set up a development environment for doing development and running tests. ## Code of Conduct @@ -25,7 +25,7 @@ The basic architecture of Plotly.js is to accept [JSON](https://json.org/) repre The basic process for adding new features or fixing bugs is as follows. Please note that this is a bit of an idealized outline and that things often don't proceed in a clean/linear fashion and that's ok :) 1. **Discussion** - A community member or maintainer creates an issue to discuss the use-case for the new feature. This usually entails describing the desired graphical output and discussing how close the current system can get to specifying or drawing such a figure. If the issue is perceived to be a bug, the discussion revolves around understanding how the current behaviour is incorrect or problematic, and how existing users of the system would be impacted by a change in this behaviour. -2. **Proposal** - If the current system cannot specify or draw such a figure, or if the way to do it is too onerous, a good next step would be to discuss or propose a specific change to the schema: new attributes to be added or new accepted values to new attributes, along with a prose description of the proposed drawing code. If the issue is determined to be a bug rather than a feature, the same type of proposal is required: a definition of which attributes and values will be impacted by the proposed change. A good proposal includes discussion of whether or not existing attributes can be modified rather than adding new attributes and details about which trace types or subplot types are impacted by the change. Note: sometimes community contributors skip this step and go straight to development & review (below), but going through a proposal can help speed along the review process! +2. **Proposal** - If the current system cannot specify or draw such a figure, or if the way to do it is too onerous, a good next step would be to discuss or propose a specific change to the schema: new attributes to be added or new accepted values to new attributes, along with a prose description of the proposed drawing code. If the issue is determined to be a bug rather than a feature, the same type of proposal is required: a definition of which attributes and values will be impacted by the proposed change. A good proposal includes discussion of whether or not existing attributes can be modified rather than adding new attributes and details about which trace types or subplot types are impacted by the change. Note: sometimes community contributors skip this step and go straight to development & review (below), but going through a proposal can help speed along the review process! 3. **Iteration** - The maintainers of the library or any other interested community member will then give feedback on the proposal, usually focused on consistency with the rest of the schema, and helping define a test plan to further elaborate potential edge cases. 4. **Approval** - After a number of iterations, the maintainers of the library will generally approve a proposal with an informal "this seems like something we would accept a pull request for" comment in the issue. 5. **Development** - A community member or maintainer creates a branch and makes the appropriate modifications to the code and tests and opens a pull request. This can be more or less time-consuming and challenging, depending on the nature of the change. @@ -207,23 +207,35 @@ npm run test-jasmine -- --help npm run test-jasmine -- --info ``` -### Image pixel comparison tests - -Image pixel comparison tests are run in a docker container. For more -information on how to run them locally, please refer to [image test -README](https://github.com/plotly/plotly.js/blob/master/test/image/README.md). - -Running the test locally outputs the generated png images in `build/test_images/` and the png diffs in `build/test_images_diff/` (two git-ignored directories). - -To view the image pixel comparison test results, run - +### Draft new baseline +Install fonts and tools +```sh +# install required fonts (if missing) on ubuntu +sudo cp -r .circleci/fonts/ /usr/share/ && sudo fc-cache -f +# upgrade pip (if needed) +python3 -m pip install --upgrade pip +# install kaleido +python3 -m pip install kaleido +# install plotly +python3 -m pip install plotly ``` -npm run start-image_viewer -``` - -which shows the baseline image, the generated image, the diff and the json mocks of test cases that failed. -To view the results of a run on CircleCI, download the `build/test_images/` and `build/test_images_diff/` artifacts into your local repo and then run `npm run start-image_viewer`. +**IMPORTANT:** the `baseline`, `test-image` and `test-export` scripts do **not** bundle the source files before +running the image tests. We recommend running `npm run watch` or `npm start` in +a separate tab to ensure that the most up-to-date code is used. +Also if you are adding a new mock, you may need to re-run `npm start` or `npm run watch` +to be able to find the new mock in the browser. +To help ensure valid attributes are used in your new mock(s), please run `npm run test-mock` +or `npm run test-mock mock_name(s)` after adding new mocks or implementing any new attributes. + +If you added new mocks to test/image/mocks folder, to generate draft baselines run +```sh +python3 test/image/make_baseline.py = mockFilename1 mockFilename2 +``` +Then commit the new baselines and push. +Please note that image pixel comparison tests run using circleci/python:3.8.9 docker container. +Therefore the final baselines may need updates. +This could simply be done by downloading the `baselines.tar` stored in the `ARTIFACTS` tab of `test-baselines` job (if the test failed). ### Using the developer console in karma to write/debug jasmine tests diff --git a/devtools/image_viewer/index.html b/devtools/image_viewer/index.html deleted file mode 100644 index 45d624b6eff..00000000000 --- a/devtools/image_viewer/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - -
-
-
-

-
-    
-
-
diff --git a/devtools/image_viewer/server.js b/devtools/image_viewer/server.js
deleted file mode 100644
index 084871ce34a..00000000000
--- a/devtools/image_viewer/server.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var fs = require('fs');
-var http = require('http');
-var path = require('path');
-var exec = require('child_process').exec;
-
-var browserify = require('browserify');
-var brfs = require('brfs');
-var ecstatic = require('ecstatic');
-var _open = require('open');
-
-var constants = require('../../tasks/util/constants');
-
-
-// TODO make this an optional argument
-var PORT = '9090';
-
-console.log('Listening on :' + PORT + '\n');
-
-var listPath = constants.pathToTestImagesDiffList;
-var listCMD = [
-    'ls',
-    constants.pathToTestImagesDiff,
-    '>',
-    listPath
-].join(' ');
-
-// build image viewer bundle
-fs.unlink(constants.pathToImageViewerBundle, function() {
-    exec(listCMD, function() {
-        var b = browserify(path.join(__dirname, './viewer.js'), {
-            debug: true,
-            transform: [brfs]
-        });
-
-        b.bundle(function(err) {
-            if(err) throw err;
-
-            _open('http://localhost:' + PORT + '/devtools/image_viewer');
-        })
-        .pipe(fs.createWriteStream(constants.pathToImageViewerBundle));
-
-        fs.readFile(listPath, 'utf8', function(err, data) {
-            console.log('In ' + listPath + ':\n' + data);
-        });
-    });
-});
-
-// boot up server
-http.createServer(
-    ecstatic({ root: constants.pathToRoot })
-).listen(PORT);
diff --git a/devtools/image_viewer/viewer.js b/devtools/image_viewer/viewer.js
deleted file mode 100644
index 2234cb103ef..00000000000
--- a/devtools/image_viewer/viewer.js
+++ /dev/null
@@ -1,104 +0,0 @@
-var fs = require('fs');
-var path = require('path');
-
-var d3Json = require('../../test/strict-d3').json;
-
-var $plotlist = document.getElementById('plot-list');
-var $toggles = document.getElementById('plot-toggles');
-var $images = document.getElementById('plot-images');
-var $mock = document.getElementById('plot-mock');
-var $toggleBaseline = document.createElement('button');
-var $toggleTest = document.createElement('button');
-var $toggleDiff = document.createElement('button');
-var $imgBaseline = document.createElement('img');
-var $imgTest = document.createElement('img');
-var $imgDiff = document.createElement('img');
-
-$toggles.style.display = 'none';
-$images.style.display = 'none';
-
-setupToggle($toggleBaseline, $imgBaseline, 'Baseline');
-setupToggle($toggleTest, $imgTest, 'Test');
-setupToggle($toggleDiff, $imgDiff, 'Diff');
-
-var pathToRoot = path.join(__dirname, '../../');
-var pathToImageTest = path.join(pathToRoot, 'test/image');
-var pathToBuild = path.join(pathToRoot, 'build/');
-var dirMocks = path.join(pathToImageTest, 'mocks/');
-var dirBaseline = path.join(pathToImageTest, 'baselines/');
-var dirTest = path.join(pathToBuild, 'test_images/');
-var dirDiff = path.join(pathToBuild, 'test_images_diff/');
-
-// N.B. brfs only understand hard-coded paths
-var imageNames = fs.readFileSync(
-       __dirname + '/../../build/list_of_incorrect_images.txt',
-        'utf8'
-    )
-    .split('\n')
-    .filter(function(x) { return x; })
-    .map(function(x) {
-        return x.split('diff-')[1].split('.png')[0];
-    });
-
-imageNames.forEach(function(imageName) {
-    $plotlist.appendChild(createButton(imageName));
-});
-
-function createButton(imageName) {
-    var button = document.createElement('button');
-    button.style.cssFloat = 'left';
-    button.style.height = '40px';
-    button.innerHTML = imageName;
-    button.style.padding = '0.5em';
-    button.style.border = '0';
-    button.style.margin = '1px';
-    button.style.cursor = 'pointer';
-
-    button.addEventListener('click', function() {
-        d3Json(dirMocks + imageName + '.json', function(err, mock) {
-            $toggles.style.display = 'block';
-
-            $images.style.display = 'block';
-            $imgBaseline.src = dirBaseline + imageName + '.png';
-            $imgTest.src = dirTest + imageName + '.png';
-            $imgDiff.src = dirDiff + 'diff-' + imageName + '.png';
-
-            $mock.innerHTML = JSON.stringify(mock, null, 2);
-        });
-    });
-
-    return button;
-}
-
-function setupToggle(toggle, img, title) {
-    img.title = title;
-    toggle.innerHTML = title;
-    toggle.style.padding = '0.5em';
-    toggle.style.border = '0';
-    toggle.style.margin = '1px';
-    toggle.style.cursor = 'pointer';
-
-    checkToggle(toggle, img);
-
-    toggle.addEventListener('click', function() {
-        if(toggle.value === 'checked') uncheckToggle(toggle, img);
-        else checkToggle(toggle, img);
-    });
-
-    $toggles.appendChild(toggle);
-    $images.appendChild(img);
-}
-
-function checkToggle(toggle, img) {
-    toggle.value = 'checked';
-    toggle.style.color = '#4c4c4c';
-    toggle.style.backgroundColor = '#f2f1f0';
-    img.style.display = 'inline';
-}
-
-function uncheckToggle(toggle, img) {
-    toggle.value = 'unchecked';
-    toggle.style.color = '#f2f1f0';
-    toggle.style.backgroundColor = '#4c4c4c';
-    img.style.display = 'none';
-}
diff --git a/package-lock.json b/package-lock.json
index 666dda2ab82..108f960a28c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8139,6 +8139,15 @@
       "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
       "dev": true
     },
+    "pixelmatch": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz",
+      "integrity": "sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==",
+      "dev": true,
+      "requires": {
+        "pngjs": "^4.0.1"
+      }
+    },
     "planar-dual": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/planar-dual/-/planar-dual-1.0.2.tgz",
@@ -8168,6 +8177,12 @@
       "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
       "dev": true
     },
+    "pngjs": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz",
+      "integrity": "sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==",
+      "dev": true
+    },
     "point-in-big-polygon": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/point-in-big-polygon/-/point-in-big-polygon-2.0.0.tgz",
diff --git a/package.json b/package.json
index 991c9922d51..558c1108d7e 100644
--- a/package.json
+++ b/package.json
@@ -36,21 +36,18 @@
     "no-bad-char": "eslint --no-ignore --no-eslintrc --no-inline-config --rule '{no-misleading-character-class: error}' $(find dist -type f -iname '*.js' | grep plotly)",
     "no-dup-keys": "eslint --no-ignore --no-eslintrc --no-inline-config --rule '{no-dupe-keys: error}' $(find dist -type f -iname '*.js' | grep plotly)",
     "no-es6-dist": "node tasks/no_es6_dist.js",
-    "docker": "node tasks/docker.js",
     "pretest": "node tasks/pretest.js",
     "test-jasmine": "karma start test/jasmine/karma.conf.js",
     "test-mock": "node tasks/test_mock.js",
-    "test-image": "node tasks/test_image.js",
-    "test-export": "node tasks/test_export.js",
+    "test-image": "node test/image/compare_pixels_test.js",
+    "test-export": "node test/image/export_test.js",
     "test-syntax": "node tasks/test_syntax.js && npm run find-strings -- --no-output",
     "test-bundle": "node tasks/test_bundle.js",
     "test-requirejs": "node tasks/test_requirejs.js",
     "test-plain-obj": "node tasks/test_plain_obj.js",
     "test": "npm run test-jasmine -- --nowatch && npm run test-bundle && npm run test-image && npm run test-export && npm run test-syntax && npm run lint",
-    "start-test_dashboard": "node devtools/test_dashboard/server.js",
-    "start-image_viewer": "node devtools/image_viewer/server.js",
-    "start": "npm run start-test_dashboard",
-    "baseline": "node tasks/baseline.js",
+    "start": "node devtools/test_dashboard/server.js",
+    "baseline": "node test/image/make_baseline.js",
     "noci-baseline": "npm run cibuild && ./tasks/noci_test.sh image && git checkout dist && echo 'Please do not commit unless the change was expected!'",
     "preversion": "check-node-version --node 12 --npm 6.14 && npm-link-check && npm ls --prod",
     "version": "npm run build && npm run no-bad-char && git add -A lib dist build src/version.js",
@@ -172,6 +169,7 @@
     "mkdirp": "^1.0.4",
     "npm-link-check": "^4.0.0",
     "open": "^8.2.0",
+    "pixelmatch": "^5.2.1",
     "prepend-file": "^2.0.0",
     "prettysize": "^2.0.0",
     "read-last-lines": "^1.8.0",
diff --git a/tasks/baseline.js b/tasks/baseline.js
deleted file mode 100644
index 2e6f666a883..00000000000
--- a/tasks/baseline.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var constants = require('./util/constants');
-var common = require('./util/common');
-var containerCommands = require('./util/container_commands');
-
-var msg = [
-    'Generating baseline image(s) using build/plotly.js from',
-    common.getTimeLastModified(constants.pathToPlotlyBuild),
-    '\n'
-].join(' ');
-
-var cmd = containerCommands.getRunCmd(
-    process.env.CIRCLECI,
-    'node test/image/make_baseline.js ' + process.argv.slice(2).join(' ')
-);
-
-console.log(msg);
-common.execCmd(cmd);
diff --git a/tasks/docker.js b/tasks/docker.js
deleted file mode 100644
index 54663fb7294..00000000000
--- a/tasks/docker.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var constants = require('./util/constants');
-var common = require('./util/common');
-var containerCommands = require('./util/container_commands');
-
-var isCI = process.env.CIRCLECI;
-var arg = process.argv[2];
-
-var msg, cmd, cb, errorCb;
-
-switch(arg) {
-    case 'pull':
-        msg = 'Pulling latest docker image';
-        cmd = 'docker pull ' + constants.testContainerImage;
-        break;
-
-    case 'run':
-        msg = 'Booting up ' + constants.testContainerName + ' docker container';
-        cmd = containerCommands.dockerRun;
-
-        // if docker-run fails, try docker-start.
-        errorCb = function(err) {
-            if(err) common.execCmd('docker start ' + constants.testContainerName);
-        };
-
-        break;
-
-    case 'setup':
-        msg = 'Setting up ' + constants.testContainerName + ' docker container for testing';
-        cmd = containerCommands.getRunCmd(isCI, containerCommands.setup);
-        break;
-
-    case 'stop':
-        msg = 'Stopping ' + constants.testContainerName + ' docker container';
-        cmd = 'docker stop ' + constants.testContainerName;
-        break;
-
-    case 'remove':
-        msg = 'Removing ' + constants.testContainerName + ' docker container';
-        cmd = 'docker rm ' + constants.testContainerName;
-        break;
-
-    default:
-        console.log('Usage: pull, run, setup, stop, remove');
-        process.exit(0);
-        break;
-}
-
-console.log(msg);
-common.execCmd(cmd, cb, errorCb);
diff --git a/tasks/noci_test.sh b/tasks/noci_test.sh
index c117d6a85a2..8b5734aff14 100755
--- a/tasks/noci_test.sh
+++ b/tasks/noci_test.sh
@@ -24,25 +24,12 @@ test_jasmine () {
     npm run test-jasmine -- --tags=noCI,noCIdep --nowatch || EXIT_STATE=$?
 }
 
-# mapbox image tests take too much resources on CI
-#
-# since the update to mapbox-gl@0.44.0, we must use orca
-# as mapbox-gl versions >0.22.1 aren't supported on nw.js@0.12 used in the
-# 'old' image server
-#
-# due to mathjax upgrade to v2.7.5, we are unable to test mathjax mocks in the
-# 'old' image server and we use orca
-#
+# having problem creating baselines for 2 mapbox mocks using kaleido
+# we must use orca
 test_image () {
     $root/../orca/bin/orca.js graph \
-        $root/test/image/mocks/mapbox_* \
-        $root/test/image/mocks/mathjax.json \
-        $root/test/image/mocks/ternary-mathjax.json \
-        $root/test/image/mocks/table_plain_birds.json \
-        $root/test/image/mocks/table_wrapped_birds.json \
-        $root/test/image/mocks/parcats_grid_subplots.json \
-        $root/test/image/mocks/legend_mathjax_title_and_items.json \
-        $root/test/image/mocks/table_latex_multitrace_scatter.json \
+        $root/test/image/mocks/mapbox_osm-style.json \
+        $root/test/image/mocks/mapbox_density0-legend.json \
         --mathjax $root/node_modules/mathjax/MathJax.js \
         --plotly $root/build/plotly.js \
         --mapbox-access-token "pk.eyJ1IjoicGxvdGx5LWpzLXRlc3RzIiwiYSI6ImNrNG9meTJmOTAxa3UzZm10dWdteDQ2eWMifQ.2REjOFyIrleMqwS8H8y1-A" \
diff --git a/tasks/test_export.js b/tasks/test_export.js
deleted file mode 100644
index de08f97e7e7..00000000000
--- a/tasks/test_export.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var constants = require('./util/constants');
-var common = require('./util/common');
-var containerCommands = require('./util/container_commands');
-
-var msg = [
-    'Running image export tests using build/plotly.js from',
-    common.getTimeLastModified(constants.pathToPlotlyBuild),
-    '\n'
-].join(' ');
-
-var cmd = containerCommands.getRunCmd(
-    process.env.CIRCLECI,
-    'node test/image/export_test.js ' + process.argv.slice(2).join(' ')
-);
-
-console.log(msg);
-common.execCmd(cmd);
diff --git a/tasks/test_image.js b/tasks/test_image.js
deleted file mode 100644
index 8156cabaead..00000000000
--- a/tasks/test_image.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var constants = require('./util/constants');
-var common = require('./util/common');
-var containerCommands = require('./util/container_commands');
-
-var msg = [
-    'Running image comparison tests using build/plotly.js from',
-    common.getTimeLastModified(constants.pathToPlotlyBuild),
-    '\n'
-].join(' ');
-
-var cmd = containerCommands.getRunCmd(
-    process.env.CIRCLECI,
-    'node test/image/compare_pixels_test.js ' + process.argv.slice(2).join(' ')
-);
-
-console.log(msg);
-common.execCmd(cmd);
diff --git a/tasks/util/constants.js b/tasks/util/constants.js
index 7f149e2fbca..98508b8c18f 100644
--- a/tasks/util/constants.js
+++ b/tasks/util/constants.js
@@ -197,7 +197,6 @@ module.exports = {
     pathToCSSBuild: path.join(pathToBuild, 'plotcss.js'),
 
     pathToTestDashboardBundle: path.join(pathToBuild, 'test_dashboard-bundle.js'),
-    pathToImageViewerBundle: path.join(pathToBuild, 'image_viewer-bundle.js'),
 
     pathToImageTest: pathToImageTest,
     pathToTestImageMocks: path.join(pathToImageTest, 'mocks/'),
diff --git a/tasks/util/container_commands.js b/tasks/util/container_commands.js
deleted file mode 100644
index 9f3cccae34a..00000000000
--- a/tasks/util/container_commands.js
+++ /dev/null
@@ -1,68 +0,0 @@
-var constants = require('./constants');
-
-var containerCommands = {
-    cdHome: 'cd ' + constants.testContainerHome,
-    cpIndex: 'cp -f test/image/index.html ../server_app/index.html',
-    replacePlotbyNewPlot: 'sed -i \'s/Plotly.plot/Plotly.newPlot/g\' ../server_app/main.js',
-    injectEnv: [
-        'sed -i',
-        's/process.env.PLOTLY_MAPBOX_DEFAULT_ACCESS_TOKEN/\\\'' + constants.mapboxAccessToken + '\\\'/',
-        '../server_app/main.js'
-    ].join(' '),
-    restart: 'supervisorctl restart nw1'
-};
-
-containerCommands.ping = [
-    'wget',
-    '--server-response --spider --tries=20 --retry-connrefused',
-    constants.testContainerUrl + 'ping'
-].join(' ');
-
-containerCommands.setup = [
-    containerCommands.cpIndex,
-    containerCommands.injectEnv,
-    containerCommands.replacePlotbyNewPlot,
-    containerCommands.restart,
-    containerCommands.ping,
-    'sleep 5'
-].join(' && ');
-
-containerCommands.dockerRun = [
-    'docker run -d',
-    '--name', constants.testContainerName,
-    '-v', constants.pathToRoot + ':' + constants.testContainerHome,
-    '-p', constants.testContainerPort + ':' + constants.testContainerPort,
-    constants.testContainerImage
-].join(' ');
-
-containerCommands.getRunCmd = function(isCI, commands) {
-    var _commands = Array.isArray(commands) ? commands.slice() : [commands];
-    var cmd;
-
-    if(isCI) {
-        _commands = [containerCommands.ping].concat(_commands);
-        cmd = getRunCI(_commands);
-    } else {
-        _commands = [containerCommands.setup].concat(_commands);
-        cmd = getRunLocal(_commands);
-    }
-
-    return cmd;
-};
-
-function getRunLocal(commands) {
-    commands = [containerCommands.cdHome].concat(commands);
-    return [
-        'docker exec -i',
-        constants.testContainerName,
-        '/bin/bash -c',
-        '"' + commands.join(' && ') + '"'
-    ].join(' ');
-}
-
-function getRunCI(commands) {
-    commands = [containerCommands.cdHome].concat(commands);
-    return commands.join(' && ');
-}
-
-module.exports = containerCommands;
diff --git a/test/image/.gitignore b/test/image/.gitignore
new file mode 100644
index 00000000000..bee8a64b79a
--- /dev/null
+++ b/test/image/.gitignore
@@ -0,0 +1 @@
+__pycache__
diff --git a/test/image/README.md b/test/image/README.md
deleted file mode 100644
index 2b36a9261b6..00000000000
--- a/test/image/README.md
+++ /dev/null
@@ -1,222 +0,0 @@
-# plotly.js image testing
-
-Test plotly.js with Plotly's image testing docker container.
-
-Requirements:
-
-- `docker` | [installation guidelines][docker-install]
-- `docker-machine` (for Mac and Windows users only) | [installation guidelines][docker-machine-install]
-
-### Step 0: Start the docker machine (Mac and Windows users only)
-
-Boot up docker machine (named `default`):
-
-```bash
-docker-machine start default
-```
-
-If this is your first time, you'll need to create the machine instead:
-
-```bash
-docker-machine create --driver virtualbox default
-```
-
-Set up the docker environment:
-
-```bash
-eval $(docker-machine env default)
-```
-
-the above evaluates the output of `docker-machine env default`.
-
-### Step 1: Setup the testing container
-
-After `cd` into your `plotly.js` directory, pull the latest docker image with
-
-```bash
-npm run docker -- pull
-```
-
-which calls [`docker-pull`][docker-pull] with the correct arguments grabbing the
-latest docker image as listed on [hub.docker.com][docker-hub].
-
-Run the container with
-
-```bash
-npm run docker -- run
-```
-
-which calls [`docker-run`][docker-run] or [`docker-start`][docker-start] with
-the correct arguments.
-
-### Step 2: Run the image tests
-
-The image testing docker container allows plotly.js developers to
-([A](#a-run-image-comparison-tests)) run image comparison tests,
-([B](#b-run-image-export-tests)) run image export tests and
-([C](#c-generate-or-update-existing-baseline-image)) generate baseline images.
-
-Before starting, don't forget to [set up your testing environment](https://github.com/plotly/plotly.js/blob/master/CONTRIBUTING.md#development):
-
-```bash
-npm run pretest
-```
-
-**IMPORTANT:** the image tests scripts do **not** bundle the source files before
-running the image tests. We recommend running `npm run watch` or `npm start` in
-a separate tab to ensure that the most up-to-date code is used.
-Also if you are adding a new mock, you may need to re-run `npm start` or `npm run watch`
-to be able to find the new mock in the browser.
-To help ensure valid attributes are used in your new mock(s), please run `npm run test-mock`
-or `npm run test-mock mock_name(s)` after adding new mocks or implementing any new attributes.
-
-##### A: Run image comparison tests
-
-Image comparison tests take in plotly.js mock json files (found in
-[`test/image/mocks`][mocks]), generate test png images (saved in
-`build/test_images/` - which is git-ignored) and compare them pixel-by-pixel to
-their corresponding baseline images (found in
-[`test/image/baselines`][baselines]) using [`GraphicsMagick`][gm].
-
-To run the image comparison tests, in your `plotly.js` directory:
-
-```bash
-npm run test-image
-```
-
-which runs all image comparison tests in batch. If some tests fail, compare their outputs
-by booting up the test image viewer using `npm run start-image_viewer`.
-
-As an alternative to running all image comparison tests at once, you can provide
-a [glob][glob] as argument to target one or multiple test mocks found in
-[`test/image/mocks`][mocks].
-For example,
-
-```bash
-# Run one test (e.g. the 'contour_nolines' test):
-npm run test-image -- contour_nolines
-
-# Run all gl3d image tests in batch:
-npm run test-image -- gl3d_*
-
-# Run all image tests that are not gl3d in batch:
-npm run test-image --  "\!\(gl3d_\)*"
-```
-
-Developers on weak hardware might encounter batch timeout issue. These are most
-common when generated WebGL-based graphs. In this case, running the image
-comparison tests in queue (i.e. with no concurrency) is recommended:
-
-```bash
-# Run all gl3d image test in queue:
-npm run test-image -- gl3d_* --queue
-```
-
-##### B: Run image export tests
-
-Image export tests check that image export works for formats other than png.
-
-To run the image export tests, in your `plotly.js` directory:
-
-```bash
-npm run test-export
-
-# or
-npm run test-export -- 
-```
-
-##### C: Generate or update existing baseline image
-
-To generate a new baseline image, add a new mock file in
-[`test/image/mocks`][mocks]. Note that mock file needs to be a valid JSON and
-have both a "data" and a `"layout"` field. Then, in your plotly.js directory,
-run:
-
-```bash
-npm run baseline -- 
-```
-
-which generates a baseline png image in [`test/image/baselines`][baselines].
-
-To update existing baseline image(s), run
-
-```bash
-npm run baseline -- 
-```
-
-### Step 3: Stop your testing container
-
-Once done testing, inside your `plotly.js` directory, run
-
-```bash
-npm run docker -- stop
-```
-
-which calls [`docker-stop`][docker-stop] with the correct arguments.
-
-Mac and Windows user should also kill their docker-machine (named `default`) once done testing:
-
-```bash
-docker-machine kill default
-```
-
-### Docker tricks
-
-##### Get into docker container
-
-```bash
-docker exec -ti imagetest /bin/bash
-```
-
-##### List docker machines
-
-```bash
-docker-machine ls
-```
-
-##### List all images
-
-```bash
-docker images
-```
-
-##### List all containers
-
-```bash
-docker ps -a
-```
-
-whereas `docker ps` lists only the started containers.
-
-##### Remove your testing container
-
-Inside your `plotly.js` directory, run
-
-```bash
-npm run docker -- remove
-```
-
-which calls [`docker-rm`][docker-rm] with the correct arguments.
-
-##### Remove your docker machine
-
-If named `default`:
-
-```bash
-docker-machine kill default
-```
-
-For more comprehensive information about docker, please refer to the [docker docs](https://docs.docker.com/).
-
-[mocks]: https://github.com/plotly/plotly.js/tree/master/test/image/mocks
-[baselines]: https://github.com/plotly/plotly.js/tree/master/test/image/baselines
-[docker-install]: https://docs.docker.com/engine/installation/
-[docker-machine-install]: https://docs.docker.com/machine/install-machine/
-[docker-hub]: https://hub.docker.com/r/plotly/testbed/tags/
-[docker-pull]: https://docs.docker.com/engine/reference/commandline/pull/
-[docker-run]: https://docs.docker.com/engine/reference/commandline/run/
-[docker-start]: https://docs.docker.com/engine/reference/commandline/start/
-[docker-stop]: https://docs.docker.com/engine/reference/commandline/stop/
-[docker-rm]: https://docs.docker.com/engine/reference/commandline/rm/
-[gm]: https://github.com/aheckmann/gm
-[glob]: https://github.com/isaacs/node-glob
diff --git a/test/image/assets/get_image_request_options.js b/test/image/assets/get_image_request_options.js
deleted file mode 100644
index 82589f76d16..00000000000
--- a/test/image/assets/get_image_request_options.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var path = require('path');
-var constants = require('../../../tasks/util/constants');
-
-var DEFAULT_FORMAT = 'png';
-var DEFAULT_SCALE = 1;
-
-/**
- *  Return the image server request options for a given mock (and specs)
- *
- *  @param {object} specs
- *      mockName : name of json mock to plot
- *      format (optional): format of generated image
- *      scale (optional): scale of generated image
- *      url (optional): URL of image server
- */
-module.exports = function getRequestOpts(specs) {
-    var pathToMock = path.join(constants.pathToTestImageMocks, specs.mockName) + '.json';
-    var figure = require(pathToMock);
-
-    var body = {
-        figure: figure,
-        format: specs.format || DEFAULT_FORMAT,
-        scale: specs.scale || DEFAULT_SCALE
-    };
-
-    if(specs.width) body.width = specs.width;
-    if(specs.height) body.height = specs.height;
-
-    return {
-        method: 'POST',
-        url: constants.testContainerUrl,
-        body: JSON.stringify(body)
-    };
-};
diff --git a/test/image/assets/get_mock_list.js b/test/image/assets/get_mock_list.js
index e0f4b39a147..77ab53c6b4c 100644
--- a/test/image/assets/get_mock_list.js
+++ b/test/image/assets/get_mock_list.js
@@ -11,6 +11,9 @@ var constants = require('../../../tasks/util/constants');
  *  @return {array}
  */
 module.exports = function getMocks(pattern) {
+    // ensure string
+    pattern = String(pattern);
+
     // defaults to 'all'
     pattern = pattern || '*';
 
diff --git a/test/image/baselines/0.png b/test/image/baselines/0.png
index 9d6c91ac31a..82187eecd31 100644
Binary files a/test/image/baselines/0.png and b/test/image/baselines/0.png differ
diff --git a/test/image/baselines/1.png b/test/image/baselines/1.png
index fbe4ec8f869..c38f100641f 100644
Binary files a/test/image/baselines/1.png and b/test/image/baselines/1.png differ
diff --git a/test/image/baselines/10.png b/test/image/baselines/10.png
index aaf0100074e..9ac419f7083 100644
Binary files a/test/image/baselines/10.png and b/test/image/baselines/10.png differ
diff --git a/test/image/baselines/11.png b/test/image/baselines/11.png
index 52ca085761f..dcdd4a2ca6c 100644
Binary files a/test/image/baselines/11.png and b/test/image/baselines/11.png differ
diff --git a/test/image/baselines/12.png b/test/image/baselines/12.png
index 4b81dee9a6c..ec5b40f1727 100644
Binary files a/test/image/baselines/12.png and b/test/image/baselines/12.png differ
diff --git a/test/image/baselines/13.png b/test/image/baselines/13.png
index 2d1b1652ef5..a5489ae7ed5 100644
Binary files a/test/image/baselines/13.png and b/test/image/baselines/13.png differ
diff --git a/test/image/baselines/14.png b/test/image/baselines/14.png
index bcea17520b0..a8bf354b7c3 100644
Binary files a/test/image/baselines/14.png and b/test/image/baselines/14.png differ
diff --git a/test/image/baselines/15.png b/test/image/baselines/15.png
index 7d6fd5517dd..07a0869e350 100644
Binary files a/test/image/baselines/15.png and b/test/image/baselines/15.png differ
diff --git a/test/image/baselines/16.png b/test/image/baselines/16.png
index 4c6af3dd5e7..4180adfc062 100644
Binary files a/test/image/baselines/16.png and b/test/image/baselines/16.png differ
diff --git a/test/image/baselines/17.png b/test/image/baselines/17.png
index e9292065669..fcfd9d95da9 100644
Binary files a/test/image/baselines/17.png and b/test/image/baselines/17.png differ
diff --git a/test/image/baselines/18.png b/test/image/baselines/18.png
index 478c7f21823..812bc2195e6 100644
Binary files a/test/image/baselines/18.png and b/test/image/baselines/18.png differ
diff --git a/test/image/baselines/19.png b/test/image/baselines/19.png
index fc65db8d341..6325afa746d 100644
Binary files a/test/image/baselines/19.png and b/test/image/baselines/19.png differ
diff --git a/test/image/baselines/20.png b/test/image/baselines/20.png
index 2e8b83f7def..32da2fb249a 100644
Binary files a/test/image/baselines/20.png and b/test/image/baselines/20.png differ
diff --git a/test/image/baselines/21.png b/test/image/baselines/21.png
index e17d6d60c2c..088b378a5e2 100644
Binary files a/test/image/baselines/21.png and b/test/image/baselines/21.png differ
diff --git a/test/image/baselines/22.png b/test/image/baselines/22.png
index fa84aea1e82..fd9c8bd810c 100644
Binary files a/test/image/baselines/22.png and b/test/image/baselines/22.png differ
diff --git a/test/image/baselines/23.png b/test/image/baselines/23.png
index 6a4223e6b18..094be50482c 100644
Binary files a/test/image/baselines/23.png and b/test/image/baselines/23.png differ
diff --git a/test/image/baselines/24.png b/test/image/baselines/24.png
index 5f5ef817bc6..c2081da4df9 100644
Binary files a/test/image/baselines/24.png and b/test/image/baselines/24.png differ
diff --git a/test/image/baselines/25.png b/test/image/baselines/25.png
index 5008e9ea872..1f4b2559637 100644
Binary files a/test/image/baselines/25.png and b/test/image/baselines/25.png differ
diff --git a/test/image/baselines/26.png b/test/image/baselines/26.png
index 77374918c3f..de7b0cb52cf 100644
Binary files a/test/image/baselines/26.png and b/test/image/baselines/26.png differ
diff --git a/test/image/baselines/27.png b/test/image/baselines/27.png
index 5ae3813e461..402c7127e76 100644
Binary files a/test/image/baselines/27.png and b/test/image/baselines/27.png differ
diff --git a/test/image/baselines/28.png b/test/image/baselines/28.png
index 778a85873ed..28c054d5b30 100644
Binary files a/test/image/baselines/28.png and b/test/image/baselines/28.png differ
diff --git a/test/image/baselines/29.png b/test/image/baselines/29.png
index a05d30b307f..79583f2d6a7 100644
Binary files a/test/image/baselines/29.png and b/test/image/baselines/29.png differ
diff --git a/test/image/baselines/2dhistogram_contour_subplots.png b/test/image/baselines/2dhistogram_contour_subplots.png
index 61dbea133e2..f5e9ec87286 100644
Binary files a/test/image/baselines/2dhistogram_contour_subplots.png and b/test/image/baselines/2dhistogram_contour_subplots.png differ
diff --git a/test/image/baselines/2dhistogram_contour_subplots_bingroup.png b/test/image/baselines/2dhistogram_contour_subplots_bingroup.png
index 5dc41b868e0..25150454b33 100644
Binary files a/test/image/baselines/2dhistogram_contour_subplots_bingroup.png and b/test/image/baselines/2dhistogram_contour_subplots_bingroup.png differ
diff --git a/test/image/baselines/30.png b/test/image/baselines/30.png
index 94dda21ced6..27d9383dbab 100644
Binary files a/test/image/baselines/30.png and b/test/image/baselines/30.png differ
diff --git a/test/image/baselines/31.png b/test/image/baselines/31.png
index e47e81992ed..42b5ccdc38c 100644
Binary files a/test/image/baselines/31.png and b/test/image/baselines/31.png differ
diff --git a/test/image/baselines/32.png b/test/image/baselines/32.png
index 4602377412d..0899b6b8d06 100644
Binary files a/test/image/baselines/32.png and b/test/image/baselines/32.png differ
diff --git a/test/image/baselines/4.png b/test/image/baselines/4.png
index d98ff4cd002..66e17fc7106 100644
Binary files a/test/image/baselines/4.png and b/test/image/baselines/4.png differ
diff --git a/test/image/baselines/5.png b/test/image/baselines/5.png
index 65248fd0fee..88a0d042789 100644
Binary files a/test/image/baselines/5.png and b/test/image/baselines/5.png differ
diff --git a/test/image/baselines/airfoil.png b/test/image/baselines/airfoil.png
index 4bdd829a5ec..43af2ef7660 100644
Binary files a/test/image/baselines/airfoil.png and b/test/image/baselines/airfoil.png differ
diff --git a/test/image/baselines/animation.png b/test/image/baselines/animation.png
index 91bda9d9621..1571ea5535d 100644
Binary files a/test/image/baselines/animation.png and b/test/image/baselines/animation.png differ
diff --git a/test/image/baselines/animation_bar.png b/test/image/baselines/animation_bar.png
index 262aaed7be1..cdb42adc8ea 100644
Binary files a/test/image/baselines/animation_bar.png and b/test/image/baselines/animation_bar.png differ
diff --git a/test/image/baselines/annotations-autorange.png b/test/image/baselines/annotations-autorange.png
index d1fb548a0fe..dc61fec59d4 100644
Binary files a/test/image/baselines/annotations-autorange.png and b/test/image/baselines/annotations-autorange.png differ
diff --git a/test/image/baselines/annotations.png b/test/image/baselines/annotations.png
index 4a349f6df12..f0e6a1cb346 100644
Binary files a/test/image/baselines/annotations.png and b/test/image/baselines/annotations.png differ
diff --git a/test/image/baselines/arrow-markers.png b/test/image/baselines/arrow-markers.png
index b8dcf19a03c..b7ec230bfaf 100644
Binary files a/test/image/baselines/arrow-markers.png and b/test/image/baselines/arrow-markers.png differ
diff --git a/test/image/baselines/automargin-large-margins-both-sides.png b/test/image/baselines/automargin-large-margins-both-sides.png
index fc17d8fe808..1ad38cc9d26 100644
Binary files a/test/image/baselines/automargin-large-margins-both-sides.png and b/test/image/baselines/automargin-large-margins-both-sides.png differ
diff --git a/test/image/baselines/automargin-large-margins-horizontal.png b/test/image/baselines/automargin-large-margins-horizontal.png
index 2641dd8d97e..3eb526e396d 100644
Binary files a/test/image/baselines/automargin-large-margins-horizontal.png and b/test/image/baselines/automargin-large-margins-horizontal.png differ
diff --git a/test/image/baselines/automargin-large-margins.png b/test/image/baselines/automargin-large-margins.png
index dad69bba747..6514c198a8b 100644
Binary files a/test/image/baselines/automargin-large-margins.png and b/test/image/baselines/automargin-large-margins.png differ
diff --git a/test/image/baselines/automargin-mirror-all.png b/test/image/baselines/automargin-mirror-all.png
index cbd5ad2bb29..69ad268fa4a 100644
Binary files a/test/image/baselines/automargin-mirror-all.png and b/test/image/baselines/automargin-mirror-all.png differ
diff --git a/test/image/baselines/automargin-mirror-allticks.png b/test/image/baselines/automargin-mirror-allticks.png
index 376b0a8efe8..fc374d33f02 100644
Binary files a/test/image/baselines/automargin-mirror-allticks.png and b/test/image/baselines/automargin-mirror-allticks.png differ
diff --git a/test/image/baselines/automargin-multiline-titles.png b/test/image/baselines/automargin-multiline-titles.png
index 3593c242148..743079d0217 100644
Binary files a/test/image/baselines/automargin-multiline-titles.png and b/test/image/baselines/automargin-multiline-titles.png differ
diff --git a/test/image/baselines/automargin-narrow-indicator.png b/test/image/baselines/automargin-narrow-indicator.png
index 693dea6cdbc..efb69637f9c 100644
Binary files a/test/image/baselines/automargin-narrow-indicator.png and b/test/image/baselines/automargin-narrow-indicator.png differ
diff --git a/test/image/baselines/automargin-push-x-extra.png b/test/image/baselines/automargin-push-x-extra.png
index 9d7488acec4..ceb0b39adae 100644
Binary files a/test/image/baselines/automargin-push-x-extra.png and b/test/image/baselines/automargin-push-x-extra.png differ
diff --git a/test/image/baselines/automargin-push-y-extra.png b/test/image/baselines/automargin-push-y-extra.png
index 6ad607c65ed..3436fe6f52c 100644
Binary files a/test/image/baselines/automargin-push-y-extra.png and b/test/image/baselines/automargin-push-y-extra.png differ
diff --git a/test/image/baselines/automargin-rangeslider-and-sidepush.png b/test/image/baselines/automargin-rangeslider-and-sidepush.png
index f107bc954df..379ea115acd 100644
Binary files a/test/image/baselines/automargin-rangeslider-and-sidepush.png and b/test/image/baselines/automargin-rangeslider-and-sidepush.png differ
diff --git a/test/image/baselines/automargin-small-width.png b/test/image/baselines/automargin-small-width.png
index 93c0c9a8e93..74b1da7c2db 100644
Binary files a/test/image/baselines/automargin-small-width.png and b/test/image/baselines/automargin-small-width.png differ
diff --git a/test/image/baselines/automargin-superimposed-axes.png b/test/image/baselines/automargin-superimposed-axes.png
index 06fc2d2ee23..786afe1f54c 100644
Binary files a/test/image/baselines/automargin-superimposed-axes.png and b/test/image/baselines/automargin-superimposed-axes.png differ
diff --git a/test/image/baselines/automargin-title-standoff.png b/test/image/baselines/automargin-title-standoff.png
index 6bcc837fa71..4cb9bb6d2ed 100644
Binary files a/test/image/baselines/automargin-title-standoff.png and b/test/image/baselines/automargin-title-standoff.png differ
diff --git a/test/image/baselines/autorange-tozero-rangemode.png b/test/image/baselines/autorange-tozero-rangemode.png
index c7792350c31..6683c611baf 100644
Binary files a/test/image/baselines/autorange-tozero-rangemode.png and b/test/image/baselines/autorange-tozero-rangemode.png differ
diff --git a/test/image/baselines/axes-autotype-empty.png b/test/image/baselines/axes-autotype-empty.png
index 3ab891cb10a..c346f1b5b1a 100644
Binary files a/test/image/baselines/axes-autotype-empty.png and b/test/image/baselines/axes-autotype-empty.png differ
diff --git a/test/image/baselines/axes-ticks.png b/test/image/baselines/axes-ticks.png
index cb7a83c6a8f..36fb61c642d 100644
Binary files a/test/image/baselines/axes-ticks.png and b/test/image/baselines/axes-ticks.png differ
diff --git a/test/image/baselines/axes_booleans.png b/test/image/baselines/axes_booleans.png
index a286547a420..7abd62faa49 100644
Binary files a/test/image/baselines/axes_booleans.png and b/test/image/baselines/axes_booleans.png differ
diff --git a/test/image/baselines/axes_breaks-candlestick.png b/test/image/baselines/axes_breaks-candlestick.png
index edb0d947459..b2779d30326 100644
Binary files a/test/image/baselines/axes_breaks-candlestick.png and b/test/image/baselines/axes_breaks-candlestick.png differ
diff --git a/test/image/baselines/axes_breaks-candlestick2.png b/test/image/baselines/axes_breaks-candlestick2.png
index 326bf1dd071..a8e9cb50d36 100644
Binary files a/test/image/baselines/axes_breaks-candlestick2.png and b/test/image/baselines/axes_breaks-candlestick2.png differ
diff --git a/test/image/baselines/axes_breaks-contour1d.png b/test/image/baselines/axes_breaks-contour1d.png
index fb74cb6fb9a..198ddf4efc7 100644
Binary files a/test/image/baselines/axes_breaks-contour1d.png and b/test/image/baselines/axes_breaks-contour1d.png differ
diff --git a/test/image/baselines/axes_breaks-contour2d.png b/test/image/baselines/axes_breaks-contour2d.png
index c84d2d11874..ceaba1b0d41 100644
Binary files a/test/image/baselines/axes_breaks-contour2d.png and b/test/image/baselines/axes_breaks-contour2d.png differ
diff --git a/test/image/baselines/axes_breaks-dtick_auto.png b/test/image/baselines/axes_breaks-dtick_auto.png
index 523b13a3170..22c74b90115 100644
Binary files a/test/image/baselines/axes_breaks-dtick_auto.png and b/test/image/baselines/axes_breaks-dtick_auto.png differ
diff --git a/test/image/baselines/axes_breaks-dtick_hourly.png b/test/image/baselines/axes_breaks-dtick_hourly.png
index fc1b38379e3..24e74f60e62 100644
Binary files a/test/image/baselines/axes_breaks-dtick_hourly.png and b/test/image/baselines/axes_breaks-dtick_hourly.png differ
diff --git a/test/image/baselines/axes_breaks-finance.png b/test/image/baselines/axes_breaks-finance.png
index d50156127af..4e334fcde39 100644
Binary files a/test/image/baselines/axes_breaks-finance.png and b/test/image/baselines/axes_breaks-finance.png differ
diff --git a/test/image/baselines/axes_breaks-gridlines.png b/test/image/baselines/axes_breaks-gridlines.png
index af5f4fd649c..d1faf40e25e 100644
Binary files a/test/image/baselines/axes_breaks-gridlines.png and b/test/image/baselines/axes_breaks-gridlines.png differ
diff --git a/test/image/baselines/axes_breaks-heatmap1d.png b/test/image/baselines/axes_breaks-heatmap1d.png
index fb9e5ee98ae..f150a35a015 100644
Binary files a/test/image/baselines/axes_breaks-heatmap1d.png and b/test/image/baselines/axes_breaks-heatmap1d.png differ
diff --git a/test/image/baselines/axes_breaks-heatmap2d.png b/test/image/baselines/axes_breaks-heatmap2d.png
index 83177a0747c..0c350caa113 100644
Binary files a/test/image/baselines/axes_breaks-heatmap2d.png and b/test/image/baselines/axes_breaks-heatmap2d.png differ
diff --git a/test/image/baselines/axes_breaks-histogram2d.png b/test/image/baselines/axes_breaks-histogram2d.png
index a822bcc8528..071ea28ea36 100644
Binary files a/test/image/baselines/axes_breaks-histogram2d.png and b/test/image/baselines/axes_breaks-histogram2d.png differ
diff --git a/test/image/baselines/axes_breaks-matches.png b/test/image/baselines/axes_breaks-matches.png
index 7d5fb86addc..bab93363a9f 100644
Binary files a/test/image/baselines/axes_breaks-matches.png and b/test/image/baselines/axes_breaks-matches.png differ
diff --git a/test/image/baselines/axes_breaks-night_autorange-reversed.png b/test/image/baselines/axes_breaks-night_autorange-reversed.png
index 37fe6c40862..40b4e1b0d50 100644
Binary files a/test/image/baselines/axes_breaks-night_autorange-reversed.png and b/test/image/baselines/axes_breaks-night_autorange-reversed.png differ
diff --git a/test/image/baselines/axes_breaks-ohlc_candlestick_box.png b/test/image/baselines/axes_breaks-ohlc_candlestick_box.png
index 7d52eb94b60..f6bb3ecaa8e 100644
Binary files a/test/image/baselines/axes_breaks-ohlc_candlestick_box.png and b/test/image/baselines/axes_breaks-ohlc_candlestick_box.png differ
diff --git a/test/image/baselines/axes_breaks-overlap.png b/test/image/baselines/axes_breaks-overlap.png
index 3cc73f6915b..65e245b3481 100644
Binary files a/test/image/baselines/axes_breaks-overlap.png and b/test/image/baselines/axes_breaks-overlap.png differ
diff --git a/test/image/baselines/axes_breaks-rangeslider.png b/test/image/baselines/axes_breaks-rangeslider.png
index 73600339ce6..4c823b95749 100644
Binary files a/test/image/baselines/axes_breaks-rangeslider.png and b/test/image/baselines/axes_breaks-rangeslider.png differ
diff --git a/test/image/baselines/axes_breaks-reversed-without-pattern.png b/test/image/baselines/axes_breaks-reversed-without-pattern.png
index 29fec4b988a..4f3c57d9c27 100644
Binary files a/test/image/baselines/axes_breaks-reversed-without-pattern.png and b/test/image/baselines/axes_breaks-reversed-without-pattern.png differ
diff --git a/test/image/baselines/axes_breaks-round-weekdays.png b/test/image/baselines/axes_breaks-round-weekdays.png
index f4288baf687..d57d0ac768c 100644
Binary files a/test/image/baselines/axes_breaks-round-weekdays.png and b/test/image/baselines/axes_breaks-round-weekdays.png differ
diff --git a/test/image/baselines/axes_breaks-tickvals.png b/test/image/baselines/axes_breaks-tickvals.png
index 0b9f4d87f9b..40770ef044f 100644
Binary files a/test/image/baselines/axes_breaks-tickvals.png and b/test/image/baselines/axes_breaks-tickvals.png differ
diff --git a/test/image/baselines/axes_breaks-values.png b/test/image/baselines/axes_breaks-values.png
index c7c47d0e295..a7d09b3c29f 100644
Binary files a/test/image/baselines/axes_breaks-values.png and b/test/image/baselines/axes_breaks-values.png differ
diff --git a/test/image/baselines/axes_breaks-weekends-weeknights.png b/test/image/baselines/axes_breaks-weekends-weeknights.png
index 530bc27375f..c687a4e0407 100644
Binary files a/test/image/baselines/axes_breaks-weekends-weeknights.png and b/test/image/baselines/axes_breaks-weekends-weeknights.png differ
diff --git a/test/image/baselines/axes_breaks-weekends_autorange-reversed.png b/test/image/baselines/axes_breaks-weekends_autorange-reversed.png
index 2892d889414..725832f71e6 100644
Binary files a/test/image/baselines/axes_breaks-weekends_autorange-reversed.png and b/test/image/baselines/axes_breaks-weekends_autorange-reversed.png differ
diff --git a/test/image/baselines/axes_breaks.png b/test/image/baselines/axes_breaks.png
index 5f34b4c8e68..ea09cbb38c5 100644
Binary files a/test/image/baselines/axes_breaks.png and b/test/image/baselines/axes_breaks.png differ
diff --git a/test/image/baselines/axes_category_ascending.png b/test/image/baselines/axes_category_ascending.png
index f65f8ef73d4..a1df7dc2221 100644
Binary files a/test/image/baselines/axes_category_ascending.png and b/test/image/baselines/axes_category_ascending.png differ
diff --git a/test/image/baselines/axes_category_categoryarray.png b/test/image/baselines/axes_category_categoryarray.png
index 105b0baa2a2..f6613f3e456 100644
Binary files a/test/image/baselines/axes_category_categoryarray.png and b/test/image/baselines/axes_category_categoryarray.png differ
diff --git a/test/image/baselines/axes_category_categoryarray_truncated_tails.png b/test/image/baselines/axes_category_categoryarray_truncated_tails.png
index ef9c917505c..1bb740edbd3 100644
Binary files a/test/image/baselines/axes_category_categoryarray_truncated_tails.png and b/test/image/baselines/axes_category_categoryarray_truncated_tails.png differ
diff --git a/test/image/baselines/axes_category_descending.png b/test/image/baselines/axes_category_descending.png
index 9aaa43edaaa..06d92f7342d 100644
Binary files a/test/image/baselines/axes_category_descending.png and b/test/image/baselines/axes_category_descending.png differ
diff --git a/test/image/baselines/axes_category_descending_with_gaps.png b/test/image/baselines/axes_category_descending_with_gaps.png
index 191b91b7995..d0df71ca34d 100644
Binary files a/test/image/baselines/axes_category_descending_with_gaps.png and b/test/image/baselines/axes_category_descending_with_gaps.png differ
diff --git a/test/image/baselines/axes_category_null.png b/test/image/baselines/axes_category_null.png
index fccc962bf5c..9c6935799e3 100644
Binary files a/test/image/baselines/axes_category_null.png and b/test/image/baselines/axes_category_null.png differ
diff --git a/test/image/baselines/axes_chain_scaleanchor_matches.png b/test/image/baselines/axes_chain_scaleanchor_matches.png
index 026c906cb55..cb888b0a45e 100644
Binary files a/test/image/baselines/axes_chain_scaleanchor_matches.png and b/test/image/baselines/axes_chain_scaleanchor_matches.png differ
diff --git a/test/image/baselines/axes_chain_scaleanchor_matches2.png b/test/image/baselines/axes_chain_scaleanchor_matches2.png
index 33bed3a95a6..1493e82aadb 100644
Binary files a/test/image/baselines/axes_chain_scaleanchor_matches2.png and b/test/image/baselines/axes_chain_scaleanchor_matches2.png differ
diff --git a/test/image/baselines/axes_chain_scaleanchor_matches2_inside-ticklabels.png b/test/image/baselines/axes_chain_scaleanchor_matches2_inside-ticklabels.png
index bb08b0dd39c..fe520de8b18 100644
Binary files a/test/image/baselines/axes_chain_scaleanchor_matches2_inside-ticklabels.png and b/test/image/baselines/axes_chain_scaleanchor_matches2_inside-ticklabels.png differ
diff --git a/test/image/baselines/axes_chain_scaleanchor_matches_inside-ticklabels.png b/test/image/baselines/axes_chain_scaleanchor_matches_inside-ticklabels.png
index 267ff1ec670..dd3d8d0ecea 100644
Binary files a/test/image/baselines/axes_chain_scaleanchor_matches_inside-ticklabels.png and b/test/image/baselines/axes_chain_scaleanchor_matches_inside-ticklabels.png differ
diff --git a/test/image/baselines/axes_custom-ticks_log-date.png b/test/image/baselines/axes_custom-ticks_log-date.png
index b52373b8516..9121ca8ef46 100644
Binary files a/test/image/baselines/axes_custom-ticks_log-date.png and b/test/image/baselines/axes_custom-ticks_log-date.png differ
diff --git a/test/image/baselines/axes_enumerated_ticks.png b/test/image/baselines/axes_enumerated_ticks.png
index 5e2dad1405e..3070a3ca9c9 100644
Binary files a/test/image/baselines/axes_enumerated_ticks.png and b/test/image/baselines/axes_enumerated_ticks.png differ
diff --git a/test/image/baselines/axes_free_default.png b/test/image/baselines/axes_free_default.png
index 7b6c66e521b..13511c0ccea 100644
Binary files a/test/image/baselines/axes_free_default.png and b/test/image/baselines/axes_free_default.png differ
diff --git a/test/image/baselines/axes_labels.png b/test/image/baselines/axes_labels.png
index e21752587cc..5e4cf38041e 100644
Binary files a/test/image/baselines/axes_labels.png and b/test/image/baselines/axes_labels.png differ
diff --git a/test/image/baselines/axes_line_noticklabels.png b/test/image/baselines/axes_line_noticklabels.png
index 20ca059a88c..6d9a3b590c3 100644
Binary files a/test/image/baselines/axes_line_noticklabels.png and b/test/image/baselines/axes_line_noticklabels.png differ
diff --git a/test/image/baselines/axes_lines.png b/test/image/baselines/axes_lines.png
index aa570e3aead..dd80d673805 100644
Binary files a/test/image/baselines/axes_lines.png and b/test/image/baselines/axes_lines.png differ
diff --git a/test/image/baselines/axes_linked_date_autorange.png b/test/image/baselines/axes_linked_date_autorange.png
index 3a2da78fe9f..7401b05a7d6 100644
Binary files a/test/image/baselines/axes_linked_date_autorange.png and b/test/image/baselines/axes_linked_date_autorange.png differ
diff --git a/test/image/baselines/axes_matches-linear-categories.png b/test/image/baselines/axes_matches-linear-categories.png
index 00f6e5cc12e..51513fe0f50 100644
Binary files a/test/image/baselines/axes_matches-linear-categories.png and b/test/image/baselines/axes_matches-linear-categories.png differ
diff --git a/test/image/baselines/axes_range_manual.png b/test/image/baselines/axes_range_manual.png
index 9ebce9e1f7c..160ccef54d8 100644
Binary files a/test/image/baselines/axes_range_manual.png and b/test/image/baselines/axes_range_manual.png differ
diff --git a/test/image/baselines/axes_range_mode.png b/test/image/baselines/axes_range_mode.png
index 927bd5e1a57..1710df8aaf9 100644
Binary files a/test/image/baselines/axes_range_mode.png and b/test/image/baselines/axes_range_mode.png differ
diff --git a/test/image/baselines/axes_range_type.png b/test/image/baselines/axes_range_type.png
index 857b9eec629..2fd5dca2c7e 100644
Binary files a/test/image/baselines/axes_range_type.png and b/test/image/baselines/axes_range_type.png differ
diff --git a/test/image/baselines/axes_reversed.png b/test/image/baselines/axes_reversed.png
index 6c777c6ad60..796eb193732 100644
Binary files a/test/image/baselines/axes_reversed.png and b/test/image/baselines/axes_reversed.png differ
diff --git a/test/image/baselines/axes_scaleanchor-constrain-domain-fixedrange.png b/test/image/baselines/axes_scaleanchor-constrain-domain-fixedrange.png
index 60bd3831990..3fdcad59d3a 100644
Binary files a/test/image/baselines/axes_scaleanchor-constrain-domain-fixedrange.png and b/test/image/baselines/axes_scaleanchor-constrain-domain-fixedrange.png differ
diff --git a/test/image/baselines/axes_scaleanchor-with-matches.png b/test/image/baselines/axes_scaleanchor-with-matches.png
index 29e4065ffd2..02e52fcbb5c 100644
Binary files a/test/image/baselines/axes_scaleanchor-with-matches.png and b/test/image/baselines/axes_scaleanchor-with-matches.png differ
diff --git a/test/image/baselines/axes_scaleanchor.png b/test/image/baselines/axes_scaleanchor.png
index 48c55dba35f..69acc9e1661 100644
Binary files a/test/image/baselines/axes_scaleanchor.png and b/test/image/baselines/axes_scaleanchor.png differ
diff --git a/test/image/baselines/axes_visible-false.png b/test/image/baselines/axes_visible-false.png
index 3f12542a06e..0a38ce34440 100644
Binary files a/test/image/baselines/axes_visible-false.png and b/test/image/baselines/axes_visible-false.png differ
diff --git a/test/image/baselines/axis-title-standoff.png b/test/image/baselines/axis-title-standoff.png
index ab92f3a55b6..1464feac871 100644
Binary files a/test/image/baselines/axis-title-standoff.png and b/test/image/baselines/axis-title-standoff.png differ
diff --git a/test/image/baselines/axis_automargin_zero_margins.png b/test/image/baselines/axis_automargin_zero_margins.png
index bc16ae35523..53bc3bd2eb7 100644
Binary files a/test/image/baselines/axis_automargin_zero_margins.png and b/test/image/baselines/axis_automargin_zero_margins.png differ
diff --git a/test/image/baselines/axislabel_separatethousands.png b/test/image/baselines/axislabel_separatethousands.png
index 64e60032333..e7208efb26c 100644
Binary files a/test/image/baselines/axislabel_separatethousands.png and b/test/image/baselines/axislabel_separatethousands.png differ
diff --git a/test/image/baselines/bar-alignment-offset.png b/test/image/baselines/bar-alignment-offset.png
index 3c004bb6918..1526fd6c61d 100644
Binary files a/test/image/baselines/bar-alignment-offset.png and b/test/image/baselines/bar-alignment-offset.png differ
diff --git a/test/image/baselines/bar-autotext-log-size-axes.png b/test/image/baselines/bar-autotext-log-size-axes.png
index 63f3afe2730..ba1b4b37d6d 100644
Binary files a/test/image/baselines/bar-autotext-log-size-axes.png and b/test/image/baselines/bar-autotext-log-size-axes.png differ
diff --git a/test/image/baselines/bar-colorscale-colorbar.png b/test/image/baselines/bar-colorscale-colorbar.png
index 306baed1e12..f2a46640566 100644
Binary files a/test/image/baselines/bar-colorscale-colorbar.png and b/test/image/baselines/bar-colorscale-colorbar.png differ
diff --git a/test/image/baselines/bar-grouping-vs-defaults.png b/test/image/baselines/bar-grouping-vs-defaults.png
index 6b5bb751dc1..0962f5d34c1 100644
Binary files a/test/image/baselines/bar-grouping-vs-defaults.png and b/test/image/baselines/bar-grouping-vs-defaults.png differ
diff --git a/test/image/baselines/bar-insidetext-log-size-axis.png b/test/image/baselines/bar-insidetext-log-size-axis.png
index 82f44542cc4..f0809c4db56 100644
Binary files a/test/image/baselines/bar-insidetext-log-size-axis.png and b/test/image/baselines/bar-insidetext-log-size-axis.png differ
diff --git a/test/image/baselines/bar-like_textangle45.png b/test/image/baselines/bar-like_textangle45.png
index ab30e8a7b66..58fc28b2028 100644
Binary files a/test/image/baselines/bar-like_textangle45.png and b/test/image/baselines/bar-like_textangle45.png differ
diff --git a/test/image/baselines/bar-like_textangle60.png b/test/image/baselines/bar-like_textangle60.png
index 5e8f64b0237..d6170d831ec 100644
Binary files a/test/image/baselines/bar-like_textangle60.png and b/test/image/baselines/bar-like_textangle60.png differ
diff --git a/test/image/baselines/bar-like_traces_no-tozero.png b/test/image/baselines/bar-like_traces_no-tozero.png
index 5b2944a3e14..1aa0df86689 100644
Binary files a/test/image/baselines/bar-like_traces_no-tozero.png and b/test/image/baselines/bar-like_traces_no-tozero.png differ
diff --git a/test/image/baselines/bar-like_traces_no-tozero_negative.png b/test/image/baselines/bar-like_traces_no-tozero_negative.png
index bf9d5044c18..b5c71ac17ff 100644
Binary files a/test/image/baselines/bar-like_traces_no-tozero_negative.png and b/test/image/baselines/bar-like_traces_no-tozero_negative.png differ
diff --git a/test/image/baselines/bar-like_traces_no-tozero_stack.png b/test/image/baselines/bar-like_traces_no-tozero_stack.png
index 9c67d2ee6f1..c9c6a642509 100644
Binary files a/test/image/baselines/bar-like_traces_no-tozero_stack.png and b/test/image/baselines/bar-like_traces_no-tozero_stack.png differ
diff --git a/test/image/baselines/bar-like_traces_tozero.png b/test/image/baselines/bar-like_traces_tozero.png
index 483264a31c4..8b46347e6e2 100644
Binary files a/test/image/baselines/bar-like_traces_tozero.png and b/test/image/baselines/bar-like_traces_tozero.png differ
diff --git a/test/image/baselines/bar-marker-line-colorscales.png b/test/image/baselines/bar-marker-line-colorscales.png
index 02b158fefef..3a900a819c6 100644
Binary files a/test/image/baselines/bar-marker-line-colorscales.png and b/test/image/baselines/bar-marker-line-colorscales.png differ
diff --git a/test/image/baselines/bar-offsetgroups.png b/test/image/baselines/bar-offsetgroups.png
index b5f400efa4a..f9f95a0d65e 100644
Binary files a/test/image/baselines/bar-offsetgroups.png and b/test/image/baselines/bar-offsetgroups.png differ
diff --git a/test/image/baselines/bar-with-milliseconds.png b/test/image/baselines/bar-with-milliseconds.png
index 60cd4f2448f..ed72fc545bb 100644
Binary files a/test/image/baselines/bar-with-milliseconds.png and b/test/image/baselines/bar-with-milliseconds.png differ
diff --git a/test/image/baselines/bar_and_histogram.png b/test/image/baselines/bar_and_histogram.png
index 99bd2626b13..fd14e4501e8 100644
Binary files a/test/image/baselines/bar_and_histogram.png and b/test/image/baselines/bar_and_histogram.png differ
diff --git a/test/image/baselines/bar_annotation_max_range_eq_category.png b/test/image/baselines/bar_annotation_max_range_eq_category.png
index f919fffe294..9102d7a5c08 100644
Binary files a/test/image/baselines/bar_annotation_max_range_eq_category.png and b/test/image/baselines/bar_annotation_max_range_eq_category.png differ
diff --git a/test/image/baselines/bar_attrs_group.png b/test/image/baselines/bar_attrs_group.png
index 66ae212f49a..3afcea20847 100644
Binary files a/test/image/baselines/bar_attrs_group.png and b/test/image/baselines/bar_attrs_group.png differ
diff --git a/test/image/baselines/bar_attrs_group_norm.png b/test/image/baselines/bar_attrs_group_norm.png
index 7868b195ebf..6d9a69842a4 100644
Binary files a/test/image/baselines/bar_attrs_group_norm.png and b/test/image/baselines/bar_attrs_group_norm.png differ
diff --git a/test/image/baselines/bar_attrs_overlay.png b/test/image/baselines/bar_attrs_overlay.png
index d3650cdfeea..b8e10a0c0b6 100644
Binary files a/test/image/baselines/bar_attrs_overlay.png and b/test/image/baselines/bar_attrs_overlay.png differ
diff --git a/test/image/baselines/bar_attrs_relative.png b/test/image/baselines/bar_attrs_relative.png
index 15348a2001e..0647f2daf2e 100644
Binary files a/test/image/baselines/bar_attrs_relative.png and b/test/image/baselines/bar_attrs_relative.png differ
diff --git a/test/image/baselines/bar_autorange-above-zero-normalized.png b/test/image/baselines/bar_autorange-above-zero-normalized.png
index 407673e7922..8c8cafc1cbd 100644
Binary files a/test/image/baselines/bar_autorange-above-zero-normalized.png and b/test/image/baselines/bar_autorange-above-zero-normalized.png differ
diff --git a/test/image/baselines/bar_autorange-above-zero.png b/test/image/baselines/bar_autorange-above-zero.png
index 2552f4ed5ee..13a3bf3924f 100644
Binary files a/test/image/baselines/bar_autorange-above-zero.png and b/test/image/baselines/bar_autorange-above-zero.png differ
diff --git a/test/image/baselines/bar_axis_textangle_outside.png b/test/image/baselines/bar_axis_textangle_outside.png
index 0f5009d6f89..78273a14763 100644
Binary files a/test/image/baselines/bar_axis_textangle_outside.png and b/test/image/baselines/bar_axis_textangle_outside.png differ
diff --git a/test/image/baselines/bar_bargap0.png b/test/image/baselines/bar_bargap0.png
index cb28738e50c..213b63070be 100644
Binary files a/test/image/baselines/bar_bargap0.png and b/test/image/baselines/bar_bargap0.png differ
diff --git a/test/image/baselines/bar_cliponaxis-false.png b/test/image/baselines/bar_cliponaxis-false.png
index a6c0cfefd0c..20555a850c5 100644
Binary files a/test/image/baselines/bar_cliponaxis-false.png and b/test/image/baselines/bar_cliponaxis-false.png differ
diff --git a/test/image/baselines/bar_display_height_zero.png b/test/image/baselines/bar_display_height_zero.png
index c69a36182ae..a82f4c9f278 100644
Binary files a/test/image/baselines/bar_display_height_zero.png and b/test/image/baselines/bar_display_height_zero.png differ
diff --git a/test/image/baselines/bar_display_height_zero_no_line_width.png b/test/image/baselines/bar_display_height_zero_no_line_width.png
index ebe9e0f2e6e..2e766cfb434 100644
Binary files a/test/image/baselines/bar_display_height_zero_no_line_width.png and b/test/image/baselines/bar_display_height_zero_no_line_width.png differ
diff --git a/test/image/baselines/bar_display_height_zero_only_line_width.png b/test/image/baselines/bar_display_height_zero_only_line_width.png
index a71e9d0c7ce..71ea03bb595 100644
Binary files a/test/image/baselines/bar_display_height_zero_only_line_width.png and b/test/image/baselines/bar_display_height_zero_only_line_width.png differ
diff --git a/test/image/baselines/bar_errorbars_inherit_color.png b/test/image/baselines/bar_errorbars_inherit_color.png
index f883db3d3d1..42969eabd48 100644
Binary files a/test/image/baselines/bar_errorbars_inherit_color.png and b/test/image/baselines/bar_errorbars_inherit_color.png differ
diff --git a/test/image/baselines/bar_gantt-chart.png b/test/image/baselines/bar_gantt-chart.png
index 14e305ea815..b3be4f1cda3 100644
Binary files a/test/image/baselines/bar_gantt-chart.png and b/test/image/baselines/bar_gantt-chart.png differ
diff --git a/test/image/baselines/bar_group_percent.png b/test/image/baselines/bar_group_percent.png
index add38a4d52d..49842af5394 100644
Binary files a/test/image/baselines/bar_group_percent.png and b/test/image/baselines/bar_group_percent.png differ
diff --git a/test/image/baselines/bar_hide_nulls.png b/test/image/baselines/bar_hide_nulls.png
index 6ada4aa9928..9c8ee84366e 100644
Binary files a/test/image/baselines/bar_hide_nulls.png and b/test/image/baselines/bar_hide_nulls.png differ
diff --git a/test/image/baselines/bar_line.png b/test/image/baselines/bar_line.png
index 8d37e62a736..c88e7131f9a 100644
Binary files a/test/image/baselines/bar_line.png and b/test/image/baselines/bar_line.png differ
diff --git a/test/image/baselines/bar_marker_array.png b/test/image/baselines/bar_marker_array.png
index 747544a2d48..f290fc1f591 100644
Binary files a/test/image/baselines/bar_marker_array.png and b/test/image/baselines/bar_marker_array.png differ
diff --git a/test/image/baselines/bar_multiline_labels.png b/test/image/baselines/bar_multiline_labels.png
index cf6aad94e2c..104562ceeff 100644
Binary files a/test/image/baselines/bar_multiline_labels.png and b/test/image/baselines/bar_multiline_labels.png differ
diff --git a/test/image/baselines/bar_nonnumeric_sizes.png b/test/image/baselines/bar_nonnumeric_sizes.png
index 6f05e329e1e..c236ace50fe 100644
Binary files a/test/image/baselines/bar_nonnumeric_sizes.png and b/test/image/baselines/bar_nonnumeric_sizes.png differ
diff --git a/test/image/baselines/bar_show_narrow.png b/test/image/baselines/bar_show_narrow.png
index ff641a371b1..1051efefca0 100644
Binary files a/test/image/baselines/bar_show_narrow.png and b/test/image/baselines/bar_show_narrow.png differ
diff --git a/test/image/baselines/bar_stack-with-gaps.png b/test/image/baselines/bar_stack-with-gaps.png
index 61540bddb7e..4eaf572e4ff 100644
Binary files a/test/image/baselines/bar_stack-with-gaps.png and b/test/image/baselines/bar_stack-with-gaps.png differ
diff --git a/test/image/baselines/bar_stackrelative_negative.png b/test/image/baselines/bar_stackrelative_negative.png
index add20b5908e..3f25ff7e29b 100644
Binary files a/test/image/baselines/bar_stackrelative_negative.png and b/test/image/baselines/bar_stackrelative_negative.png differ
diff --git a/test/image/baselines/bar_stackrelativeto100_negative.png b/test/image/baselines/bar_stackrelativeto100_negative.png
index 34f97dd0325..3fe2dce39fc 100644
Binary files a/test/image/baselines/bar_stackrelativeto100_negative.png and b/test/image/baselines/bar_stackrelativeto100_negative.png differ
diff --git a/test/image/baselines/bar_stackto1.png b/test/image/baselines/bar_stackto1.png
index 530075b3c60..b47bcdb18df 100644
Binary files a/test/image/baselines/bar_stackto1.png and b/test/image/baselines/bar_stackto1.png differ
diff --git a/test/image/baselines/bar_stackto100_negative.png b/test/image/baselines/bar_stackto100_negative.png
index a249725ac64..47b57f37a62 100644
Binary files a/test/image/baselines/bar_stackto100_negative.png and b/test/image/baselines/bar_stackto100_negative.png differ
diff --git a/test/image/baselines/bar_unhidden.png b/test/image/baselines/bar_unhidden.png
index 1c5d33a0e8b..81d090f0718 100644
Binary files a/test/image/baselines/bar_unhidden.png and b/test/image/baselines/bar_unhidden.png differ
diff --git a/test/image/baselines/basic_area.png b/test/image/baselines/basic_area.png
index f1f3a909e47..850de8e57d0 100644
Binary files a/test/image/baselines/basic_area.png and b/test/image/baselines/basic_area.png differ
diff --git a/test/image/baselines/basic_bar.png b/test/image/baselines/basic_bar.png
index f73d9bd7a35..f3a239abd04 100644
Binary files a/test/image/baselines/basic_bar.png and b/test/image/baselines/basic_bar.png differ
diff --git a/test/image/baselines/basic_error_bar.png b/test/image/baselines/basic_error_bar.png
index 9fdd47203ed..a38ac7cabc8 100644
Binary files a/test/image/baselines/basic_error_bar.png and b/test/image/baselines/basic_error_bar.png differ
diff --git a/test/image/baselines/basic_heatmap.png b/test/image/baselines/basic_heatmap.png
index 6715d951437..5a3b1450be0 100644
Binary files a/test/image/baselines/basic_heatmap.png and b/test/image/baselines/basic_heatmap.png differ
diff --git a/test/image/baselines/basic_line.png b/test/image/baselines/basic_line.png
index 67dd2909f09..bff59672abd 100644
Binary files a/test/image/baselines/basic_line.png and b/test/image/baselines/basic_line.png differ
diff --git a/test/image/baselines/benchmarks.png b/test/image/baselines/benchmarks.png
index 05c1413045d..44e2d9e869a 100644
Binary files a/test/image/baselines/benchmarks.png and b/test/image/baselines/benchmarks.png differ
diff --git a/test/image/baselines/binding.png b/test/image/baselines/binding.png
index aaef2610968..e30b9eebb5d 100644
Binary files a/test/image/baselines/binding.png and b/test/image/baselines/binding.png differ
diff --git a/test/image/baselines/blackbody_heatmap.png b/test/image/baselines/blackbody_heatmap.png
index 956f431f8a0..97a477c8d0f 100644
Binary files a/test/image/baselines/blackbody_heatmap.png and b/test/image/baselines/blackbody_heatmap.png differ
diff --git a/test/image/baselines/blank-bar-outsidetext.png b/test/image/baselines/blank-bar-outsidetext.png
index 4e30b143dad..222fc2a7a12 100644
Binary files a/test/image/baselines/blank-bar-outsidetext.png and b/test/image/baselines/blank-bar-outsidetext.png differ
diff --git a/test/image/baselines/bluered_heatmap.png b/test/image/baselines/bluered_heatmap.png
index 3b3eb50ec02..794c2d80f65 100644
Binary files a/test/image/baselines/bluered_heatmap.png and b/test/image/baselines/bluered_heatmap.png differ
diff --git a/test/image/baselines/box-alignment-offset.png b/test/image/baselines/box-alignment-offset.png
index 49531120be4..7e0cb700737 100644
Binary files a/test/image/baselines/box-alignment-offset.png and b/test/image/baselines/box-alignment-offset.png differ
diff --git a/test/image/baselines/box-violin-multicategory-on-val-axis.png b/test/image/baselines/box-violin-multicategory-on-val-axis.png
index a9791da61ea..6034395f8f8 100644
Binary files a/test/image/baselines/box-violin-multicategory-on-val-axis.png and b/test/image/baselines/box-violin-multicategory-on-val-axis.png differ
diff --git a/test/image/baselines/box-violin-x0-category-position.png b/test/image/baselines/box-violin-x0-category-position.png
index 36e4b170345..674aada673c 100644
Binary files a/test/image/baselines/box-violin-x0-category-position.png and b/test/image/baselines/box-violin-x0-category-position.png differ
diff --git a/test/image/baselines/box_grouped-multicategory.png b/test/image/baselines/box_grouped-multicategory.png
index 22605b01a07..590910b5ec7 100644
Binary files a/test/image/baselines/box_grouped-multicategory.png and b/test/image/baselines/box_grouped-multicategory.png differ
diff --git a/test/image/baselines/box_grouped.png b/test/image/baselines/box_grouped.png
index f4b042cbca3..85dc888a248 100644
Binary files a/test/image/baselines/box_grouped.png and b/test/image/baselines/box_grouped.png differ
diff --git a/test/image/baselines/box_grouped_horz.png b/test/image/baselines/box_grouped_horz.png
index 8dd083420e4..d3c07ef0049 100644
Binary files a/test/image/baselines/box_grouped_horz.png and b/test/image/baselines/box_grouped_horz.png differ
diff --git a/test/image/baselines/box_grouped_mean_descending.png b/test/image/baselines/box_grouped_mean_descending.png
index 62d34272637..fdaab098e22 100644
Binary files a/test/image/baselines/box_grouped_mean_descending.png and b/test/image/baselines/box_grouped_mean_descending.png differ
diff --git a/test/image/baselines/box_horz_notched.png b/test/image/baselines/box_horz_notched.png
index b611698da7f..c86a9cf631f 100644
Binary files a/test/image/baselines/box_horz_notched.png and b/test/image/baselines/box_horz_notched.png differ
diff --git a/test/image/baselines/box_log_scale.png b/test/image/baselines/box_log_scale.png
index c6f6995db35..b88917a468c 100644
Binary files a/test/image/baselines/box_log_scale.png and b/test/image/baselines/box_log_scale.png differ
diff --git a/test/image/baselines/box_notched-inverted-end.png b/test/image/baselines/box_notched-inverted-end.png
index 2e86923f0ca..9c57773814a 100644
Binary files a/test/image/baselines/box_notched-inverted-end.png and b/test/image/baselines/box_notched-inverted-end.png differ
diff --git a/test/image/baselines/box_notched.png b/test/image/baselines/box_notched.png
index fbb63c19c2d..5513064616b 100644
Binary files a/test/image/baselines/box_notched.png and b/test/image/baselines/box_notched.png differ
diff --git a/test/image/baselines/box_plot_jitter.png b/test/image/baselines/box_plot_jitter.png
index e292fc302f6..81ceddf8ff5 100644
Binary files a/test/image/baselines/box_plot_jitter.png and b/test/image/baselines/box_plot_jitter.png differ
diff --git a/test/image/baselines/box_plot_jitter_edge_cases.png b/test/image/baselines/box_plot_jitter_edge_cases.png
index 4467b3af805..04dc05fb424 100644
Binary files a/test/image/baselines/box_plot_jitter_edge_cases.png and b/test/image/baselines/box_plot_jitter_edge_cases.png differ
diff --git a/test/image/baselines/box_precomputed-stats.png b/test/image/baselines/box_precomputed-stats.png
index dca43f52f82..7bdede6fc39 100644
Binary files a/test/image/baselines/box_precomputed-stats.png and b/test/image/baselines/box_precomputed-stats.png differ
diff --git a/test/image/baselines/box_quartile-methods.png b/test/image/baselines/box_quartile-methods.png
index 1c9e6115b1a..7651df491fc 100644
Binary files a/test/image/baselines/box_quartile-methods.png and b/test/image/baselines/box_quartile-methods.png differ
diff --git a/test/image/baselines/box_single-group.png b/test/image/baselines/box_single-group.png
index 1c149acda8f..b6a41cb10f4 100644
Binary files a/test/image/baselines/box_single-group.png and b/test/image/baselines/box_single-group.png differ
diff --git a/test/image/baselines/box_violin_just_pts.png b/test/image/baselines/box_violin_just_pts.png
index 423da138325..3341caaedb6 100644
Binary files a/test/image/baselines/box_violin_just_pts.png and b/test/image/baselines/box_violin_just_pts.png differ
diff --git a/test/image/baselines/box_with-empty-1st-trace.png b/test/image/baselines/box_with-empty-1st-trace.png
index caf7b7f1883..cd81842d3fd 100644
Binary files a/test/image/baselines/box_with-empty-1st-trace.png and b/test/image/baselines/box_with-empty-1st-trace.png differ
diff --git a/test/image/baselines/boxplots_outliercolordflt.png b/test/image/baselines/boxplots_outliercolordflt.png
index d1955a92101..7ee8ec50c59 100644
Binary files a/test/image/baselines/boxplots_outliercolordflt.png and b/test/image/baselines/boxplots_outliercolordflt.png differ
diff --git a/test/image/baselines/boxplots_undefined_vals.png b/test/image/baselines/boxplots_undefined_vals.png
index b08fe661243..66da97ef481 100644
Binary files a/test/image/baselines/boxplots_undefined_vals.png and b/test/image/baselines/boxplots_undefined_vals.png differ
diff --git a/test/image/baselines/bubble_markersize0.png b/test/image/baselines/bubble_markersize0.png
index 7b0c62949d4..d2040b52a99 100644
Binary files a/test/image/baselines/bubble_markersize0.png and b/test/image/baselines/bubble_markersize0.png differ
diff --git a/test/image/baselines/bubble_nonnumeric-sizes.png b/test/image/baselines/bubble_nonnumeric-sizes.png
index 2520fc37ac4..5523f7fef56 100644
Binary files a/test/image/baselines/bubble_nonnumeric-sizes.png and b/test/image/baselines/bubble_nonnumeric-sizes.png differ
diff --git a/test/image/baselines/bubblechart.png b/test/image/baselines/bubblechart.png
index e32d0764bf6..96cb582a367 100644
Binary files a/test/image/baselines/bubblechart.png and b/test/image/baselines/bubblechart.png differ
diff --git a/test/image/baselines/candlestick_double-y-axis.png b/test/image/baselines/candlestick_double-y-axis.png
index 7db85e0a0c8..64c125658a2 100644
Binary files a/test/image/baselines/candlestick_double-y-axis.png and b/test/image/baselines/candlestick_double-y-axis.png differ
diff --git a/test/image/baselines/candlestick_rangeslider_thai.png b/test/image/baselines/candlestick_rangeslider_thai.png
index 901883613cd..9014dd2dbc0 100644
Binary files a/test/image/baselines/candlestick_rangeslider_thai.png and b/test/image/baselines/candlestick_rangeslider_thai.png differ
diff --git a/test/image/baselines/carpet_axis.png b/test/image/baselines/carpet_axis.png
index 33d691330b9..e5b9ca14de2 100644
Binary files a/test/image/baselines/carpet_axis.png and b/test/image/baselines/carpet_axis.png differ
diff --git a/test/image/baselines/carpet_ordering-labeling.png b/test/image/baselines/carpet_ordering-labeling.png
index d19fda41690..acd003386c1 100644
Binary files a/test/image/baselines/carpet_ordering-labeling.png and b/test/image/baselines/carpet_ordering-labeling.png differ
diff --git a/test/image/baselines/carpet_rounded-off-edgepath-gt.png b/test/image/baselines/carpet_rounded-off-edgepath-gt.png
index bac4d2655f7..b33731c97e2 100644
Binary files a/test/image/baselines/carpet_rounded-off-edgepath-gt.png and b/test/image/baselines/carpet_rounded-off-edgepath-gt.png differ
diff --git a/test/image/baselines/carpet_rounded-off-edgepath-lt.png b/test/image/baselines/carpet_rounded-off-edgepath-lt.png
index 7be8495577e..6fa5fc0609b 100644
Binary files a/test/image/baselines/carpet_rounded-off-edgepath-lt.png and b/test/image/baselines/carpet_rounded-off-edgepath-lt.png differ
diff --git a/test/image/baselines/carpet_rounded-off-edgepath.png b/test/image/baselines/carpet_rounded-off-edgepath.png
index 14b0e71d137..69699809a62 100644
Binary files a/test/image/baselines/carpet_rounded-off-edgepath.png and b/test/image/baselines/carpet_rounded-off-edgepath.png differ
diff --git a/test/image/baselines/carpet_template.png b/test/image/baselines/carpet_template.png
index 6b29319add1..369c363fc3a 100644
Binary files a/test/image/baselines/carpet_template.png and b/test/image/baselines/carpet_template.png differ
diff --git a/test/image/baselines/category-autorange.png b/test/image/baselines/category-autorange.png
index 078844e735e..2b363a156d8 100644
Binary files a/test/image/baselines/category-autorange.png and b/test/image/baselines/category-autorange.png differ
diff --git a/test/image/baselines/category_dtick_3.png b/test/image/baselines/category_dtick_3.png
index 7581a6c2dc6..d423321f316 100644
Binary files a/test/image/baselines/category_dtick_3.png and b/test/image/baselines/category_dtick_3.png differ
diff --git a/test/image/baselines/cheater.png b/test/image/baselines/cheater.png
index 74b22b32610..8f6f1ad96e2 100644
Binary files a/test/image/baselines/cheater.png and b/test/image/baselines/cheater.png differ
diff --git a/test/image/baselines/cheater_constraint_greater_than.png b/test/image/baselines/cheater_constraint_greater_than.png
index c35f2d3af9f..df7ee46beec 100644
Binary files a/test/image/baselines/cheater_constraint_greater_than.png and b/test/image/baselines/cheater_constraint_greater_than.png differ
diff --git a/test/image/baselines/cheater_constraint_greater_than_with_hill.png b/test/image/baselines/cheater_constraint_greater_than_with_hill.png
index 426283f854b..34944183804 100644
Binary files a/test/image/baselines/cheater_constraint_greater_than_with_hill.png and b/test/image/baselines/cheater_constraint_greater_than_with_hill.png differ
diff --git a/test/image/baselines/cheater_constraint_greater_than_with_valley.png b/test/image/baselines/cheater_constraint_greater_than_with_valley.png
index 7197ebbf6d7..872940f399d 100644
Binary files a/test/image/baselines/cheater_constraint_greater_than_with_valley.png and b/test/image/baselines/cheater_constraint_greater_than_with_valley.png differ
diff --git a/test/image/baselines/cheater_constraint_inner_range.png b/test/image/baselines/cheater_constraint_inner_range.png
index 573373e14f2..495813fb9ad 100644
Binary files a/test/image/baselines/cheater_constraint_inner_range.png and b/test/image/baselines/cheater_constraint_inner_range.png differ
diff --git a/test/image/baselines/cheater_constraint_inner_range_hi_top.png b/test/image/baselines/cheater_constraint_inner_range_hi_top.png
index a1f0585bf51..6952685308b 100644
Binary files a/test/image/baselines/cheater_constraint_inner_range_hi_top.png and b/test/image/baselines/cheater_constraint_inner_range_hi_top.png differ
diff --git a/test/image/baselines/cheater_constraint_inner_range_hi_top_with_hill.png b/test/image/baselines/cheater_constraint_inner_range_hi_top_with_hill.png
index 96da7d662ad..450cf5690f4 100644
Binary files a/test/image/baselines/cheater_constraint_inner_range_hi_top_with_hill.png and b/test/image/baselines/cheater_constraint_inner_range_hi_top_with_hill.png differ
diff --git a/test/image/baselines/cheater_constraint_inner_range_hi_top_with_valley.png b/test/image/baselines/cheater_constraint_inner_range_hi_top_with_valley.png
index 7fae0f999e9..c9b72abf435 100644
Binary files a/test/image/baselines/cheater_constraint_inner_range_hi_top_with_valley.png and b/test/image/baselines/cheater_constraint_inner_range_hi_top_with_valley.png differ
diff --git a/test/image/baselines/cheater_constraint_inner_range_lo_top.png b/test/image/baselines/cheater_constraint_inner_range_lo_top.png
index abca06004c2..13c4711401b 100644
Binary files a/test/image/baselines/cheater_constraint_inner_range_lo_top.png and b/test/image/baselines/cheater_constraint_inner_range_lo_top.png differ
diff --git a/test/image/baselines/cheater_constraint_inner_range_lo_top_with_hill.png b/test/image/baselines/cheater_constraint_inner_range_lo_top_with_hill.png
index b6d665a2958..ee9e1c8d35e 100644
Binary files a/test/image/baselines/cheater_constraint_inner_range_lo_top_with_hill.png and b/test/image/baselines/cheater_constraint_inner_range_lo_top_with_hill.png differ
diff --git a/test/image/baselines/cheater_constraint_inner_range_lo_top_with_valley.png b/test/image/baselines/cheater_constraint_inner_range_lo_top_with_valley.png
index c80f57624bf..3c75dd85423 100644
Binary files a/test/image/baselines/cheater_constraint_inner_range_lo_top_with_valley.png and b/test/image/baselines/cheater_constraint_inner_range_lo_top_with_valley.png differ
diff --git a/test/image/baselines/cheater_constraint_inner_range_with_hill.png b/test/image/baselines/cheater_constraint_inner_range_with_hill.png
index 1926275efdb..bb3b7dd45f7 100644
Binary files a/test/image/baselines/cheater_constraint_inner_range_with_hill.png and b/test/image/baselines/cheater_constraint_inner_range_with_hill.png differ
diff --git a/test/image/baselines/cheater_constraint_inner_range_with_valley.png b/test/image/baselines/cheater_constraint_inner_range_with_valley.png
index e624bd7d7e2..219566cf303 100644
Binary files a/test/image/baselines/cheater_constraint_inner_range_with_valley.png and b/test/image/baselines/cheater_constraint_inner_range_with_valley.png differ
diff --git a/test/image/baselines/cheater_constraint_less_than.png b/test/image/baselines/cheater_constraint_less_than.png
index 9b31ca23f71..d198f5e9005 100644
Binary files a/test/image/baselines/cheater_constraint_less_than.png and b/test/image/baselines/cheater_constraint_less_than.png differ
diff --git a/test/image/baselines/cheater_constraint_less_than_with_hill.png b/test/image/baselines/cheater_constraint_less_than_with_hill.png
index d132642f1be..1bbcf00d72a 100644
Binary files a/test/image/baselines/cheater_constraint_less_than_with_hill.png and b/test/image/baselines/cheater_constraint_less_than_with_hill.png differ
diff --git a/test/image/baselines/cheater_constraint_less_than_with_valley.png b/test/image/baselines/cheater_constraint_less_than_with_valley.png
index 40cf9f3d0d3..7547ae32d00 100644
Binary files a/test/image/baselines/cheater_constraint_less_than_with_valley.png and b/test/image/baselines/cheater_constraint_less_than_with_valley.png differ
diff --git a/test/image/baselines/cheater_constraint_outer_range.png b/test/image/baselines/cheater_constraint_outer_range.png
index 8228721ad09..633aadcbc06 100644
Binary files a/test/image/baselines/cheater_constraint_outer_range.png and b/test/image/baselines/cheater_constraint_outer_range.png differ
diff --git a/test/image/baselines/cheater_constraint_outer_range_hi_top.png b/test/image/baselines/cheater_constraint_outer_range_hi_top.png
index f6128c23f82..b4c8b8eefa3 100644
Binary files a/test/image/baselines/cheater_constraint_outer_range_hi_top.png and b/test/image/baselines/cheater_constraint_outer_range_hi_top.png differ
diff --git a/test/image/baselines/cheater_constraint_outer_range_hi_top_with_hill.png b/test/image/baselines/cheater_constraint_outer_range_hi_top_with_hill.png
index 3724a980642..6149d317b6e 100644
Binary files a/test/image/baselines/cheater_constraint_outer_range_hi_top_with_hill.png and b/test/image/baselines/cheater_constraint_outer_range_hi_top_with_hill.png differ
diff --git a/test/image/baselines/cheater_constraint_outer_range_hi_top_with_valley.png b/test/image/baselines/cheater_constraint_outer_range_hi_top_with_valley.png
index 7bf09f33105..609500429be 100644
Binary files a/test/image/baselines/cheater_constraint_outer_range_hi_top_with_valley.png and b/test/image/baselines/cheater_constraint_outer_range_hi_top_with_valley.png differ
diff --git a/test/image/baselines/cheater_constraint_outer_range_lo_top.png b/test/image/baselines/cheater_constraint_outer_range_lo_top.png
index bf4c3606f71..b8c014ab910 100644
Binary files a/test/image/baselines/cheater_constraint_outer_range_lo_top.png and b/test/image/baselines/cheater_constraint_outer_range_lo_top.png differ
diff --git a/test/image/baselines/cheater_constraint_outer_range_lo_top_with_hill.png b/test/image/baselines/cheater_constraint_outer_range_lo_top_with_hill.png
index abb7b06a329..676f7bf8da8 100644
Binary files a/test/image/baselines/cheater_constraint_outer_range_lo_top_with_hill.png and b/test/image/baselines/cheater_constraint_outer_range_lo_top_with_hill.png differ
diff --git a/test/image/baselines/cheater_constraint_outer_range_lo_top_with_valley.png b/test/image/baselines/cheater_constraint_outer_range_lo_top_with_valley.png
index 82d6acc63da..7b0dabc3a74 100644
Binary files a/test/image/baselines/cheater_constraint_outer_range_lo_top_with_valley.png and b/test/image/baselines/cheater_constraint_outer_range_lo_top_with_valley.png differ
diff --git a/test/image/baselines/cheater_constraint_outer_range_with_hill.png b/test/image/baselines/cheater_constraint_outer_range_with_hill.png
index 0d7d02f440b..05834eaf5c5 100644
Binary files a/test/image/baselines/cheater_constraint_outer_range_with_hill.png and b/test/image/baselines/cheater_constraint_outer_range_with_hill.png differ
diff --git a/test/image/baselines/cheater_constraint_outer_range_with_valley.png b/test/image/baselines/cheater_constraint_outer_range_with_valley.png
index 25c5cce2b94..b608965562d 100644
Binary files a/test/image/baselines/cheater_constraint_outer_range_with_valley.png and b/test/image/baselines/cheater_constraint_outer_range_with_valley.png differ
diff --git a/test/image/baselines/cheater_constraints.png b/test/image/baselines/cheater_constraints.png
index 5a105d4fb53..594356ad918 100644
Binary files a/test/image/baselines/cheater_constraints.png and b/test/image/baselines/cheater_constraints.png differ
diff --git a/test/image/baselines/cheater_contour.png b/test/image/baselines/cheater_contour.png
index b8581160880..35797b708a4 100644
Binary files a/test/image/baselines/cheater_contour.png and b/test/image/baselines/cheater_contour.png differ
diff --git a/test/image/baselines/cheater_fully_filled.png b/test/image/baselines/cheater_fully_filled.png
index fcb32c3ed8e..36827c2eb31 100644
Binary files a/test/image/baselines/cheater_fully_filled.png and b/test/image/baselines/cheater_fully_filled.png differ
diff --git a/test/image/baselines/cheater_smooth.png b/test/image/baselines/cheater_smooth.png
index bac7ff8e2ea..09f4564634d 100644
Binary files a/test/image/baselines/cheater_smooth.png and b/test/image/baselines/cheater_smooth.png differ
diff --git a/test/image/baselines/cheaterslope.png b/test/image/baselines/cheaterslope.png
index 5f71f40f1d8..7a9126bf5fd 100644
Binary files a/test/image/baselines/cheaterslope.png and b/test/image/baselines/cheaterslope.png differ
diff --git a/test/image/baselines/cheaterslope_noticklabels.png b/test/image/baselines/cheaterslope_noticklabels.png
index 267ba49038d..792a8f97517 100644
Binary files a/test/image/baselines/cheaterslope_noticklabels.png and b/test/image/baselines/cheaterslope_noticklabels.png differ
diff --git a/test/image/baselines/cividis_heatmap.png b/test/image/baselines/cividis_heatmap.png
index e1f614a66b3..435c98cd5ae 100644
Binary files a/test/image/baselines/cividis_heatmap.png and b/test/image/baselines/cividis_heatmap.png differ
diff --git a/test/image/baselines/cliponaxis_false-dates-log.png b/test/image/baselines/cliponaxis_false-dates-log.png
index 8caaed79b08..bd6ab338358 100644
Binary files a/test/image/baselines/cliponaxis_false-dates-log.png and b/test/image/baselines/cliponaxis_false-dates-log.png differ
diff --git a/test/image/baselines/cliponaxis_false.png b/test/image/baselines/cliponaxis_false.png
index 3e3303d357f..f7cb04c4f5b 100644
Binary files a/test/image/baselines/cliponaxis_false.png and b/test/image/baselines/cliponaxis_false.png differ
diff --git a/test/image/baselines/cmid-zmid.png b/test/image/baselines/cmid-zmid.png
index 1e8122e785e..18c3d58bf66 100644
Binary files a/test/image/baselines/cmid-zmid.png and b/test/image/baselines/cmid-zmid.png differ
diff --git a/test/image/baselines/colorbar_enumerated_ticks.png b/test/image/baselines/colorbar_enumerated_ticks.png
index cc1c34ff699..bfe4d35e90a 100644
Binary files a/test/image/baselines/colorbar_enumerated_ticks.png and b/test/image/baselines/colorbar_enumerated_ticks.png differ
diff --git a/test/image/baselines/colorbar_tick_prefix_suffix.png b/test/image/baselines/colorbar_tick_prefix_suffix.png
index 3730b31eb65..bb90ed014c3 100644
Binary files a/test/image/baselines/colorbar_tick_prefix_suffix.png and b/test/image/baselines/colorbar_tick_prefix_suffix.png differ
diff --git a/test/image/baselines/colorbar_tickformat.png b/test/image/baselines/colorbar_tickformat.png
index 483e107bb52..a10a26ad90d 100644
Binary files a/test/image/baselines/colorbar_tickformat.png and b/test/image/baselines/colorbar_tickformat.png differ
diff --git a/test/image/baselines/colorscale_constraint.png b/test/image/baselines/colorscale_constraint.png
index 01de99f5309..5e82c2a239a 100644
Binary files a/test/image/baselines/colorscale_constraint.png and b/test/image/baselines/colorscale_constraint.png differ
diff --git a/test/image/baselines/colorscale_opacity.png b/test/image/baselines/colorscale_opacity.png
index bc300734de0..c83fac98f0d 100644
Binary files a/test/image/baselines/colorscale_opacity.png and b/test/image/baselines/colorscale_opacity.png differ
diff --git a/test/image/baselines/colorscale_template.png b/test/image/baselines/colorscale_template.png
index be36c46dba0..963a76a78bf 100644
Binary files a/test/image/baselines/colorscale_template.png and b/test/image/baselines/colorscale_template.png differ
diff --git a/test/image/baselines/connectgaps_2d.png b/test/image/baselines/connectgaps_2d.png
index 99438b3d0ff..28bdec42598 100644
Binary files a/test/image/baselines/connectgaps_2d.png and b/test/image/baselines/connectgaps_2d.png differ
diff --git a/test/image/baselines/contour-heatmap-coloring-set-contours.png b/test/image/baselines/contour-heatmap-coloring-set-contours.png
index 87392c7839e..3faf7d43526 100644
Binary files a/test/image/baselines/contour-heatmap-coloring-set-contours.png and b/test/image/baselines/contour-heatmap-coloring-set-contours.png differ
diff --git a/test/image/baselines/contour_constraints.png b/test/image/baselines/contour_constraints.png
index d921e3d4385..40f3984ccf7 100644
Binary files a/test/image/baselines/contour_constraints.png and b/test/image/baselines/contour_constraints.png differ
diff --git a/test/image/baselines/contour_constraints_edge_cases.png b/test/image/baselines/contour_constraints_edge_cases.png
index c85b29bba1f..d029824c5e8 100644
Binary files a/test/image/baselines/contour_constraints_edge_cases.png and b/test/image/baselines/contour_constraints_edge_cases.png differ
diff --git a/test/image/baselines/contour_constraints_equal_boundary_minmax.png b/test/image/baselines/contour_constraints_equal_boundary_minmax.png
index d76c3213940..f78d9d74131 100644
Binary files a/test/image/baselines/contour_constraints_equal_boundary_minmax.png and b/test/image/baselines/contour_constraints_equal_boundary_minmax.png differ
diff --git a/test/image/baselines/contour_doublemerge.png b/test/image/baselines/contour_doublemerge.png
index c86bc77bde6..8c94ffae8fa 100644
Binary files a/test/image/baselines/contour_doublemerge.png and b/test/image/baselines/contour_doublemerge.png differ
diff --git a/test/image/baselines/contour_edge_cases.png b/test/image/baselines/contour_edge_cases.png
index b4d3425f9c6..f795ca2c803 100644
Binary files a/test/image/baselines/contour_edge_cases.png and b/test/image/baselines/contour_edge_cases.png differ
diff --git a/test/image/baselines/contour_heatmap_coloring.png b/test/image/baselines/contour_heatmap_coloring.png
index a259c8fb887..41c229a4cad 100644
Binary files a/test/image/baselines/contour_heatmap_coloring.png and b/test/image/baselines/contour_heatmap_coloring.png differ
diff --git a/test/image/baselines/contour_heatmap_coloring_reversescale.png b/test/image/baselines/contour_heatmap_coloring_reversescale.png
index ed15c6afc53..7ac1ae07d8c 100644
Binary files a/test/image/baselines/contour_heatmap_coloring_reversescale.png and b/test/image/baselines/contour_heatmap_coloring_reversescale.png differ
diff --git a/test/image/baselines/contour_label-font-size.png b/test/image/baselines/contour_label-font-size.png
index 38f9d68a28d..40808b3edbc 100644
Binary files a/test/image/baselines/contour_label-font-size.png and b/test/image/baselines/contour_label-font-size.png differ
diff --git a/test/image/baselines/contour_label-formatting-via-colorbar.png b/test/image/baselines/contour_label-formatting-via-colorbar.png
index 9e45af1c48a..8711a66fa01 100644
Binary files a/test/image/baselines/contour_label-formatting-via-colorbar.png and b/test/image/baselines/contour_label-formatting-via-colorbar.png differ
diff --git a/test/image/baselines/contour_label-reversed-axes.png b/test/image/baselines/contour_label-reversed-axes.png
index 57f56d2affa..acaf039d097 100644
Binary files a/test/image/baselines/contour_label-reversed-axes.png and b/test/image/baselines/contour_label-reversed-axes.png differ
diff --git a/test/image/baselines/contour_label-reversed-xy.png b/test/image/baselines/contour_label-reversed-xy.png
index 92baaa3b7b2..44833462949 100644
Binary files a/test/image/baselines/contour_label-reversed-xy.png and b/test/image/baselines/contour_label-reversed-xy.png differ
diff --git a/test/image/baselines/contour_label-thousands-suffix.png b/test/image/baselines/contour_label-thousands-suffix.png
index c764dd458c5..57095db3fe4 100644
Binary files a/test/image/baselines/contour_label-thousands-suffix.png and b/test/image/baselines/contour_label-thousands-suffix.png differ
diff --git a/test/image/baselines/contour_legend-coloraxis.png b/test/image/baselines/contour_legend-coloraxis.png
index 04e5e38d97d..4a2d25c2a6a 100644
Binary files a/test/image/baselines/contour_legend-coloraxis.png and b/test/image/baselines/contour_legend-coloraxis.png differ
diff --git a/test/image/baselines/contour_legend-colorscale.png b/test/image/baselines/contour_legend-colorscale.png
index 1e658a24951..c5d327e7c8d 100644
Binary files a/test/image/baselines/contour_legend-colorscale.png and b/test/image/baselines/contour_legend-colorscale.png differ
diff --git a/test/image/baselines/contour_legend.png b/test/image/baselines/contour_legend.png
index 1c0973e4313..4f1185ab7a7 100644
Binary files a/test/image/baselines/contour_legend.png and b/test/image/baselines/contour_legend.png differ
diff --git a/test/image/baselines/contour_lines_coloring.png b/test/image/baselines/contour_lines_coloring.png
index 7201cb2cac3..e39ad45508b 100644
Binary files a/test/image/baselines/contour_lines_coloring.png and b/test/image/baselines/contour_lines_coloring.png differ
diff --git a/test/image/baselines/contour_log.png b/test/image/baselines/contour_log.png
index e5cb2e20147..8508a6bd7a5 100644
Binary files a/test/image/baselines/contour_log.png and b/test/image/baselines/contour_log.png differ
diff --git a/test/image/baselines/contour_match_edges.png b/test/image/baselines/contour_match_edges.png
index 3f965e83545..b1f09ff50d3 100644
Binary files a/test/image/baselines/contour_match_edges.png and b/test/image/baselines/contour_match_edges.png differ
diff --git a/test/image/baselines/contour_nolines.png b/test/image/baselines/contour_nolines.png
index 4dafc470d15..4dc0d43d79a 100644
Binary files a/test/image/baselines/contour_nolines.png and b/test/image/baselines/contour_nolines.png differ
diff --git a/test/image/baselines/contour_scatter.png b/test/image/baselines/contour_scatter.png
index d6e5d0a84f5..f3a753834d8 100644
Binary files a/test/image/baselines/contour_scatter.png and b/test/image/baselines/contour_scatter.png differ
diff --git a/test/image/baselines/contour_transposed-irregular.png b/test/image/baselines/contour_transposed-irregular.png
index f1be5145665..a12900b9028 100644
Binary files a/test/image/baselines/contour_transposed-irregular.png and b/test/image/baselines/contour_transposed-irregular.png differ
diff --git a/test/image/baselines/contour_transposed.png b/test/image/baselines/contour_transposed.png
index 7c661234040..643b12cf919 100644
Binary files a/test/image/baselines/contour_transposed.png and b/test/image/baselines/contour_transposed.png differ
diff --git a/test/image/baselines/contour_valid_ses.png b/test/image/baselines/contour_valid_ses.png
index 8705296ab22..839cddf381d 100644
Binary files a/test/image/baselines/contour_valid_ses.png and b/test/image/baselines/contour_valid_ses.png differ
diff --git a/test/image/baselines/contour_xyz-gaps-on-sides.png b/test/image/baselines/contour_xyz-gaps-on-sides.png
index 9b1404bfa1d..69bd93bc06b 100644
Binary files a/test/image/baselines/contour_xyz-gaps-on-sides.png and b/test/image/baselines/contour_xyz-gaps-on-sides.png differ
diff --git a/test/image/baselines/custom_colorscale.png b/test/image/baselines/custom_colorscale.png
index dd011ec425a..1665d06e0a1 100644
Binary files a/test/image/baselines/custom_colorscale.png and b/test/image/baselines/custom_colorscale.png differ
diff --git a/test/image/baselines/custom_size_subplot.png b/test/image/baselines/custom_size_subplot.png
index 05d7a2d7786..32d3f4f3d7f 100644
Binary files a/test/image/baselines/custom_size_subplot.png and b/test/image/baselines/custom_size_subplot.png differ
diff --git a/test/image/baselines/date_axes.png b/test/image/baselines/date_axes.png
index d7914ff7f58..cc9cfb2ba15 100644
Binary files a/test/image/baselines/date_axes.png and b/test/image/baselines/date_axes.png differ
diff --git a/test/image/baselines/date_axes_period.png b/test/image/baselines/date_axes_period.png
index c335091cbec..aa710b7cf3f 100644
Binary files a/test/image/baselines/date_axes_period.png and b/test/image/baselines/date_axes_period.png differ
diff --git a/test/image/baselines/date_axes_period2.png b/test/image/baselines/date_axes_period2.png
index 808786263fe..2265edae798 100644
Binary files a/test/image/baselines/date_axes_period2.png and b/test/image/baselines/date_axes_period2.png differ
diff --git a/test/image/baselines/date_axes_period_breaks_automargin.png b/test/image/baselines/date_axes_period_breaks_automargin.png
index 2b7679051da..da265249411 100644
Binary files a/test/image/baselines/date_axes_period_breaks_automargin.png and b/test/image/baselines/date_axes_period_breaks_automargin.png differ
diff --git a/test/image/baselines/date_axes_side_top.png b/test/image/baselines/date_axes_side_top.png
index 64d62d37dd6..215bf5f63f7 100644
Binary files a/test/image/baselines/date_axes_side_top.png and b/test/image/baselines/date_axes_side_top.png differ
diff --git a/test/image/baselines/date_histogram.png b/test/image/baselines/date_histogram.png
index ece7dafef78..c9b86627a2a 100644
Binary files a/test/image/baselines/date_histogram.png and b/test/image/baselines/date_histogram.png differ
diff --git a/test/image/baselines/dendrogram.png b/test/image/baselines/dendrogram.png
index 5de973ec15f..001f60da080 100644
Binary files a/test/image/baselines/dendrogram.png and b/test/image/baselines/dendrogram.png differ
diff --git a/test/image/baselines/display-text_zero-number.png b/test/image/baselines/display-text_zero-number.png
index eb6677de9c8..508ca937acd 100644
Binary files a/test/image/baselines/display-text_zero-number.png and b/test/image/baselines/display-text_zero-number.png differ
diff --git a/test/image/baselines/domain_ref_axis_types.png b/test/image/baselines/domain_ref_axis_types.png
index 88a884fe3ea..6c5fffe674f 100644
Binary files a/test/image/baselines/domain_ref_axis_types.png and b/test/image/baselines/domain_ref_axis_types.png differ
diff --git a/test/image/baselines/domain_refs.png b/test/image/baselines/domain_refs.png
index 7347652f223..431d251c23c 100644
Binary files a/test/image/baselines/domain_refs.png and b/test/image/baselines/domain_refs.png differ
diff --git a/test/image/baselines/earth_heatmap.png b/test/image/baselines/earth_heatmap.png
index 49c0e725aea..918a34a70e2 100644
Binary files a/test/image/baselines/earth_heatmap.png and b/test/image/baselines/earth_heatmap.png differ
diff --git a/test/image/baselines/electric_heatmap.png b/test/image/baselines/electric_heatmap.png
index f3fb2c3a8a2..b7c88cda46b 100644
Binary files a/test/image/baselines/electric_heatmap.png and b/test/image/baselines/electric_heatmap.png differ
diff --git a/test/image/baselines/empty.png b/test/image/baselines/empty.png
index d8494d3b276..658ea6e9403 100644
Binary files a/test/image/baselines/empty.png and b/test/image/baselines/empty.png differ
diff --git a/test/image/baselines/error_bar_asymmetric_array.png b/test/image/baselines/error_bar_asymmetric_array.png
index 4360c77477e..cf4880f406a 100644
Binary files a/test/image/baselines/error_bar_asymmetric_array.png and b/test/image/baselines/error_bar_asymmetric_array.png differ
diff --git a/test/image/baselines/error_bar_asymmetric_constant.png b/test/image/baselines/error_bar_asymmetric_constant.png
index fbb154d68c3..da5b9f1133e 100644
Binary files a/test/image/baselines/error_bar_asymmetric_constant.png and b/test/image/baselines/error_bar_asymmetric_constant.png differ
diff --git a/test/image/baselines/error_bar_bar.png b/test/image/baselines/error_bar_bar.png
index 7655d5087a4..c59e5f41244 100644
Binary files a/test/image/baselines/error_bar_bar.png and b/test/image/baselines/error_bar_bar.png differ
diff --git a/test/image/baselines/error_bar_bar_ids.png b/test/image/baselines/error_bar_bar_ids.png
index 19fc0644359..9aa07d0e961 100644
Binary files a/test/image/baselines/error_bar_bar_ids.png and b/test/image/baselines/error_bar_bar_ids.png differ
diff --git a/test/image/baselines/error_bar_horizontal.png b/test/image/baselines/error_bar_horizontal.png
index 5511468b400..37bb3e148f3 100644
Binary files a/test/image/baselines/error_bar_horizontal.png and b/test/image/baselines/error_bar_horizontal.png differ
diff --git a/test/image/baselines/error_bar_layers.png b/test/image/baselines/error_bar_layers.png
index 26fb35e986d..d2bc460bd6c 100644
Binary files a/test/image/baselines/error_bar_layers.png and b/test/image/baselines/error_bar_layers.png differ
diff --git a/test/image/baselines/error_bar_sqrt.png b/test/image/baselines/error_bar_sqrt.png
index 81914bca512..16d49afd5aa 100644
Binary files a/test/image/baselines/error_bar_sqrt.png and b/test/image/baselines/error_bar_sqrt.png differ
diff --git a/test/image/baselines/error_bar_style.png b/test/image/baselines/error_bar_style.png
index 103ca2d053f..93cf22957bf 100644
Binary files a/test/image/baselines/error_bar_style.png and b/test/image/baselines/error_bar_style.png differ
diff --git a/test/image/baselines/fake_violins.png b/test/image/baselines/fake_violins.png
index acd2d779889..24fa989bf04 100644
Binary files a/test/image/baselines/fake_violins.png and b/test/image/baselines/fake_violins.png differ
diff --git a/test/image/baselines/finance_multicategory.png b/test/image/baselines/finance_multicategory.png
index c17e4282440..0085a067f0f 100644
Binary files a/test/image/baselines/finance_multicategory.png and b/test/image/baselines/finance_multicategory.png differ
diff --git a/test/image/baselines/finance_style.png b/test/image/baselines/finance_style.png
index a969a040c7e..75d916e7171 100644
Binary files a/test/image/baselines/finance_style.png and b/test/image/baselines/finance_style.png differ
diff --git a/test/image/baselines/finance_subplots_categories.png b/test/image/baselines/finance_subplots_categories.png
index 0d682eb9e86..07046ceff93 100644
Binary files a/test/image/baselines/finance_subplots_categories.png and b/test/image/baselines/finance_subplots_categories.png differ
diff --git a/test/image/baselines/font-wishlist.png b/test/image/baselines/font-wishlist.png
index f1cb471a1d3..774042c19a6 100644
Binary files a/test/image/baselines/font-wishlist.png and b/test/image/baselines/font-wishlist.png differ
diff --git a/test/image/baselines/fonts.png b/test/image/baselines/fonts.png
index 8e802dd4ea9..476e93f6f8a 100644
Binary files a/test/image/baselines/fonts.png and b/test/image/baselines/fonts.png differ
diff --git a/test/image/baselines/funnel-grouping-vs-defaults.png b/test/image/baselines/funnel-grouping-vs-defaults.png
index d61c404c113..f899f88703b 100644
Binary files a/test/image/baselines/funnel-grouping-vs-defaults.png and b/test/image/baselines/funnel-grouping-vs-defaults.png differ
diff --git a/test/image/baselines/funnel-offsetgroups.png b/test/image/baselines/funnel-offsetgroups.png
index 6cee5c5747f..8dcba4d48b9 100644
Binary files a/test/image/baselines/funnel-offsetgroups.png and b/test/image/baselines/funnel-offsetgroups.png differ
diff --git a/test/image/baselines/funnel_11.png b/test/image/baselines/funnel_11.png
index 03772977a9c..1ad5ba6bbf9 100644
Binary files a/test/image/baselines/funnel_11.png and b/test/image/baselines/funnel_11.png differ
diff --git a/test/image/baselines/funnel_attrs.png b/test/image/baselines/funnel_attrs.png
index c3295808db0..7d951f1f448 100644
Binary files a/test/image/baselines/funnel_attrs.png and b/test/image/baselines/funnel_attrs.png differ
diff --git a/test/image/baselines/funnel_axis.png b/test/image/baselines/funnel_axis.png
index 5605cbdec31..728281eccea 100644
Binary files a/test/image/baselines/funnel_axis.png and b/test/image/baselines/funnel_axis.png differ
diff --git a/test/image/baselines/funnel_axis_textangle.png b/test/image/baselines/funnel_axis_textangle.png
index cb57ec44c4c..18bfe11222f 100644
Binary files a/test/image/baselines/funnel_axis_textangle.png and b/test/image/baselines/funnel_axis_textangle.png differ
diff --git a/test/image/baselines/funnel_axis_textangle_outside.png b/test/image/baselines/funnel_axis_textangle_outside.png
index 6d9a57dc303..1d4c0362d47 100644
Binary files a/test/image/baselines/funnel_axis_textangle_outside.png and b/test/image/baselines/funnel_axis_textangle_outside.png differ
diff --git a/test/image/baselines/funnel_axis_textangle_start-end.png b/test/image/baselines/funnel_axis_textangle_start-end.png
index 7558561ad50..bd422a96bcc 100644
Binary files a/test/image/baselines/funnel_axis_textangle_start-end.png and b/test/image/baselines/funnel_axis_textangle_start-end.png differ
diff --git a/test/image/baselines/funnel_axis_with_other_traces.png b/test/image/baselines/funnel_axis_with_other_traces.png
index 363190083c3..72a00cc4660 100644
Binary files a/test/image/baselines/funnel_axis_with_other_traces.png and b/test/image/baselines/funnel_axis_with_other_traces.png differ
diff --git a/test/image/baselines/funnel_cliponaxis-false.png b/test/image/baselines/funnel_cliponaxis-false.png
index 573a250e715..73350d6a63f 100644
Binary files a/test/image/baselines/funnel_cliponaxis-false.png and b/test/image/baselines/funnel_cliponaxis-false.png differ
diff --git a/test/image/baselines/funnel_custom.png b/test/image/baselines/funnel_custom.png
index 912c369cb4c..f8f476bfb82 100644
Binary files a/test/image/baselines/funnel_custom.png and b/test/image/baselines/funnel_custom.png differ
diff --git a/test/image/baselines/funnel_date-axes.png b/test/image/baselines/funnel_date-axes.png
index bd241b76168..263f8ec4001 100644
Binary files a/test/image/baselines/funnel_date-axes.png and b/test/image/baselines/funnel_date-axes.png differ
diff --git a/test/image/baselines/funnel_gap0.png b/test/image/baselines/funnel_gap0.png
index ffef94bd356..6d82d2a66e6 100644
Binary files a/test/image/baselines/funnel_gap0.png and b/test/image/baselines/funnel_gap0.png differ
diff --git a/test/image/baselines/funnel_horizontal_group_basic.png b/test/image/baselines/funnel_horizontal_group_basic.png
index 59fa1b808a2..d0ac640d616 100644
Binary files a/test/image/baselines/funnel_horizontal_group_basic.png and b/test/image/baselines/funnel_horizontal_group_basic.png differ
diff --git a/test/image/baselines/funnel_horizontal_stack_basic.png b/test/image/baselines/funnel_horizontal_stack_basic.png
index a964f16b2dd..8b854c3a7e0 100644
Binary files a/test/image/baselines/funnel_horizontal_stack_basic.png and b/test/image/baselines/funnel_horizontal_stack_basic.png differ
diff --git a/test/image/baselines/funnel_horizontal_stack_more.png b/test/image/baselines/funnel_horizontal_stack_more.png
index 299530ee929..f58a06883e1 100644
Binary files a/test/image/baselines/funnel_horizontal_stack_more.png and b/test/image/baselines/funnel_horizontal_stack_more.png differ
diff --git a/test/image/baselines/funnel_multicategory.png b/test/image/baselines/funnel_multicategory.png
index 3bb854f7959..e9bc1ab0cbb 100644
Binary files a/test/image/baselines/funnel_multicategory.png and b/test/image/baselines/funnel_multicategory.png differ
diff --git a/test/image/baselines/funnel_nonnumeric_sizes.png b/test/image/baselines/funnel_nonnumeric_sizes.png
index d3af58fcbc4..ab50b6b3c10 100644
Binary files a/test/image/baselines/funnel_nonnumeric_sizes.png and b/test/image/baselines/funnel_nonnumeric_sizes.png differ
diff --git a/test/image/baselines/funnel_vertical_overlay_custom_arrays.png b/test/image/baselines/funnel_vertical_overlay_custom_arrays.png
index 982db8a7259..7ccc1a8adea 100644
Binary files a/test/image/baselines/funnel_vertical_overlay_custom_arrays.png and b/test/image/baselines/funnel_vertical_overlay_custom_arrays.png differ
diff --git a/test/image/baselines/funnelarea_aggregated.png b/test/image/baselines/funnelarea_aggregated.png
index 17700dd9f46..6050f91de56 100644
Binary files a/test/image/baselines/funnelarea_aggregated.png and b/test/image/baselines/funnelarea_aggregated.png differ
diff --git a/test/image/baselines/funnelarea_fonts.png b/test/image/baselines/funnelarea_fonts.png
index 5837993111b..6188febbb2b 100644
Binary files a/test/image/baselines/funnelarea_fonts.png and b/test/image/baselines/funnelarea_fonts.png differ
diff --git a/test/image/baselines/funnelarea_label0_dlabel.png b/test/image/baselines/funnelarea_label0_dlabel.png
index 5f7b5bd3f76..ba6ce97d98f 100644
Binary files a/test/image/baselines/funnelarea_label0_dlabel.png and b/test/image/baselines/funnelarea_label0_dlabel.png differ
diff --git a/test/image/baselines/funnelarea_labels_colors_text.png b/test/image/baselines/funnelarea_labels_colors_text.png
index eed4f89dc51..d1e2d5e8116 100644
Binary files a/test/image/baselines/funnelarea_labels_colors_text.png and b/test/image/baselines/funnelarea_labels_colors_text.png differ
diff --git a/test/image/baselines/funnelarea_line_width.png b/test/image/baselines/funnelarea_line_width.png
index 817e8db6507..2ced9af0203 100644
Binary files a/test/image/baselines/funnelarea_line_width.png and b/test/image/baselines/funnelarea_line_width.png differ
diff --git a/test/image/baselines/funnelarea_no_scalegroup_various_domain.png b/test/image/baselines/funnelarea_no_scalegroup_various_domain.png
index e92deb938c0..55a38d7a2df 100644
Binary files a/test/image/baselines/funnelarea_no_scalegroup_various_domain.png and b/test/image/baselines/funnelarea_no_scalegroup_various_domain.png differ
diff --git a/test/image/baselines/funnelarea_no_scalegroup_various_ratios.png b/test/image/baselines/funnelarea_no_scalegroup_various_ratios.png
index 4da55b0616f..a02690673bb 100644
Binary files a/test/image/baselines/funnelarea_no_scalegroup_various_ratios.png and b/test/image/baselines/funnelarea_no_scalegroup_various_ratios.png differ
diff --git a/test/image/baselines/funnelarea_no_scalegroup_various_ratios_and_domain.png b/test/image/baselines/funnelarea_no_scalegroup_various_ratios_and_domain.png
index 976067ae338..19e42718388 100644
Binary files a/test/image/baselines/funnelarea_no_scalegroup_various_ratios_and_domain.png and b/test/image/baselines/funnelarea_no_scalegroup_various_ratios_and_domain.png differ
diff --git a/test/image/baselines/funnelarea_pie_colorways.png b/test/image/baselines/funnelarea_pie_colorways.png
index 887c40857ca..af9ed182b45 100644
Binary files a/test/image/baselines/funnelarea_pie_colorways.png and b/test/image/baselines/funnelarea_pie_colorways.png differ
diff --git a/test/image/baselines/funnelarea_scalegroup_two.png b/test/image/baselines/funnelarea_scalegroup_two.png
index ffc15add2a4..92dba7ae119 100644
Binary files a/test/image/baselines/funnelarea_scalegroup_two.png and b/test/image/baselines/funnelarea_scalegroup_two.png differ
diff --git a/test/image/baselines/funnelarea_scalegroup_various_ratios.png b/test/image/baselines/funnelarea_scalegroup_various_ratios.png
index 01e70d18c84..b6e41291177 100644
Binary files a/test/image/baselines/funnelarea_scalegroup_various_ratios.png and b/test/image/baselines/funnelarea_scalegroup_various_ratios.png differ
diff --git a/test/image/baselines/funnelarea_scalegroup_various_ratios_and_domain.png b/test/image/baselines/funnelarea_scalegroup_various_ratios_and_domain.png
index b696ba6e5ff..878d6b0876e 100644
Binary files a/test/image/baselines/funnelarea_scalegroup_various_ratios_and_domain.png and b/test/image/baselines/funnelarea_scalegroup_various_ratios_and_domain.png differ
diff --git a/test/image/baselines/funnelarea_simple.png b/test/image/baselines/funnelarea_simple.png
index 97dbfef4f91..9a1259b494f 100644
Binary files a/test/image/baselines/funnelarea_simple.png and b/test/image/baselines/funnelarea_simple.png differ
diff --git a/test/image/baselines/funnelarea_style.png b/test/image/baselines/funnelarea_style.png
index f8304da905f..8a76900a9a0 100644
Binary files a/test/image/baselines/funnelarea_style.png and b/test/image/baselines/funnelarea_style.png differ
diff --git a/test/image/baselines/funnelarea_title_multiple.png b/test/image/baselines/funnelarea_title_multiple.png
index 20834fca5a1..d74edcd62d0 100644
Binary files a/test/image/baselines/funnelarea_title_multiple.png and b/test/image/baselines/funnelarea_title_multiple.png differ
diff --git a/test/image/baselines/funnelarea_with_other_traces.png b/test/image/baselines/funnelarea_with_other_traces.png
index 45a7bb56961..bc31835ca3d 100644
Binary files a/test/image/baselines/funnelarea_with_other_traces.png and b/test/image/baselines/funnelarea_with_other_traces.png differ
diff --git a/test/image/baselines/geo_across-antimeridian.png b/test/image/baselines/geo_across-antimeridian.png
index 8585923ff4f..c805f0723e2 100644
Binary files a/test/image/baselines/geo_across-antimeridian.png and b/test/image/baselines/geo_across-antimeridian.png differ
diff --git a/test/image/baselines/geo_africa-insets.png b/test/image/baselines/geo_africa-insets.png
index 8a25779b702..a2cbb898f9c 100644
Binary files a/test/image/baselines/geo_africa-insets.png and b/test/image/baselines/geo_africa-insets.png differ
diff --git a/test/image/baselines/geo_aitoff-sinusoidal.png b/test/image/baselines/geo_aitoff-sinusoidal.png
index 3795890a9bc..05c418fd674 100644
Binary files a/test/image/baselines/geo_aitoff-sinusoidal.png and b/test/image/baselines/geo_aitoff-sinusoidal.png differ
diff --git a/test/image/baselines/geo_bg-color.png b/test/image/baselines/geo_bg-color.png
index 24879bfe868..6ff22e2f38b 100644
Binary files a/test/image/baselines/geo_bg-color.png and b/test/image/baselines/geo_bg-color.png differ
diff --git a/test/image/baselines/geo_big-frame.png b/test/image/baselines/geo_big-frame.png
index 841380a025a..4caa8fb532d 100644
Binary files a/test/image/baselines/geo_big-frame.png and b/test/image/baselines/geo_big-frame.png differ
diff --git a/test/image/baselines/geo_bubbles-colorscales.png b/test/image/baselines/geo_bubbles-colorscales.png
index 6d033fc33be..329cf6f9f8d 100644
Binary files a/test/image/baselines/geo_bubbles-colorscales.png and b/test/image/baselines/geo_bubbles-colorscales.png differ
diff --git a/test/image/baselines/geo_bubbles-sizeref.png b/test/image/baselines/geo_bubbles-sizeref.png
index cd82b00a59e..534b5ab7642 100644
Binary files a/test/image/baselines/geo_bubbles-sizeref.png and b/test/image/baselines/geo_bubbles-sizeref.png differ
diff --git a/test/image/baselines/geo_canadian-cities.png b/test/image/baselines/geo_canadian-cities.png
index 2057a914508..2415bf9248e 100644
Binary files a/test/image/baselines/geo_canadian-cities.png and b/test/image/baselines/geo_canadian-cities.png differ
diff --git a/test/image/baselines/geo_centering.png b/test/image/baselines/geo_centering.png
index 8e65a0e8163..876eae09959 100644
Binary files a/test/image/baselines/geo_centering.png and b/test/image/baselines/geo_centering.png differ
diff --git a/test/image/baselines/geo_choropleth-legend.png b/test/image/baselines/geo_choropleth-legend.png
index 56bd2d69535..2aff9b3245a 100644
Binary files a/test/image/baselines/geo_choropleth-legend.png and b/test/image/baselines/geo_choropleth-legend.png differ
diff --git a/test/image/baselines/geo_choropleth-text.png b/test/image/baselines/geo_choropleth-text.png
index 0fd5e653211..0206a92d616 100644
Binary files a/test/image/baselines/geo_choropleth-text.png and b/test/image/baselines/geo_choropleth-text.png differ
diff --git a/test/image/baselines/geo_choropleth-usa.png b/test/image/baselines/geo_choropleth-usa.png
index fbfb977220a..fe3b168c388 100644
Binary files a/test/image/baselines/geo_choropleth-usa.png and b/test/image/baselines/geo_choropleth-usa.png differ
diff --git a/test/image/baselines/geo_choropleth-usa_legend.png b/test/image/baselines/geo_choropleth-usa_legend.png
index b4002ff7f3b..df33be59778 100644
Binary files a/test/image/baselines/geo_choropleth-usa_legend.png and b/test/image/baselines/geo_choropleth-usa_legend.png differ
diff --git a/test/image/baselines/geo_conic-conformal.png b/test/image/baselines/geo_conic-conformal.png
index af9247a1d9e..b6a6ad20a2d 100644
Binary files a/test/image/baselines/geo_conic-conformal.png and b/test/image/baselines/geo_conic-conformal.png differ
diff --git a/test/image/baselines/geo_connectgaps.png b/test/image/baselines/geo_connectgaps.png
index f1d4ad2398d..41e635d38b4 100644
Binary files a/test/image/baselines/geo_connectgaps.png and b/test/image/baselines/geo_connectgaps.png differ
diff --git a/test/image/baselines/geo_country-names-text-chart.png b/test/image/baselines/geo_country-names-text-chart.png
index b921e1e3dfc..42a0737ec7f 100644
Binary files a/test/image/baselines/geo_country-names-text-chart.png and b/test/image/baselines/geo_country-names-text-chart.png differ
diff --git a/test/image/baselines/geo_country-names.png b/test/image/baselines/geo_country-names.png
index 31d5d096d9b..50e7749a5ac 100644
Binary files a/test/image/baselines/geo_country-names.png and b/test/image/baselines/geo_country-names.png differ
diff --git a/test/image/baselines/geo_custom-colorscale.png b/test/image/baselines/geo_custom-colorscale.png
index 8ed84752d25..643e97b2a2f 100644
Binary files a/test/image/baselines/geo_custom-colorscale.png and b/test/image/baselines/geo_custom-colorscale.png differ
diff --git a/test/image/baselines/geo_custom-geojson.png b/test/image/baselines/geo_custom-geojson.png
index c5287659445..fa1728f90cc 100644
Binary files a/test/image/baselines/geo_custom-geojson.png and b/test/image/baselines/geo_custom-geojson.png differ
diff --git a/test/image/baselines/geo_europe-bubbles.png b/test/image/baselines/geo_europe-bubbles.png
index 98bd5677398..4b13c7342ac 100644
Binary files a/test/image/baselines/geo_europe-bubbles.png and b/test/image/baselines/geo_europe-bubbles.png differ
diff --git a/test/image/baselines/geo_featureidkey.png b/test/image/baselines/geo_featureidkey.png
index 34d2922a3d4..761c1ccc24d 100644
Binary files a/test/image/baselines/geo_featureidkey.png and b/test/image/baselines/geo_featureidkey.png differ
diff --git a/test/image/baselines/geo_fill.png b/test/image/baselines/geo_fill.png
index 62acf49e8db..aafeb426e0f 100644
Binary files a/test/image/baselines/geo_fill.png and b/test/image/baselines/geo_fill.png differ
diff --git a/test/image/baselines/geo_first.png b/test/image/baselines/geo_first.png
index 085dc5f49c3..d944c459f71 100644
Binary files a/test/image/baselines/geo_first.png and b/test/image/baselines/geo_first.png differ
diff --git a/test/image/baselines/geo_fitbounds-geojson.png b/test/image/baselines/geo_fitbounds-geojson.png
index d6c565042ad..6578bfc7e5d 100644
Binary files a/test/image/baselines/geo_fitbounds-geojson.png and b/test/image/baselines/geo_fitbounds-geojson.png differ
diff --git a/test/image/baselines/geo_fitbounds-locations.png b/test/image/baselines/geo_fitbounds-locations.png
index b7bf79e56e4..2b51b2ebf5d 100644
Binary files a/test/image/baselines/geo_fitbounds-locations.png and b/test/image/baselines/geo_fitbounds-locations.png differ
diff --git a/test/image/baselines/geo_fitbounds-scopes.png b/test/image/baselines/geo_fitbounds-scopes.png
index 43b48b5df62..155c91d9365 100644
Binary files a/test/image/baselines/geo_fitbounds-scopes.png and b/test/image/baselines/geo_fitbounds-scopes.png differ
diff --git a/test/image/baselines/geo_kavrayskiy7.png b/test/image/baselines/geo_kavrayskiy7.png
index d49095a6147..ad50d380972 100644
Binary files a/test/image/baselines/geo_kavrayskiy7.png and b/test/image/baselines/geo_kavrayskiy7.png differ
diff --git a/test/image/baselines/geo_lakes-and-rivers.png b/test/image/baselines/geo_lakes-and-rivers.png
index fd6137a6b6f..210d367fdd2 100644
Binary files a/test/image/baselines/geo_lakes-and-rivers.png and b/test/image/baselines/geo_lakes-and-rivers.png differ
diff --git a/test/image/baselines/geo_legendonly.png b/test/image/baselines/geo_legendonly.png
index 00b45e18535..0203c2cc1ae 100644
Binary files a/test/image/baselines/geo_legendonly.png and b/test/image/baselines/geo_legendonly.png differ
diff --git a/test/image/baselines/geo_miterlimit-base-layers.png b/test/image/baselines/geo_miterlimit-base-layers.png
index d14040b2c7c..eda64eef89e 100644
Binary files a/test/image/baselines/geo_miterlimit-base-layers.png and b/test/image/baselines/geo_miterlimit-base-layers.png differ
diff --git a/test/image/baselines/geo_multi-geos.png b/test/image/baselines/geo_multi-geos.png
index de0366ab098..04787f8aabd 100644
Binary files a/test/image/baselines/geo_multi-geos.png and b/test/image/baselines/geo_multi-geos.png differ
diff --git a/test/image/baselines/geo_multiple-usa-choropleths.png b/test/image/baselines/geo_multiple-usa-choropleths.png
index cb442834d5c..66589581958 100644
Binary files a/test/image/baselines/geo_multiple-usa-choropleths.png and b/test/image/baselines/geo_multiple-usa-choropleths.png differ
diff --git a/test/image/baselines/geo_orthographic.png b/test/image/baselines/geo_orthographic.png
index d4b161dea34..ab6d925ebb5 100644
Binary files a/test/image/baselines/geo_orthographic.png and b/test/image/baselines/geo_orthographic.png differ
diff --git a/test/image/baselines/geo_point-selection.png b/test/image/baselines/geo_point-selection.png
index 2ee74cedb06..a343a9a0c13 100644
Binary files a/test/image/baselines/geo_point-selection.png and b/test/image/baselines/geo_point-selection.png differ
diff --git a/test/image/baselines/geo_scattergeo-locations.png b/test/image/baselines/geo_scattergeo-locations.png
index 0de614431f0..c25e73877ba 100644
Binary files a/test/image/baselines/geo_scattergeo-locations.png and b/test/image/baselines/geo_scattergeo-locations.png differ
diff --git a/test/image/baselines/geo_scattergeo-out-of-usa.png b/test/image/baselines/geo_scattergeo-out-of-usa.png
index ac63b338bee..a5679ab2c38 100644
Binary files a/test/image/baselines/geo_scattergeo-out-of-usa.png and b/test/image/baselines/geo_scattergeo-out-of-usa.png differ
diff --git a/test/image/baselines/geo_second.png b/test/image/baselines/geo_second.png
index 6a473ff76a9..082fcf710b0 100644
Binary files a/test/image/baselines/geo_second.png and b/test/image/baselines/geo_second.png differ
diff --git a/test/image/baselines/geo_skymap.png b/test/image/baselines/geo_skymap.png
index 4ecaf0f593d..7e0e8f04159 100644
Binary files a/test/image/baselines/geo_skymap.png and b/test/image/baselines/geo_skymap.png differ
diff --git a/test/image/baselines/geo_stereographic.png b/test/image/baselines/geo_stereographic.png
index e2f8e3af5a2..fb7b258283c 100644
Binary files a/test/image/baselines/geo_stereographic.png and b/test/image/baselines/geo_stereographic.png differ
diff --git a/test/image/baselines/geo_text_chart_arrays.png b/test/image/baselines/geo_text_chart_arrays.png
index fc74c91f82e..36d3459582c 100644
Binary files a/test/image/baselines/geo_text_chart_arrays.png and b/test/image/baselines/geo_text_chart_arrays.png differ
diff --git a/test/image/baselines/geo_tick0.png b/test/image/baselines/geo_tick0.png
index 77aec957046..e64926fbcdb 100644
Binary files a/test/image/baselines/geo_tick0.png and b/test/image/baselines/geo_tick0.png differ
diff --git a/test/image/baselines/geo_usa-states-on-world-scope.png b/test/image/baselines/geo_usa-states-on-world-scope.png
index 5fba5acb888..096091151bf 100644
Binary files a/test/image/baselines/geo_usa-states-on-world-scope.png and b/test/image/baselines/geo_usa-states-on-world-scope.png differ
diff --git a/test/image/baselines/geo_usa-states.png b/test/image/baselines/geo_usa-states.png
index e162702a55a..596a3cf78ba 100644
Binary files a/test/image/baselines/geo_usa-states.png and b/test/image/baselines/geo_usa-states.png differ
diff --git a/test/image/baselines/geo_visible_false_override_template.png b/test/image/baselines/geo_visible_false_override_template.png
index 7c26ebd0909..201e71d72cf 100644
Binary files a/test/image/baselines/geo_visible_false_override_template.png and b/test/image/baselines/geo_visible_false_override_template.png differ
diff --git a/test/image/baselines/geo_winkel-tripel.png b/test/image/baselines/geo_winkel-tripel.png
index 12b5dc0fdc8..57cb4573905 100644
Binary files a/test/image/baselines/geo_winkel-tripel.png and b/test/image/baselines/geo_winkel-tripel.png differ
diff --git a/test/image/baselines/gl2d_10.png b/test/image/baselines/gl2d_10.png
index 85bcc6a1a3a..de730c3c838 100644
Binary files a/test/image/baselines/gl2d_10.png and b/test/image/baselines/gl2d_10.png differ
diff --git a/test/image/baselines/gl2d_12.png b/test/image/baselines/gl2d_12.png
index e0e6c389512..11fca914cc9 100644
Binary files a/test/image/baselines/gl2d_12.png and b/test/image/baselines/gl2d_12.png differ
diff --git a/test/image/baselines/gl2d_14.png b/test/image/baselines/gl2d_14.png
index 3b31687e969..9b5b225a481 100644
Binary files a/test/image/baselines/gl2d_14.png and b/test/image/baselines/gl2d_14.png differ
diff --git a/test/image/baselines/gl2d_17.png b/test/image/baselines/gl2d_17.png
index 7e4c8d41fa2..b8a5e35348c 100644
Binary files a/test/image/baselines/gl2d_17.png and b/test/image/baselines/gl2d_17.png differ
diff --git a/test/image/baselines/gl2d_annotations.png b/test/image/baselines/gl2d_annotations.png
index 8700ec20796..b3ceeaaead3 100644
Binary files a/test/image/baselines/gl2d_annotations.png and b/test/image/baselines/gl2d_annotations.png differ
diff --git a/test/image/baselines/gl2d_axes_booleans.png b/test/image/baselines/gl2d_axes_booleans.png
index 99ae8531d00..e1c97f26959 100644
Binary files a/test/image/baselines/gl2d_axes_booleans.png and b/test/image/baselines/gl2d_axes_booleans.png differ
diff --git a/test/image/baselines/gl2d_axes_labels.png b/test/image/baselines/gl2d_axes_labels.png
index de5a0db3a4b..653120c3c6b 100644
Binary files a/test/image/baselines/gl2d_axes_labels.png and b/test/image/baselines/gl2d_axes_labels.png differ
diff --git a/test/image/baselines/gl2d_axes_labels2.png b/test/image/baselines/gl2d_axes_labels2.png
index 41408c7bc2b..9aecf84f8be 100644
Binary files a/test/image/baselines/gl2d_axes_labels2.png and b/test/image/baselines/gl2d_axes_labels2.png differ
diff --git a/test/image/baselines/gl2d_axes_lines.png b/test/image/baselines/gl2d_axes_lines.png
index c29322d35d1..24c39ce87c8 100644
Binary files a/test/image/baselines/gl2d_axes_lines.png and b/test/image/baselines/gl2d_axes_lines.png differ
diff --git a/test/image/baselines/gl2d_axes_range_manual.png b/test/image/baselines/gl2d_axes_range_manual.png
index 9043299b823..14ebea82fe5 100644
Binary files a/test/image/baselines/gl2d_axes_range_manual.png and b/test/image/baselines/gl2d_axes_range_manual.png differ
diff --git a/test/image/baselines/gl2d_axes_range_mode.png b/test/image/baselines/gl2d_axes_range_mode.png
index 0076fb99f3c..bcf97d2953e 100644
Binary files a/test/image/baselines/gl2d_axes_range_mode.png and b/test/image/baselines/gl2d_axes_range_mode.png differ
diff --git a/test/image/baselines/gl2d_axes_range_type.png b/test/image/baselines/gl2d_axes_range_type.png
index 094efb6b855..816ca3c382f 100644
Binary files a/test/image/baselines/gl2d_axes_range_type.png and b/test/image/baselines/gl2d_axes_range_type.png differ
diff --git a/test/image/baselines/gl2d_clean-number.png b/test/image/baselines/gl2d_clean-number.png
index c667316952b..0a46c34f9ed 100644
Binary files a/test/image/baselines/gl2d_clean-number.png and b/test/image/baselines/gl2d_clean-number.png differ
diff --git a/test/image/baselines/gl2d_clustering.png b/test/image/baselines/gl2d_clustering.png
index 2572f66f950..70f9691c18f 100644
Binary files a/test/image/baselines/gl2d_clustering.png and b/test/image/baselines/gl2d_clustering.png differ
diff --git a/test/image/baselines/gl2d_connect_gaps.png b/test/image/baselines/gl2d_connect_gaps.png
index dba70d4dc06..133ee55a125 100644
Binary files a/test/image/baselines/gl2d_connect_gaps.png and b/test/image/baselines/gl2d_connect_gaps.png differ
diff --git a/test/image/baselines/gl2d_date_axes.png b/test/image/baselines/gl2d_date_axes.png
index 58819220d69..858f2508576 100644
Binary files a/test/image/baselines/gl2d_date_axes.png and b/test/image/baselines/gl2d_date_axes.png differ
diff --git a/test/image/baselines/gl2d_error_bars.png b/test/image/baselines/gl2d_error_bars.png
index 21605d8215f..a6eaa787c35 100644
Binary files a/test/image/baselines/gl2d_error_bars.png and b/test/image/baselines/gl2d_error_bars.png differ
diff --git a/test/image/baselines/gl2d_error_bars_log.png b/test/image/baselines/gl2d_error_bars_log.png
index 066c3468480..1aa89ddaecc 100644
Binary files a/test/image/baselines/gl2d_error_bars_log.png and b/test/image/baselines/gl2d_error_bars_log.png differ
diff --git a/test/image/baselines/gl2d_fill-ordering.png b/test/image/baselines/gl2d_fill-ordering.png
index ed2acbd53cc..126e409af75 100644
Binary files a/test/image/baselines/gl2d_fill-ordering.png and b/test/image/baselines/gl2d_fill-ordering.png differ
diff --git a/test/image/baselines/gl2d_fill_trace_tozero_order.png b/test/image/baselines/gl2d_fill_trace_tozero_order.png
index 5fbfce15d4f..9101a292154 100644
Binary files a/test/image/baselines/gl2d_fill_trace_tozero_order.png and b/test/image/baselines/gl2d_fill_trace_tozero_order.png differ
diff --git a/test/image/baselines/gl2d_fonts.png b/test/image/baselines/gl2d_fonts.png
index f71fd65374b..891f1cf2241 100644
Binary files a/test/image/baselines/gl2d_fonts.png and b/test/image/baselines/gl2d_fonts.png differ
diff --git a/test/image/baselines/gl2d_heatmapgl.png b/test/image/baselines/gl2d_heatmapgl.png
index df8694bf2fd..caa304834a7 100644
Binary files a/test/image/baselines/gl2d_heatmapgl.png and b/test/image/baselines/gl2d_heatmapgl.png differ
diff --git a/test/image/baselines/gl2d_heatmapgl_discrete.png b/test/image/baselines/gl2d_heatmapgl_discrete.png
index 4885dd3861d..f363e92fb7e 100644
Binary files a/test/image/baselines/gl2d_heatmapgl_discrete.png and b/test/image/baselines/gl2d_heatmapgl_discrete.png differ
diff --git a/test/image/baselines/gl2d_horiz-lines.png b/test/image/baselines/gl2d_horiz-lines.png
index a76fa114d50..52faa348942 100644
Binary files a/test/image/baselines/gl2d_horiz-lines.png and b/test/image/baselines/gl2d_horiz-lines.png differ
diff --git a/test/image/baselines/gl2d_layout_image.png b/test/image/baselines/gl2d_layout_image.png
index 14a21a818f5..7d879a25ad0 100644
Binary files a/test/image/baselines/gl2d_layout_image.png and b/test/image/baselines/gl2d_layout_image.png differ
diff --git a/test/image/baselines/gl2d_line_aligned.png b/test/image/baselines/gl2d_line_aligned.png
index c6bf4ee8d3b..65d7ea779bd 100644
Binary files a/test/image/baselines/gl2d_line_aligned.png and b/test/image/baselines/gl2d_line_aligned.png differ
diff --git a/test/image/baselines/gl2d_line_dash.png b/test/image/baselines/gl2d_line_dash.png
index e4a2a59af79..92538577431 100644
Binary files a/test/image/baselines/gl2d_line_dash.png and b/test/image/baselines/gl2d_line_dash.png differ
diff --git a/test/image/baselines/gl2d_line_limit.png b/test/image/baselines/gl2d_line_limit.png
index e69cc60fa89..3db14fddca4 100644
Binary files a/test/image/baselines/gl2d_line_limit.png and b/test/image/baselines/gl2d_line_limit.png differ
diff --git a/test/image/baselines/gl2d_line_select.png b/test/image/baselines/gl2d_line_select.png
index 150c00b55a2..869f8d7e1e5 100644
Binary files a/test/image/baselines/gl2d_line_select.png and b/test/image/baselines/gl2d_line_select.png differ
diff --git a/test/image/baselines/gl2d_lines_almost_horizontal_vertical.png b/test/image/baselines/gl2d_lines_almost_horizontal_vertical.png
index 6eab8e3ed5f..1a904a36094 100644
Binary files a/test/image/baselines/gl2d_lines_almost_horizontal_vertical.png and b/test/image/baselines/gl2d_lines_almost_horizontal_vertical.png differ
diff --git a/test/image/baselines/gl2d_marker_coloraxis.png b/test/image/baselines/gl2d_marker_coloraxis.png
index 8a6559929cb..ef83b808b5a 100644
Binary files a/test/image/baselines/gl2d_marker_coloraxis.png and b/test/image/baselines/gl2d_marker_coloraxis.png differ
diff --git a/test/image/baselines/gl2d_marker_line_width.png b/test/image/baselines/gl2d_marker_line_width.png
index 13dc3b2731f..54d6f058389 100644
Binary files a/test/image/baselines/gl2d_marker_line_width.png and b/test/image/baselines/gl2d_marker_line_width.png differ
diff --git a/test/image/baselines/gl2d_marker_size.png b/test/image/baselines/gl2d_marker_size.png
index 563f0272edd..3880cbc32b6 100644
Binary files a/test/image/baselines/gl2d_marker_size.png and b/test/image/baselines/gl2d_marker_size.png differ
diff --git a/test/image/baselines/gl2d_marker_symbols.png b/test/image/baselines/gl2d_marker_symbols.png
index dae2340b831..b7d920f89df 100644
Binary files a/test/image/baselines/gl2d_marker_symbols.png and b/test/image/baselines/gl2d_marker_symbols.png differ
diff --git a/test/image/baselines/gl2d_multiple-traces-axes-labels.png b/test/image/baselines/gl2d_multiple-traces-axes-labels.png
index d23f9db1664..9e7d5df8495 100644
Binary files a/test/image/baselines/gl2d_multiple-traces-axes-labels.png and b/test/image/baselines/gl2d_multiple-traces-axes-labels.png differ
diff --git a/test/image/baselines/gl2d_multiple-traces-axes.png b/test/image/baselines/gl2d_multiple-traces-axes.png
index 348920d37ef..5a12dfe3219 100644
Binary files a/test/image/baselines/gl2d_multiple-traces-axes.png and b/test/image/baselines/gl2d_multiple-traces-axes.png differ
diff --git a/test/image/baselines/gl2d_multiple_subplots.png b/test/image/baselines/gl2d_multiple_subplots.png
index 71f1520007e..cdd38d0f48b 100644
Binary files a/test/image/baselines/gl2d_multiple_subplots.png and b/test/image/baselines/gl2d_multiple_subplots.png differ
diff --git a/test/image/baselines/gl2d_no-clustering.png b/test/image/baselines/gl2d_no-clustering.png
index 99446667f01..b8a443e8954 100644
Binary files a/test/image/baselines/gl2d_no-clustering.png and b/test/image/baselines/gl2d_no-clustering.png differ
diff --git a/test/image/baselines/gl2d_no-clustering2.png b/test/image/baselines/gl2d_no-clustering2.png
index 5fccd22d1d1..b66c5a93c4f 100644
Binary files a/test/image/baselines/gl2d_no-clustering2.png and b/test/image/baselines/gl2d_no-clustering2.png differ
diff --git a/test/image/baselines/gl2d_open_marker_line_width.png b/test/image/baselines/gl2d_open_marker_line_width.png
index b8519424f4d..9021fe1f473 100644
Binary files a/test/image/baselines/gl2d_open_marker_line_width.png and b/test/image/baselines/gl2d_open_marker_line_width.png differ
diff --git a/test/image/baselines/gl2d_order_error.png b/test/image/baselines/gl2d_order_error.png
index 250eb8f64fe..19a43004508 100644
Binary files a/test/image/baselines/gl2d_order_error.png and b/test/image/baselines/gl2d_order_error.png differ
diff --git a/test/image/baselines/gl2d_parcoords.png b/test/image/baselines/gl2d_parcoords.png
index dd93bb28164..cfba203df6d 100644
Binary files a/test/image/baselines/gl2d_parcoords.png and b/test/image/baselines/gl2d_parcoords.png differ
diff --git a/test/image/baselines/gl2d_parcoords_1.png b/test/image/baselines/gl2d_parcoords_1.png
index 78d4b4b92a8..65b4701419c 100644
Binary files a/test/image/baselines/gl2d_parcoords_1.png and b/test/image/baselines/gl2d_parcoords_1.png differ
diff --git a/test/image/baselines/gl2d_parcoords_2.png b/test/image/baselines/gl2d_parcoords_2.png
index 63dea7aaff3..e0b3ea6b0ae 100644
Binary files a/test/image/baselines/gl2d_parcoords_2.png and b/test/image/baselines/gl2d_parcoords_2.png differ
diff --git a/test/image/baselines/gl2d_parcoords_256_colors.png b/test/image/baselines/gl2d_parcoords_256_colors.png
index 04beea0fcd1..ea3b7a4dada 100644
Binary files a/test/image/baselines/gl2d_parcoords_256_colors.png and b/test/image/baselines/gl2d_parcoords_256_colors.png differ
diff --git a/test/image/baselines/gl2d_parcoords_60_dims.png b/test/image/baselines/gl2d_parcoords_60_dims.png
index ea7eed2f8a7..de30f4ca234 100644
Binary files a/test/image/baselines/gl2d_parcoords_60_dims.png and b/test/image/baselines/gl2d_parcoords_60_dims.png differ
diff --git a/test/image/baselines/gl2d_parcoords_blocks.png b/test/image/baselines/gl2d_parcoords_blocks.png
index c802e871fc5..f121aa6d731 100644
Binary files a/test/image/baselines/gl2d_parcoords_blocks.png and b/test/image/baselines/gl2d_parcoords_blocks.png differ
diff --git a/test/image/baselines/gl2d_parcoords_coloraxis.png b/test/image/baselines/gl2d_parcoords_coloraxis.png
index 312b48f8e33..92a7c6ee3c9 100644
Binary files a/test/image/baselines/gl2d_parcoords_coloraxis.png and b/test/image/baselines/gl2d_parcoords_coloraxis.png differ
diff --git a/test/image/baselines/gl2d_parcoords_constraints.png b/test/image/baselines/gl2d_parcoords_constraints.png
index e6ad27a3211..4d41651c9e8 100644
Binary files a/test/image/baselines/gl2d_parcoords_constraints.png and b/test/image/baselines/gl2d_parcoords_constraints.png differ
diff --git a/test/image/baselines/gl2d_parcoords_dark_background.png b/test/image/baselines/gl2d_parcoords_dark_background.png
index 720afb28980..ee13f6cc60d 100644
Binary files a/test/image/baselines/gl2d_parcoords_dark_background.png and b/test/image/baselines/gl2d_parcoords_dark_background.png differ
diff --git a/test/image/baselines/gl2d_parcoords_large.png b/test/image/baselines/gl2d_parcoords_large.png
index 595564414e3..4850e2d4263 100644
Binary files a/test/image/baselines/gl2d_parcoords_large.png and b/test/image/baselines/gl2d_parcoords_large.png differ
diff --git a/test/image/baselines/gl2d_parcoords_out-of-range_selected-above-below.png b/test/image/baselines/gl2d_parcoords_out-of-range_selected-above-below.png
index 0dccfb563c8..dc4241cd25d 100644
Binary files a/test/image/baselines/gl2d_parcoords_out-of-range_selected-above-below.png and b/test/image/baselines/gl2d_parcoords_out-of-range_selected-above-below.png differ
diff --git a/test/image/baselines/gl2d_parcoords_out-of-range_selected-all.png b/test/image/baselines/gl2d_parcoords_out-of-range_selected-all.png
index 1c3539e29de..73cb83c8921 100644
Binary files a/test/image/baselines/gl2d_parcoords_out-of-range_selected-all.png and b/test/image/baselines/gl2d_parcoords_out-of-range_selected-all.png differ
diff --git a/test/image/baselines/gl2d_parcoords_out-of-range_selected-below.png b/test/image/baselines/gl2d_parcoords_out-of-range_selected-below.png
index fb8c2e6902a..c7ac27cc198 100644
Binary files a/test/image/baselines/gl2d_parcoords_out-of-range_selected-below.png and b/test/image/baselines/gl2d_parcoords_out-of-range_selected-below.png differ
diff --git a/test/image/baselines/gl2d_parcoords_out-of-range_selected-none.png b/test/image/baselines/gl2d_parcoords_out-of-range_selected-none.png
index e4daa92f9a6..642db584dc4 100644
Binary files a/test/image/baselines/gl2d_parcoords_out-of-range_selected-none.png and b/test/image/baselines/gl2d_parcoords_out-of-range_selected-none.png differ
diff --git a/test/image/baselines/gl2d_parcoords_rgba_colorscale.png b/test/image/baselines/gl2d_parcoords_rgba_colorscale.png
index 4903a01242e..ec89008e27e 100644
Binary files a/test/image/baselines/gl2d_parcoords_rgba_colorscale.png and b/test/image/baselines/gl2d_parcoords_rgba_colorscale.png differ
diff --git a/test/image/baselines/gl2d_parcoords_select_first_last_enum.png b/test/image/baselines/gl2d_parcoords_select_first_last_enum.png
index b0cf3961415..616aa52c9c0 100644
Binary files a/test/image/baselines/gl2d_parcoords_select_first_last_enum.png and b/test/image/baselines/gl2d_parcoords_select_first_last_enum.png differ
diff --git a/test/image/baselines/gl2d_parcoords_style_labels.png b/test/image/baselines/gl2d_parcoords_style_labels.png
index deb74ff3e3d..5f67ad35843 100644
Binary files a/test/image/baselines/gl2d_parcoords_style_labels.png and b/test/image/baselines/gl2d_parcoords_style_labels.png differ
diff --git a/test/image/baselines/gl2d_parcoords_tick_format.png b/test/image/baselines/gl2d_parcoords_tick_format.png
index 6cd50ac618c..175561e4311 100644
Binary files a/test/image/baselines/gl2d_parcoords_tick_format.png and b/test/image/baselines/gl2d_parcoords_tick_format.png differ
diff --git a/test/image/baselines/gl2d_period_positioning.png b/test/image/baselines/gl2d_period_positioning.png
index a861bd64403..bee982312f3 100644
Binary files a/test/image/baselines/gl2d_period_positioning.png and b/test/image/baselines/gl2d_period_positioning.png differ
diff --git a/test/image/baselines/gl2d_point-selection.png b/test/image/baselines/gl2d_point-selection.png
index a59dbd0781d..292248181c7 100644
Binary files a/test/image/baselines/gl2d_point-selection.png and b/test/image/baselines/gl2d_point-selection.png differ
diff --git a/test/image/baselines/gl2d_pointcloud-basic.png b/test/image/baselines/gl2d_pointcloud-basic.png
index 13e73650e51..642abf69d7a 100644
Binary files a/test/image/baselines/gl2d_pointcloud-basic.png and b/test/image/baselines/gl2d_pointcloud-basic.png differ
diff --git a/test/image/baselines/gl2d_rgb_dont_accept_alpha_scattergl.png b/test/image/baselines/gl2d_rgb_dont_accept_alpha_scattergl.png
index 5989eaa1915..c89ab55e592 100644
Binary files a/test/image/baselines/gl2d_rgb_dont_accept_alpha_scattergl.png and b/test/image/baselines/gl2d_rgb_dont_accept_alpha_scattergl.png differ
diff --git a/test/image/baselines/gl2d_scatter-color-clustering.png b/test/image/baselines/gl2d_scatter-color-clustering.png
index 8e31d1b25ec..deb24811c15 100644
Binary files a/test/image/baselines/gl2d_scatter-color-clustering.png and b/test/image/baselines/gl2d_scatter-color-clustering.png differ
diff --git a/test/image/baselines/gl2d_scatter-colorscale-colorbar.png b/test/image/baselines/gl2d_scatter-colorscale-colorbar.png
index 9b2e7d15a55..d9922d7fb1a 100644
Binary files a/test/image/baselines/gl2d_scatter-colorscale-colorbar.png and b/test/image/baselines/gl2d_scatter-colorscale-colorbar.png differ
diff --git a/test/image/baselines/gl2d_scatter-colorscale-points.png b/test/image/baselines/gl2d_scatter-colorscale-points.png
index fcf0124e714..2a55e856e97 100644
Binary files a/test/image/baselines/gl2d_scatter-colorscale-points.png and b/test/image/baselines/gl2d_scatter-colorscale-points.png differ
diff --git a/test/image/baselines/gl2d_scatter-continuous-clustering.png b/test/image/baselines/gl2d_scatter-continuous-clustering.png
index 1c06265808a..8440848f553 100644
Binary files a/test/image/baselines/gl2d_scatter-continuous-clustering.png and b/test/image/baselines/gl2d_scatter-continuous-clustering.png differ
diff --git a/test/image/baselines/gl2d_scatter-marker-line-colorscales.png b/test/image/baselines/gl2d_scatter-marker-line-colorscales.png
index ca93022e7c3..710b4206f03 100644
Binary files a/test/image/baselines/gl2d_scatter-marker-line-colorscales.png and b/test/image/baselines/gl2d_scatter-marker-line-colorscales.png differ
diff --git a/test/image/baselines/gl2d_scatter-subplot-panel.png b/test/image/baselines/gl2d_scatter-subplot-panel.png
index b09f97c49fa..2dbfc4e65c7 100644
Binary files a/test/image/baselines/gl2d_scatter-subplot-panel.png and b/test/image/baselines/gl2d_scatter-subplot-panel.png differ
diff --git a/test/image/baselines/gl2d_scatter2d-multiple-colors.png b/test/image/baselines/gl2d_scatter2d-multiple-colors.png
index 7ccd6192eb5..bdbd0e89990 100644
Binary files a/test/image/baselines/gl2d_scatter2d-multiple-colors.png and b/test/image/baselines/gl2d_scatter2d-multiple-colors.png differ
diff --git a/test/image/baselines/gl2d_scatter_fill_self_next.png b/test/image/baselines/gl2d_scatter_fill_self_next.png
index 285e4765863..b3a0d1e4dc3 100644
Binary files a/test/image/baselines/gl2d_scatter_fill_self_next.png and b/test/image/baselines/gl2d_scatter_fill_self_next.png differ
diff --git a/test/image/baselines/gl2d_scatter_fill_self_next_vs_nogl.png b/test/image/baselines/gl2d_scatter_fill_self_next_vs_nogl.png
index aa5e6d7677d..54c655c5c7a 100644
Binary files a/test/image/baselines/gl2d_scatter_fill_self_next_vs_nogl.png and b/test/image/baselines/gl2d_scatter_fill_self_next_vs_nogl.png differ
diff --git a/test/image/baselines/gl2d_scattergl_errorbars_inherit_color.png b/test/image/baselines/gl2d_scattergl_errorbars_inherit_color.png
index e543f5dfe69..7a5f82d69d8 100644
Binary files a/test/image/baselines/gl2d_scattergl_errorbars_inherit_color.png and b/test/image/baselines/gl2d_scattergl_errorbars_inherit_color.png differ
diff --git a/test/image/baselines/gl2d_scattergl_gaps.png b/test/image/baselines/gl2d_scattergl_gaps.png
index aa0eb5fcc43..e197f87d9dd 100644
Binary files a/test/image/baselines/gl2d_scattergl_gaps.png and b/test/image/baselines/gl2d_scattergl_gaps.png differ
diff --git a/test/image/baselines/gl2d_scattergl_simple_line_reversed_ranges.png b/test/image/baselines/gl2d_scattergl_simple_line_reversed_ranges.png
index 57bcc0c9591..833f0b07759 100644
Binary files a/test/image/baselines/gl2d_scattergl_simple_line_reversed_ranges.png and b/test/image/baselines/gl2d_scattergl_simple_line_reversed_ranges.png differ
diff --git a/test/image/baselines/gl2d_selectedpoints.png b/test/image/baselines/gl2d_selectedpoints.png
index 00f8f43aede..8cf15068843 100644
Binary files a/test/image/baselines/gl2d_selectedpoints.png and b/test/image/baselines/gl2d_selectedpoints.png differ
diff --git a/test/image/baselines/gl2d_shape_line.png b/test/image/baselines/gl2d_shape_line.png
index f5b8767f9d8..1e43fa5fc5a 100644
Binary files a/test/image/baselines/gl2d_shape_line.png and b/test/image/baselines/gl2d_shape_line.png differ
diff --git a/test/image/baselines/gl2d_shapes_below_traces.png b/test/image/baselines/gl2d_shapes_below_traces.png
index 2f7be675d32..7086d7413ae 100644
Binary files a/test/image/baselines/gl2d_shapes_below_traces.png and b/test/image/baselines/gl2d_shapes_below_traces.png differ
diff --git a/test/image/baselines/gl2d_simple_inset.png b/test/image/baselines/gl2d_simple_inset.png
index 14e28351f39..144951ef141 100644
Binary files a/test/image/baselines/gl2d_simple_inset.png and b/test/image/baselines/gl2d_simple_inset.png differ
diff --git a/test/image/baselines/gl2d_size_margins.png b/test/image/baselines/gl2d_size_margins.png
index 75d4abfc5c8..d21484d778d 100644
Binary files a/test/image/baselines/gl2d_size_margins.png and b/test/image/baselines/gl2d_size_margins.png differ
diff --git a/test/image/baselines/gl2d_stacked_coupled_subplots.png b/test/image/baselines/gl2d_stacked_coupled_subplots.png
index 503308a69d7..a4196d4dbf0 100644
Binary files a/test/image/baselines/gl2d_stacked_coupled_subplots.png and b/test/image/baselines/gl2d_stacked_coupled_subplots.png differ
diff --git a/test/image/baselines/gl2d_stacked_subplots.png b/test/image/baselines/gl2d_stacked_subplots.png
index 3490921751c..01a4f6874a5 100644
Binary files a/test/image/baselines/gl2d_stacked_subplots.png and b/test/image/baselines/gl2d_stacked_subplots.png differ
diff --git a/test/image/baselines/gl2d_subplots_anchor.png b/test/image/baselines/gl2d_subplots_anchor.png
index 341f440ab3b..a31d28db78a 100644
Binary files a/test/image/baselines/gl2d_subplots_anchor.png and b/test/image/baselines/gl2d_subplots_anchor.png differ
diff --git a/test/image/baselines/gl2d_symbol_numbers.png b/test/image/baselines/gl2d_symbol_numbers.png
index cf0a00b987e..967b5dc553b 100644
Binary files a/test/image/baselines/gl2d_symbol_numbers.png and b/test/image/baselines/gl2d_symbol_numbers.png differ
diff --git a/test/image/baselines/gl2d_text_chart_arrays.png b/test/image/baselines/gl2d_text_chart_arrays.png
index e0a454cd596..1d68efef399 100644
Binary files a/test/image/baselines/gl2d_text_chart_arrays.png and b/test/image/baselines/gl2d_text_chart_arrays.png differ
diff --git a/test/image/baselines/gl2d_text_chart_basic.png b/test/image/baselines/gl2d_text_chart_basic.png
index afece63c14c..2f60d6a632c 100644
Binary files a/test/image/baselines/gl2d_text_chart_basic.png and b/test/image/baselines/gl2d_text_chart_basic.png differ
diff --git a/test/image/baselines/gl2d_text_chart_invalid-arrays.png b/test/image/baselines/gl2d_text_chart_invalid-arrays.png
index 750f9f83d65..ffc59108d63 100644
Binary files a/test/image/baselines/gl2d_text_chart_invalid-arrays.png and b/test/image/baselines/gl2d_text_chart_invalid-arrays.png differ
diff --git a/test/image/baselines/gl2d_text_chart_single-string.png b/test/image/baselines/gl2d_text_chart_single-string.png
index bebed9f57f3..6afcba0cbd1 100644
Binary files a/test/image/baselines/gl2d_text_chart_single-string.png and b/test/image/baselines/gl2d_text_chart_single-string.png differ
diff --git a/test/image/baselines/gl2d_text_chart_styling.png b/test/image/baselines/gl2d_text_chart_styling.png
index 1b1b10918cd..6bd84e65a50 100644
Binary files a/test/image/baselines/gl2d_text_chart_styling.png and b/test/image/baselines/gl2d_text_chart_styling.png differ
diff --git a/test/image/baselines/gl2d_texttemplate.png b/test/image/baselines/gl2d_texttemplate.png
index 778520f3608..36cef60b79c 100644
Binary files a/test/image/baselines/gl2d_texttemplate.png and b/test/image/baselines/gl2d_texttemplate.png differ
diff --git a/test/image/baselines/gl2d_tick-labels.png b/test/image/baselines/gl2d_tick-labels.png
index 90dd0b73832..7f135d036e3 100644
Binary files a/test/image/baselines/gl2d_tick-labels.png and b/test/image/baselines/gl2d_tick-labels.png differ
diff --git a/test/image/baselines/gl2d_transforms.png b/test/image/baselines/gl2d_transforms.png
index 3b88081f8e6..6c5878026e2 100644
Binary files a/test/image/baselines/gl2d_transforms.png and b/test/image/baselines/gl2d_transforms.png differ
diff --git a/test/image/baselines/gl2d_ultra_zoom.png b/test/image/baselines/gl2d_ultra_zoom.png
index 63d2efa81db..fd96e28e3a4 100644
Binary files a/test/image/baselines/gl2d_ultra_zoom.png and b/test/image/baselines/gl2d_ultra_zoom.png differ
diff --git a/test/image/baselines/gl3d_annotations.png b/test/image/baselines/gl3d_annotations.png
index 26f5a135c71..747baaa8082 100644
Binary files a/test/image/baselines/gl3d_annotations.png and b/test/image/baselines/gl3d_annotations.png differ
diff --git a/test/image/baselines/gl3d_annotations_orthographic.png b/test/image/baselines/gl3d_annotations_orthographic.png
index c86854f7089..a9bbf7862ea 100644
Binary files a/test/image/baselines/gl3d_annotations_orthographic.png and b/test/image/baselines/gl3d_annotations_orthographic.png differ
diff --git a/test/image/baselines/gl3d_autocolorscale.png b/test/image/baselines/gl3d_autocolorscale.png
index fd03bb6720e..b1855eed9a2 100644
Binary files a/test/image/baselines/gl3d_autocolorscale.png and b/test/image/baselines/gl3d_autocolorscale.png differ
diff --git a/test/image/baselines/gl3d_autorange-zero.png b/test/image/baselines/gl3d_autorange-zero.png
index 539046d60b8..775e97223ca 100644
Binary files a/test/image/baselines/gl3d_autorange-zero.png and b/test/image/baselines/gl3d_autorange-zero.png differ
diff --git a/test/image/baselines/gl3d_axes-visible-false.png b/test/image/baselines/gl3d_axes-visible-false.png
index dab999eeddb..9946d37696e 100644
Binary files a/test/image/baselines/gl3d_axes-visible-false.png and b/test/image/baselines/gl3d_axes-visible-false.png differ
diff --git a/test/image/baselines/gl3d_bunny-hull.png b/test/image/baselines/gl3d_bunny-hull.png
index de4104538a5..9cce1bd0cc0 100644
Binary files a/test/image/baselines/gl3d_bunny-hull.png and b/test/image/baselines/gl3d_bunny-hull.png differ
diff --git a/test/image/baselines/gl3d_bunny.png b/test/image/baselines/gl3d_bunny.png
index dce936dc338..e2c58489e5a 100644
Binary files a/test/image/baselines/gl3d_bunny.png and b/test/image/baselines/gl3d_bunny.png differ
diff --git a/test/image/baselines/gl3d_bunny_cell-area.png b/test/image/baselines/gl3d_bunny_cell-area.png
index f3488c0d52a..26d217c808b 100644
Binary files a/test/image/baselines/gl3d_bunny_cell-area.png and b/test/image/baselines/gl3d_bunny_cell-area.png differ
diff --git a/test/image/baselines/gl3d_chrisp-nan-1.png b/test/image/baselines/gl3d_chrisp-nan-1.png
index f13187ad79d..425353b2c7b 100644
Binary files a/test/image/baselines/gl3d_chrisp-nan-1.png and b/test/image/baselines/gl3d_chrisp-nan-1.png differ
diff --git a/test/image/baselines/gl3d_coloraxes.png b/test/image/baselines/gl3d_coloraxes.png
index df31cb21eab..9dff2f16686 100644
Binary files a/test/image/baselines/gl3d_coloraxes.png and b/test/image/baselines/gl3d_coloraxes.png differ
diff --git a/test/image/baselines/gl3d_colormap256.png b/test/image/baselines/gl3d_colormap256.png
index dd19b129d3e..1320b374254 100644
Binary files a/test/image/baselines/gl3d_colormap256.png and b/test/image/baselines/gl3d_colormap256.png differ
diff --git a/test/image/baselines/gl3d_cone-absolute.png b/test/image/baselines/gl3d_cone-absolute.png
index f8733ba566f..6b7ca7b6b97 100644
Binary files a/test/image/baselines/gl3d_cone-absolute.png and b/test/image/baselines/gl3d_cone-absolute.png differ
diff --git a/test/image/baselines/gl3d_cone-autorange.png b/test/image/baselines/gl3d_cone-autorange.png
index 9e75ea73b57..32450d746ef 100644
Binary files a/test/image/baselines/gl3d_cone-autorange.png and b/test/image/baselines/gl3d_cone-autorange.png differ
diff --git a/test/image/baselines/gl3d_cone-lighting.png b/test/image/baselines/gl3d_cone-lighting.png
index 28a6d3dd0f4..bdf6d8541cc 100644
Binary files a/test/image/baselines/gl3d_cone-lighting.png and b/test/image/baselines/gl3d_cone-lighting.png differ
diff --git a/test/image/baselines/gl3d_cone-newplot_reversed_ranges.png b/test/image/baselines/gl3d_cone-newplot_reversed_ranges.png
index d75b61029a1..3b7f65f96c6 100644
Binary files a/test/image/baselines/gl3d_cone-newplot_reversed_ranges.png and b/test/image/baselines/gl3d_cone-newplot_reversed_ranges.png differ
diff --git a/test/image/baselines/gl3d_cone-rossler.png b/test/image/baselines/gl3d_cone-rossler.png
index 3e90fd3b576..943ed9bcc6e 100644
Binary files a/test/image/baselines/gl3d_cone-rossler.png and b/test/image/baselines/gl3d_cone-rossler.png differ
diff --git a/test/image/baselines/gl3d_cone-simple.png b/test/image/baselines/gl3d_cone-simple.png
index 180abb89649..3d2364d5b16 100644
Binary files a/test/image/baselines/gl3d_cone-simple.png and b/test/image/baselines/gl3d_cone-simple.png differ
diff --git a/test/image/baselines/gl3d_cone-single.png b/test/image/baselines/gl3d_cone-single.png
index fc17ee4b1ca..9cb87affc9f 100644
Binary files a/test/image/baselines/gl3d_cone-single.png and b/test/image/baselines/gl3d_cone-single.png differ
diff --git a/test/image/baselines/gl3d_cone-wind.png b/test/image/baselines/gl3d_cone-wind.png
index 2f98f90d819..ee5cf271ef5 100644
Binary files a/test/image/baselines/gl3d_cone-wind.png and b/test/image/baselines/gl3d_cone-wind.png differ
diff --git a/test/image/baselines/gl3d_cone-with-streamtube.png b/test/image/baselines/gl3d_cone-with-streamtube.png
index a704943e5a5..3c2ee7a8b06 100644
Binary files a/test/image/baselines/gl3d_cone-with-streamtube.png and b/test/image/baselines/gl3d_cone-with-streamtube.png differ
diff --git a/test/image/baselines/gl3d_contour-lines.png b/test/image/baselines/gl3d_contour-lines.png
index 46ce67b283a..94186e8e482 100644
Binary files a/test/image/baselines/gl3d_contour-lines.png and b/test/image/baselines/gl3d_contour-lines.png differ
diff --git a/test/image/baselines/gl3d_contour-lines2.png b/test/image/baselines/gl3d_contour-lines2.png
index 7ffc4d440ce..c2445d96ae9 100644
Binary files a/test/image/baselines/gl3d_contour-lines2.png and b/test/image/baselines/gl3d_contour-lines2.png differ
diff --git a/test/image/baselines/gl3d_convex-hull.png b/test/image/baselines/gl3d_convex-hull.png
index dce936dc338..e2c58489e5a 100644
Binary files a/test/image/baselines/gl3d_convex-hull.png and b/test/image/baselines/gl3d_convex-hull.png differ
diff --git a/test/image/baselines/gl3d_cube.png b/test/image/baselines/gl3d_cube.png
index 48c111576fa..4f8466e62f2 100644
Binary files a/test/image/baselines/gl3d_cube.png and b/test/image/baselines/gl3d_cube.png differ
diff --git a/test/image/baselines/gl3d_cufflinks.png b/test/image/baselines/gl3d_cufflinks.png
index 0be84707c55..dc6d1c3d55a 100644
Binary files a/test/image/baselines/gl3d_cufflinks.png and b/test/image/baselines/gl3d_cufflinks.png differ
diff --git a/test/image/baselines/gl3d_delaunay.png b/test/image/baselines/gl3d_delaunay.png
index c7937134709..a82043b528c 100644
Binary files a/test/image/baselines/gl3d_delaunay.png and b/test/image/baselines/gl3d_delaunay.png differ
diff --git a/test/image/baselines/gl3d_directions-isosurface1.png b/test/image/baselines/gl3d_directions-isosurface1.png
index 834e27d6662..cd9c0b41f49 100644
Binary files a/test/image/baselines/gl3d_directions-isosurface1.png and b/test/image/baselines/gl3d_directions-isosurface1.png differ
diff --git a/test/image/baselines/gl3d_directions-isosurface2.png b/test/image/baselines/gl3d_directions-isosurface2.png
index 5a8b449d443..464fc5053b6 100644
Binary files a/test/image/baselines/gl3d_directions-isosurface2.png and b/test/image/baselines/gl3d_directions-isosurface2.png differ
diff --git a/test/image/baselines/gl3d_directions-streamtube1.png b/test/image/baselines/gl3d_directions-streamtube1.png
index fd774f0e5bd..554bc1f55ae 100644
Binary files a/test/image/baselines/gl3d_directions-streamtube1.png and b/test/image/baselines/gl3d_directions-streamtube1.png differ
diff --git a/test/image/baselines/gl3d_directions-streamtube2.png b/test/image/baselines/gl3d_directions-streamtube2.png
index 9839a7de988..89be54aa590 100644
Binary files a/test/image/baselines/gl3d_directions-streamtube2.png and b/test/image/baselines/gl3d_directions-streamtube2.png differ
diff --git a/test/image/baselines/gl3d_directions-volume1.png b/test/image/baselines/gl3d_directions-volume1.png
index b17b3055364..8b59160cba6 100644
Binary files a/test/image/baselines/gl3d_directions-volume1.png and b/test/image/baselines/gl3d_directions-volume1.png differ
diff --git a/test/image/baselines/gl3d_error_bars_log.png b/test/image/baselines/gl3d_error_bars_log.png
index 66a0c65e490..16b0bafcfb1 100644
Binary files a/test/image/baselines/gl3d_error_bars_log.png and b/test/image/baselines/gl3d_error_bars_log.png differ
diff --git a/test/image/baselines/gl3d_error_bars_log_2.png b/test/image/baselines/gl3d_error_bars_log_2.png
index 3bd29d2ad03..05c3323aab2 100644
Binary files a/test/image/baselines/gl3d_error_bars_log_2.png and b/test/image/baselines/gl3d_error_bars_log_2.png differ
diff --git a/test/image/baselines/gl3d_errorbars_sqrt.png b/test/image/baselines/gl3d_errorbars_sqrt.png
index f79f29b6d5e..4348a0c2d45 100644
Binary files a/test/image/baselines/gl3d_errorbars_sqrt.png and b/test/image/baselines/gl3d_errorbars_sqrt.png differ
diff --git a/test/image/baselines/gl3d_errorbars_xy.png b/test/image/baselines/gl3d_errorbars_xy.png
index d9647e558cb..3bd5886e6cb 100644
Binary files a/test/image/baselines/gl3d_errorbars_xy.png and b/test/image/baselines/gl3d_errorbars_xy.png differ
diff --git a/test/image/baselines/gl3d_errorbars_zx.png b/test/image/baselines/gl3d_errorbars_zx.png
index a051de2b6ad..b248b897a22 100644
Binary files a/test/image/baselines/gl3d_errorbars_zx.png and b/test/image/baselines/gl3d_errorbars_zx.png differ
diff --git a/test/image/baselines/gl3d_errorbars_zy.png b/test/image/baselines/gl3d_errorbars_zy.png
index e986d6f5234..f3e3ffb6a56 100644
Binary files a/test/image/baselines/gl3d_errorbars_zy.png and b/test/image/baselines/gl3d_errorbars_zy.png differ
diff --git a/test/image/baselines/gl3d_formatted-text-on-multiple-lines.png b/test/image/baselines/gl3d_formatted-text-on-multiple-lines.png
index b8dc14117e4..a0074cb3c73 100644
Binary files a/test/image/baselines/gl3d_formatted-text-on-multiple-lines.png and b/test/image/baselines/gl3d_formatted-text-on-multiple-lines.png differ
diff --git a/test/image/baselines/gl3d_ibm-plot.png b/test/image/baselines/gl3d_ibm-plot.png
index 0dd93a17257..d4cfe096a12 100644
Binary files a/test/image/baselines/gl3d_ibm-plot.png and b/test/image/baselines/gl3d_ibm-plot.png differ
diff --git a/test/image/baselines/gl3d_indicator_scatter3d.png b/test/image/baselines/gl3d_indicator_scatter3d.png
index f1f4d7582d5..9202768d345 100644
Binary files a/test/image/baselines/gl3d_indicator_scatter3d.png and b/test/image/baselines/gl3d_indicator_scatter3d.png differ
diff --git a/test/image/baselines/gl3d_isosurface_1single-surface_middle-range.png b/test/image/baselines/gl3d_isosurface_1single-surface_middle-range.png
index 1b1d0b5127a..bdfb911b3b9 100644
Binary files a/test/image/baselines/gl3d_isosurface_1single-surface_middle-range.png and b/test/image/baselines/gl3d_isosurface_1single-surface_middle-range.png differ
diff --git a/test/image/baselines/gl3d_isosurface_2surfaces-checker_spaceframe.png b/test/image/baselines/gl3d_isosurface_2surfaces-checker_spaceframe.png
index b08d97e3743..c679d4e7068 100644
Binary files a/test/image/baselines/gl3d_isosurface_2surfaces-checker_spaceframe.png and b/test/image/baselines/gl3d_isosurface_2surfaces-checker_spaceframe.png differ
diff --git a/test/image/baselines/gl3d_isosurface_5more-surfaces_between-ranges.png b/test/image/baselines/gl3d_isosurface_5more-surfaces_between-ranges.png
index 150b50be4b0..18057c6463c 100644
Binary files a/test/image/baselines/gl3d_isosurface_5more-surfaces_between-ranges.png and b/test/image/baselines/gl3d_isosurface_5more-surfaces_between-ranges.png differ
diff --git a/test/image/baselines/gl3d_isosurface_9more-surfaces_between-ranges_orthographic.png b/test/image/baselines/gl3d_isosurface_9more-surfaces_between-ranges_orthographic.png
index 01e6c5a2238..4b1d4991932 100644
Binary files a/test/image/baselines/gl3d_isosurface_9more-surfaces_between-ranges_orthographic.png and b/test/image/baselines/gl3d_isosurface_9more-surfaces_between-ranges_orthographic.png differ
diff --git a/test/image/baselines/gl3d_isosurface_log-axis_slices_surface-fill.png b/test/image/baselines/gl3d_isosurface_log-axis_slices_surface-fill.png
index f8229b6a1fe..7efcf853452 100644
Binary files a/test/image/baselines/gl3d_isosurface_log-axis_slices_surface-fill.png and b/test/image/baselines/gl3d_isosurface_log-axis_slices_surface-fill.png differ
diff --git a/test/image/baselines/gl3d_isosurface_math.png b/test/image/baselines/gl3d_isosurface_math.png
index a34d1e2fbde..71efc60a7c6 100644
Binary files a/test/image/baselines/gl3d_isosurface_math.png and b/test/image/baselines/gl3d_isosurface_math.png differ
diff --git a/test/image/baselines/gl3d_isosurface_multiple-traces.png b/test/image/baselines/gl3d_isosurface_multiple-traces.png
index 422b8ba406e..3efb0ca54e4 100644
Binary files a/test/image/baselines/gl3d_isosurface_multiple-traces.png and b/test/image/baselines/gl3d_isosurface_multiple-traces.png differ
diff --git a/test/image/baselines/gl3d_isosurface_out_of_iso_range_case.png b/test/image/baselines/gl3d_isosurface_out_of_iso_range_case.png
index 8de35780b8e..e17cfe30dbb 100644
Binary files a/test/image/baselines/gl3d_isosurface_out_of_iso_range_case.png and b/test/image/baselines/gl3d_isosurface_out_of_iso_range_case.png differ
diff --git a/test/image/baselines/gl3d_isosurface_thin_caps_different_dims.png b/test/image/baselines/gl3d_isosurface_thin_caps_different_dims.png
index 86489a42a5b..3645184a022 100644
Binary files a/test/image/baselines/gl3d_isosurface_thin_caps_different_dims.png and b/test/image/baselines/gl3d_isosurface_thin_caps_different_dims.png differ
diff --git a/test/image/baselines/gl3d_isosurface_thin_slices_transparent.png b/test/image/baselines/gl3d_isosurface_thin_slices_transparent.png
index 007cef9eea7..a9dc5583ae5 100644
Binary files a/test/image/baselines/gl3d_isosurface_thin_slices_transparent.png and b/test/image/baselines/gl3d_isosurface_thin_slices_transparent.png differ
diff --git a/test/image/baselines/gl3d_isosurface_transparent.png b/test/image/baselines/gl3d_isosurface_transparent.png
index bfeec812783..c4af2d07ba9 100644
Binary files a/test/image/baselines/gl3d_isosurface_transparent.png and b/test/image/baselines/gl3d_isosurface_transparent.png differ
diff --git a/test/image/baselines/gl3d_isosurface_uneven-scales_ranges_iso-null.png b/test/image/baselines/gl3d_isosurface_uneven-scales_ranges_iso-null.png
index d9009404646..4937ff6cf2e 100644
Binary files a/test/image/baselines/gl3d_isosurface_uneven-scales_ranges_iso-null.png and b/test/image/baselines/gl3d_isosurface_uneven-scales_ranges_iso-null.png differ
diff --git a/test/image/baselines/gl3d_isosurface_with_surface-pattern.png b/test/image/baselines/gl3d_isosurface_with_surface-pattern.png
index 4635e41e1ab..b68fccf2135 100644
Binary files a/test/image/baselines/gl3d_isosurface_with_surface-pattern.png and b/test/image/baselines/gl3d_isosurface_with_surface-pattern.png differ
diff --git a/test/image/baselines/gl3d_isosurface_xycaps_volume_slices.png b/test/image/baselines/gl3d_isosurface_xycaps_volume_slices.png
index 78dbbca4eff..8b8cbde0c96 100644
Binary files a/test/image/baselines/gl3d_isosurface_xycaps_volume_slices.png and b/test/image/baselines/gl3d_isosurface_xycaps_volume_slices.png differ
diff --git a/test/image/baselines/gl3d_line-colorscale-with-markers.png b/test/image/baselines/gl3d_line-colorscale-with-markers.png
index 2a86c805a5e..43a4291ab81 100644
Binary files a/test/image/baselines/gl3d_line-colorscale-with-markers.png and b/test/image/baselines/gl3d_line-colorscale-with-markers.png differ
diff --git a/test/image/baselines/gl3d_line_rectangle_render.png b/test/image/baselines/gl3d_line_rectangle_render.png
index 79cd1df4a5a..f07e9136496 100644
Binary files a/test/image/baselines/gl3d_line_rectangle_render.png and b/test/image/baselines/gl3d_line_rectangle_render.png differ
diff --git a/test/image/baselines/gl3d_log-axis-big.png b/test/image/baselines/gl3d_log-axis-big.png
index e6644ca9889..6e7148fdf60 100644
Binary files a/test/image/baselines/gl3d_log-axis-big.png and b/test/image/baselines/gl3d_log-axis-big.png differ
diff --git a/test/image/baselines/gl3d_log-axis.png b/test/image/baselines/gl3d_log-axis.png
index 1fb6e58a631..15eb45d725e 100644
Binary files a/test/image/baselines/gl3d_log-axis.png and b/test/image/baselines/gl3d_log-axis.png differ
diff --git a/test/image/baselines/gl3d_marker-arrays.png b/test/image/baselines/gl3d_marker-arrays.png
index c1a73af4158..d201a3356bb 100644
Binary files a/test/image/baselines/gl3d_marker-arrays.png and b/test/image/baselines/gl3d_marker-arrays.png differ
diff --git a/test/image/baselines/gl3d_marker-color.png b/test/image/baselines/gl3d_marker-color.png
index 873ea813a5b..d3e60109a28 100644
Binary files a/test/image/baselines/gl3d_marker-color.png and b/test/image/baselines/gl3d_marker-color.png differ
diff --git a/test/image/baselines/gl3d_marker_symbols.png b/test/image/baselines/gl3d_marker_symbols.png
index 3a859d14563..7784595081b 100644
Binary files a/test/image/baselines/gl3d_marker_symbols.png and b/test/image/baselines/gl3d_marker_symbols.png differ
diff --git a/test/image/baselines/gl3d_mesh3d-missing-colors.png b/test/image/baselines/gl3d_mesh3d-missing-colors.png
index b237c2b7627..b9ce4812ee6 100644
Binary files a/test/image/baselines/gl3d_mesh3d-missing-colors.png and b/test/image/baselines/gl3d_mesh3d-missing-colors.png differ
diff --git a/test/image/baselines/gl3d_mesh3d_cell-intensity.png b/test/image/baselines/gl3d_mesh3d_cell-intensity.png
index 6dceac35977..917318405f5 100644
Binary files a/test/image/baselines/gl3d_mesh3d_cell-intensity.png and b/test/image/baselines/gl3d_mesh3d_cell-intensity.png differ
diff --git a/test/image/baselines/gl3d_mesh3d_coloring.png b/test/image/baselines/gl3d_mesh3d_coloring.png
index 2488f365a66..2e921b3b4dd 100644
Binary files a/test/image/baselines/gl3d_mesh3d_coloring.png and b/test/image/baselines/gl3d_mesh3d_coloring.png differ
diff --git a/test/image/baselines/gl3d_mesh3d_enable-alpha-with-rgba-color.png b/test/image/baselines/gl3d_mesh3d_enable-alpha-with-rgba-color.png
index 7c9f9ce8985..c19366e0105 100644
Binary files a/test/image/baselines/gl3d_mesh3d_enable-alpha-with-rgba-color.png and b/test/image/baselines/gl3d_mesh3d_enable-alpha-with-rgba-color.png differ
diff --git a/test/image/baselines/gl3d_mesh3d_surface3d_scatter3d_line3d_error3d_log_reversed_ranges.png b/test/image/baselines/gl3d_mesh3d_surface3d_scatter3d_line3d_error3d_log_reversed_ranges.png
index 75273d96ef4..de1dcd8a0b2 100644
Binary files a/test/image/baselines/gl3d_mesh3d_surface3d_scatter3d_line3d_error3d_log_reversed_ranges.png and b/test/image/baselines/gl3d_mesh3d_surface3d_scatter3d_line3d_error3d_log_reversed_ranges.png differ
diff --git a/test/image/baselines/gl3d_mesh3d_surface3d_scatter3d_orthographic.png b/test/image/baselines/gl3d_mesh3d_surface3d_scatter3d_orthographic.png
index caa8b4da580..388a27d65e7 100644
Binary files a/test/image/baselines/gl3d_mesh3d_surface3d_scatter3d_orthographic.png and b/test/image/baselines/gl3d_mesh3d_surface3d_scatter3d_orthographic.png differ
diff --git a/test/image/baselines/gl3d_mesh3d_surface_lighting.png b/test/image/baselines/gl3d_mesh3d_surface_lighting.png
index e475a233d12..70691e703c3 100644
Binary files a/test/image/baselines/gl3d_mesh3d_surface_lighting.png and b/test/image/baselines/gl3d_mesh3d_surface_lighting.png differ
diff --git a/test/image/baselines/gl3d_mirror-ticks.png b/test/image/baselines/gl3d_mirror-ticks.png
index 9aa2612a0a0..9dbe66bafba 100644
Binary files a/test/image/baselines/gl3d_mirror-ticks.png and b/test/image/baselines/gl3d_mirror-ticks.png differ
diff --git a/test/image/baselines/gl3d_multi-scene.png b/test/image/baselines/gl3d_multi-scene.png
index 94c3a57e785..d453be7e85c 100644
Binary files a/test/image/baselines/gl3d_multi-scene.png and b/test/image/baselines/gl3d_multi-scene.png differ
diff --git a/test/image/baselines/gl3d_multiple-scatter3d-traces.png b/test/image/baselines/gl3d_multiple-scatter3d-traces.png
index b789252f0a1..c257835b197 100644
Binary files a/test/image/baselines/gl3d_multiple-scatter3d-traces.png and b/test/image/baselines/gl3d_multiple-scatter3d-traces.png differ
diff --git a/test/image/baselines/gl3d_nan-holes.png b/test/image/baselines/gl3d_nan-holes.png
index 7ec2de527ed..803e3b871fe 100644
Binary files a/test/image/baselines/gl3d_nan-holes.png and b/test/image/baselines/gl3d_nan-holes.png differ
diff --git a/test/image/baselines/gl3d_opacity-scaling-spikes.png b/test/image/baselines/gl3d_opacity-scaling-spikes.png
index 4f3b24b0639..ba0de6e596e 100644
Binary files a/test/image/baselines/gl3d_opacity-scaling-spikes.png and b/test/image/baselines/gl3d_opacity-scaling-spikes.png differ
diff --git a/test/image/baselines/gl3d_opacity-surface.png b/test/image/baselines/gl3d_opacity-surface.png
index da485ff60a6..ea2a0c0000b 100644
Binary files a/test/image/baselines/gl3d_opacity-surface.png and b/test/image/baselines/gl3d_opacity-surface.png differ
diff --git a/test/image/baselines/gl3d_parametric_surface_data_precision.png b/test/image/baselines/gl3d_parametric_surface_data_precision.png
index d4f2b43a3a1..c853632d2b3 100644
Binary files a/test/image/baselines/gl3d_parametric_surface_data_precision.png and b/test/image/baselines/gl3d_parametric_surface_data_precision.png differ
diff --git a/test/image/baselines/gl3d_perspective_tick_distances.png b/test/image/baselines/gl3d_perspective_tick_distances.png
index 4a6f1eaa40a..1fb21f8b675 100644
Binary files a/test/image/baselines/gl3d_perspective_tick_distances.png and b/test/image/baselines/gl3d_perspective_tick_distances.png differ
diff --git a/test/image/baselines/gl3d_projection-traces.png b/test/image/baselines/gl3d_projection-traces.png
index b0b28b67ae1..b0b6303c735 100644
Binary files a/test/image/baselines/gl3d_projection-traces.png and b/test/image/baselines/gl3d_projection-traces.png differ
diff --git a/test/image/baselines/gl3d_reversescale.png b/test/image/baselines/gl3d_reversescale.png
index c90efd58584..c66597bb424 100644
Binary files a/test/image/baselines/gl3d_reversescale.png and b/test/image/baselines/gl3d_reversescale.png differ
diff --git a/test/image/baselines/gl3d_rgb_dont_accept_alpha_scatter3d.png b/test/image/baselines/gl3d_rgb_dont_accept_alpha_scatter3d.png
index b856cd72efd..d000cb1c434 100644
Binary files a/test/image/baselines/gl3d_rgb_dont_accept_alpha_scatter3d.png and b/test/image/baselines/gl3d_rgb_dont_accept_alpha_scatter3d.png differ
diff --git a/test/image/baselines/gl3d_ribbons.png b/test/image/baselines/gl3d_ribbons.png
index f9083f8357f..a8f67c0da68 100644
Binary files a/test/image/baselines/gl3d_ribbons.png and b/test/image/baselines/gl3d_ribbons.png differ
diff --git a/test/image/baselines/gl3d_scatter-color-array.png b/test/image/baselines/gl3d_scatter-color-array.png
index d871692cf82..94454aa4505 100644
Binary files a/test/image/baselines/gl3d_scatter-color-array.png and b/test/image/baselines/gl3d_scatter-color-array.png differ
diff --git a/test/image/baselines/gl3d_scatter-color-line-gradient.png b/test/image/baselines/gl3d_scatter-color-line-gradient.png
index ace7e97c06e..9b093e5c540 100644
Binary files a/test/image/baselines/gl3d_scatter-color-line-gradient.png and b/test/image/baselines/gl3d_scatter-color-line-gradient.png differ
diff --git a/test/image/baselines/gl3d_scatter-color-mono-and-palette.png b/test/image/baselines/gl3d_scatter-color-mono-and-palette.png
index 23336a2f2e5..fa07288828d 100644
Binary files a/test/image/baselines/gl3d_scatter-color-mono-and-palette.png and b/test/image/baselines/gl3d_scatter-color-mono-and-palette.png differ
diff --git a/test/image/baselines/gl3d_scatter-colorscale-marker.png b/test/image/baselines/gl3d_scatter-colorscale-marker.png
index 1447f230729..f5d0760024a 100644
Binary files a/test/image/baselines/gl3d_scatter-colorscale-marker.png and b/test/image/baselines/gl3d_scatter-colorscale-marker.png differ
diff --git a/test/image/baselines/gl3d_scatter3d-align-texts.png b/test/image/baselines/gl3d_scatter3d-align-texts.png
index 1acdb5a0f70..8fa23817b9c 100644
Binary files a/test/image/baselines/gl3d_scatter3d-align-texts.png and b/test/image/baselines/gl3d_scatter3d-align-texts.png differ
diff --git a/test/image/baselines/gl3d_scatter3d-blank-text.png b/test/image/baselines/gl3d_scatter3d-blank-text.png
index 423eeb6c66b..cf534c705e3 100644
Binary files a/test/image/baselines/gl3d_scatter3d-blank-text.png and b/test/image/baselines/gl3d_scatter3d-blank-text.png differ
diff --git a/test/image/baselines/gl3d_scatter3d-colorscale-marker-and-line.png b/test/image/baselines/gl3d_scatter3d-colorscale-marker-and-line.png
index 6717340a0bb..33ef9549e73 100644
Binary files a/test/image/baselines/gl3d_scatter3d-colorscale-marker-and-line.png and b/test/image/baselines/gl3d_scatter3d-colorscale-marker-and-line.png differ
diff --git a/test/image/baselines/gl3d_scatter3d-colorscale-with-line.png b/test/image/baselines/gl3d_scatter3d-colorscale-with-line.png
index f1db73667d8..505b7e41adb 100644
Binary files a/test/image/baselines/gl3d_scatter3d-colorscale-with-line.png and b/test/image/baselines/gl3d_scatter3d-colorscale-with-line.png differ
diff --git a/test/image/baselines/gl3d_scatter3d-colorscale.png b/test/image/baselines/gl3d_scatter3d-colorscale.png
index f507e15be06..e16fdaca052 100644
Binary files a/test/image/baselines/gl3d_scatter3d-colorscale.png and b/test/image/baselines/gl3d_scatter3d-colorscale.png differ
diff --git a/test/image/baselines/gl3d_scatter3d-connectgaps.png b/test/image/baselines/gl3d_scatter3d-connectgaps.png
index 67326cf8abc..1a09e54dc92 100644
Binary files a/test/image/baselines/gl3d_scatter3d-connectgaps.png and b/test/image/baselines/gl3d_scatter3d-connectgaps.png differ
diff --git a/test/image/baselines/gl3d_scatter3d-different-align-texts.png b/test/image/baselines/gl3d_scatter3d-different-align-texts.png
index f7e9fffd97e..e7620253b9a 100644
Binary files a/test/image/baselines/gl3d_scatter3d-different-align-texts.png and b/test/image/baselines/gl3d_scatter3d-different-align-texts.png differ
diff --git a/test/image/baselines/gl3d_scatter3d-texttemplate.png b/test/image/baselines/gl3d_scatter3d-texttemplate.png
index 7c315fa457e..9825d81e86f 100644
Binary files a/test/image/baselines/gl3d_scatter3d-texttemplate.png and b/test/image/baselines/gl3d_scatter3d-texttemplate.png differ
diff --git a/test/image/baselines/gl3d_scatter3d_errorbars_inherit_color.png b/test/image/baselines/gl3d_scatter3d_errorbars_inherit_color.png
index bac8b49b961..c8da3aa6072 100644
Binary files a/test/image/baselines/gl3d_scatter3d_errorbars_inherit_color.png and b/test/image/baselines/gl3d_scatter3d_errorbars_inherit_color.png differ
diff --git a/test/image/baselines/gl3d_scatter3d_line3d_error3d_enable-alpha-with-rgba-color.png b/test/image/baselines/gl3d_scatter3d_line3d_error3d_enable-alpha-with-rgba-color.png
index affdae1ede8..a7e5b638320 100644
Binary files a/test/image/baselines/gl3d_scatter3d_line3d_error3d_enable-alpha-with-rgba-color.png and b/test/image/baselines/gl3d_scatter3d_line3d_error3d_enable-alpha-with-rgba-color.png differ
diff --git a/test/image/baselines/gl3d_scatter3d_line3d_error3d_transparent-with-zero-alpha.png b/test/image/baselines/gl3d_scatter3d_line3d_error3d_transparent-with-zero-alpha.png
index a37d21d16ce..479430c2248 100644
Binary files a/test/image/baselines/gl3d_scatter3d_line3d_error3d_transparent-with-zero-alpha.png and b/test/image/baselines/gl3d_scatter3d_line3d_error3d_transparent-with-zero-alpha.png differ
diff --git a/test/image/baselines/gl3d_set-ranges.png b/test/image/baselines/gl3d_set-ranges.png
index 534d2b58fa7..6ce0cde3dd7 100644
Binary files a/test/image/baselines/gl3d_set-ranges.png and b/test/image/baselines/gl3d_set-ranges.png differ
diff --git a/test/image/baselines/gl3d_snowden.png b/test/image/baselines/gl3d_snowden.png
index b59d5fd9936..0a96aca1f13 100644
Binary files a/test/image/baselines/gl3d_snowden.png and b/test/image/baselines/gl3d_snowden.png differ
diff --git a/test/image/baselines/gl3d_snowden_altered.png b/test/image/baselines/gl3d_snowden_altered.png
index dee05f0da39..89e20bc901c 100644
Binary files a/test/image/baselines/gl3d_snowden_altered.png and b/test/image/baselines/gl3d_snowden_altered.png differ
diff --git a/test/image/baselines/gl3d_streamtube-first.png b/test/image/baselines/gl3d_streamtube-first.png
index 7fc5cd10442..e301315f85c 100644
Binary files a/test/image/baselines/gl3d_streamtube-first.png and b/test/image/baselines/gl3d_streamtube-first.png differ
diff --git a/test/image/baselines/gl3d_streamtube-simple.png b/test/image/baselines/gl3d_streamtube-simple.png
index 792e40d128a..2848eb62f89 100644
Binary files a/test/image/baselines/gl3d_streamtube-simple.png and b/test/image/baselines/gl3d_streamtube-simple.png differ
diff --git a/test/image/baselines/gl3d_streamtube-thin.png b/test/image/baselines/gl3d_streamtube-thin.png
index 1bbcd8f57f9..74803dc501f 100644
Binary files a/test/image/baselines/gl3d_streamtube-thin.png and b/test/image/baselines/gl3d_streamtube-thin.png differ
diff --git a/test/image/baselines/gl3d_streamtube-wind.png b/test/image/baselines/gl3d_streamtube-wind.png
index f1a80f478cb..31f87c32977 100644
Binary files a/test/image/baselines/gl3d_streamtube-wind.png and b/test/image/baselines/gl3d_streamtube-wind.png differ
diff --git a/test/image/baselines/gl3d_streamtube_reversed_ranges.png b/test/image/baselines/gl3d_streamtube_reversed_ranges.png
index 1438d0b8217..b14a6571df3 100644
Binary files a/test/image/baselines/gl3d_streamtube_reversed_ranges.png and b/test/image/baselines/gl3d_streamtube_reversed_ranges.png differ
diff --git a/test/image/baselines/gl3d_surface-circular-colorscale.png b/test/image/baselines/gl3d_surface-circular-colorscale.png
index 1b830cf4d29..4b038d12a5d 100644
Binary files a/test/image/baselines/gl3d_surface-circular-colorscale.png and b/test/image/baselines/gl3d_surface-circular-colorscale.png differ
diff --git a/test/image/baselines/gl3d_surface-circular-opacityscale.png b/test/image/baselines/gl3d_surface-circular-opacityscale.png
index 519e2b2d5ba..d1e2d7ec331 100644
Binary files a/test/image/baselines/gl3d_surface-circular-opacityscale.png and b/test/image/baselines/gl3d_surface-circular-opacityscale.png differ
diff --git a/test/image/baselines/gl3d_surface-heatmap-treemap_transparent-colorscale.png b/test/image/baselines/gl3d_surface-heatmap-treemap_transparent-colorscale.png
index cc9d130b545..ba040751861 100644
Binary files a/test/image/baselines/gl3d_surface-heatmap-treemap_transparent-colorscale.png and b/test/image/baselines/gl3d_surface-heatmap-treemap_transparent-colorscale.png differ
diff --git a/test/image/baselines/gl3d_surface-lighting.png b/test/image/baselines/gl3d_surface-lighting.png
index e96ceb15983..90ce3be5e88 100644
Binary files a/test/image/baselines/gl3d_surface-lighting.png and b/test/image/baselines/gl3d_surface-lighting.png differ
diff --git a/test/image/baselines/gl3d_surface_after_heatmap.png b/test/image/baselines/gl3d_surface_after_heatmap.png
index e2e84ff714a..5e8a1d26cdb 100644
Binary files a/test/image/baselines/gl3d_surface_after_heatmap.png and b/test/image/baselines/gl3d_surface_after_heatmap.png differ
diff --git a/test/image/baselines/gl3d_surface_connectgaps.png b/test/image/baselines/gl3d_surface_connectgaps.png
index 44135954afd..5657ec49dcd 100644
Binary files a/test/image/baselines/gl3d_surface_connectgaps.png and b/test/image/baselines/gl3d_surface_connectgaps.png differ
diff --git a/test/image/baselines/gl3d_surface_contour_precision.png b/test/image/baselines/gl3d_surface_contour_precision.png
index 3c50c02415d..6f7d5545808 100644
Binary files a/test/image/baselines/gl3d_surface_contour_precision.png and b/test/image/baselines/gl3d_surface_contour_precision.png differ
diff --git a/test/image/baselines/gl3d_surface_contour_start-end-size.png b/test/image/baselines/gl3d_surface_contour_start-end-size.png
index d8920774512..3c2fda694ff 100644
Binary files a/test/image/baselines/gl3d_surface_contour_start-end-size.png and b/test/image/baselines/gl3d_surface_contour_start-end-size.png differ
diff --git a/test/image/baselines/gl3d_surface_intensity.png b/test/image/baselines/gl3d_surface_intensity.png
index 32af7059eb8..223920ff4a9 100644
Binary files a/test/image/baselines/gl3d_surface_intensity.png and b/test/image/baselines/gl3d_surface_intensity.png differ
diff --git a/test/image/baselines/gl3d_surface_opacity-and-opacityscale.png b/test/image/baselines/gl3d_surface_opacity-and-opacityscale.png
index 44ec31db7d3..b272fdc3d86 100644
Binary files a/test/image/baselines/gl3d_surface_opacity-and-opacityscale.png and b/test/image/baselines/gl3d_surface_opacity-and-opacityscale.png differ
diff --git a/test/image/baselines/gl3d_surface_opacity_match_mesh3d.png b/test/image/baselines/gl3d_surface_opacity_match_mesh3d.png
index d1accd86855..fd948434536 100644
Binary files a/test/image/baselines/gl3d_surface_opacity_match_mesh3d.png and b/test/image/baselines/gl3d_surface_opacity_match_mesh3d.png differ
diff --git a/test/image/baselines/gl3d_surface_opacityscale_contour.png b/test/image/baselines/gl3d_surface_opacityscale_contour.png
index fefc260ae8b..f913b8ad843 100644
Binary files a/test/image/baselines/gl3d_surface_opacityscale_contour.png and b/test/image/baselines/gl3d_surface_opacityscale_contour.png differ
diff --git a/test/image/baselines/gl3d_surface_transparent-with-contours.png b/test/image/baselines/gl3d_surface_transparent-with-contours.png
index c8ac6434e5b..9d2bc57f56b 100644
Binary files a/test/image/baselines/gl3d_surface_transparent-with-contours.png and b/test/image/baselines/gl3d_surface_transparent-with-contours.png differ
diff --git a/test/image/baselines/gl3d_tetrahedra.png b/test/image/baselines/gl3d_tetrahedra.png
index 45b56b8f21a..07973272876 100644
Binary files a/test/image/baselines/gl3d_tetrahedra.png and b/test/image/baselines/gl3d_tetrahedra.png differ
diff --git a/test/image/baselines/gl3d_text-weirdness.png b/test/image/baselines/gl3d_text-weirdness.png
index b56e1c1bb90..c5f0ebda0e3 100644
Binary files a/test/image/baselines/gl3d_text-weirdness.png and b/test/image/baselines/gl3d_text-weirdness.png differ
diff --git a/test/image/baselines/gl3d_ticks-milliseconds.png b/test/image/baselines/gl3d_ticks-milliseconds.png
index 6e62532bfc6..dde5a20d6d5 100644
Binary files a/test/image/baselines/gl3d_ticks-milliseconds.png and b/test/image/baselines/gl3d_ticks-milliseconds.png differ
diff --git a/test/image/baselines/gl3d_traces-with-legend.png b/test/image/baselines/gl3d_traces-with-legend.png
index ae50a3b186f..e758b8b00ce 100644
Binary files a/test/image/baselines/gl3d_traces-with-legend.png and b/test/image/baselines/gl3d_traces-with-legend.png differ
diff --git a/test/image/baselines/gl3d_traces-with-opacity.png b/test/image/baselines/gl3d_traces-with-opacity.png
index 1cbd90a9224..47425cd48b6 100644
Binary files a/test/image/baselines/gl3d_traces-with-opacity.png and b/test/image/baselines/gl3d_traces-with-opacity.png differ
diff --git a/test/image/baselines/gl3d_transparent_same-depth.png b/test/image/baselines/gl3d_transparent_same-depth.png
index 510488931ac..d5487e89351 100644
Binary files a/test/image/baselines/gl3d_transparent_same-depth.png and b/test/image/baselines/gl3d_transparent_same-depth.png differ
diff --git a/test/image/baselines/gl3d_triangle.png b/test/image/baselines/gl3d_triangle.png
index d4d97e4eaca..e4d3a7ad821 100644
Binary files a/test/image/baselines/gl3d_triangle.png and b/test/image/baselines/gl3d_triangle.png differ
diff --git a/test/image/baselines/gl3d_volume_airflow.png b/test/image/baselines/gl3d_volume_airflow.png
index ec3ec907f42..98ed6499293 100644
Binary files a/test/image/baselines/gl3d_volume_airflow.png and b/test/image/baselines/gl3d_volume_airflow.png differ
diff --git a/test/image/baselines/gl3d_volume_multiple-traces.png b/test/image/baselines/gl3d_volume_multiple-traces.png
index ebd8f792736..0eceace5ad0 100644
Binary files a/test/image/baselines/gl3d_volume_multiple-traces.png and b/test/image/baselines/gl3d_volume_multiple-traces.png differ
diff --git a/test/image/baselines/gl3d_volume_multiple-traces_one-cube.png b/test/image/baselines/gl3d_volume_multiple-traces_one-cube.png
index 7683c5b33e8..7433a81399b 100644
Binary files a/test/image/baselines/gl3d_volume_multiple-traces_one-cube.png and b/test/image/baselines/gl3d_volume_multiple-traces_one-cube.png differ
diff --git a/test/image/baselines/gl3d_volume_opacityscale-iso.png b/test/image/baselines/gl3d_volume_opacityscale-iso.png
index ff654e2f4a8..ce94bbfc043 100644
Binary files a/test/image/baselines/gl3d_volume_opacityscale-iso.png and b/test/image/baselines/gl3d_volume_opacityscale-iso.png differ
diff --git a/test/image/baselines/gl3d_wire-surface.png b/test/image/baselines/gl3d_wire-surface.png
index 9e8180180bc..d4a9bdca275 100644
Binary files a/test/image/baselines/gl3d_wire-surface.png and b/test/image/baselines/gl3d_wire-surface.png differ
diff --git a/test/image/baselines/gl3d_world-cals.png b/test/image/baselines/gl3d_world-cals.png
index 1d7014d80e6..d6cc82ebaea 100644
Binary files a/test/image/baselines/gl3d_world-cals.png and b/test/image/baselines/gl3d_world-cals.png differ
diff --git a/test/image/baselines/gl3d_xy-defined-ticks.png b/test/image/baselines/gl3d_xy-defined-ticks.png
index 2cac4de436a..04058d4f609 100644
Binary files a/test/image/baselines/gl3d_xy-defined-ticks.png and b/test/image/baselines/gl3d_xy-defined-ticks.png differ
diff --git a/test/image/baselines/gl3d_z-range.png b/test/image/baselines/gl3d_z-range.png
index 7dc9bf6aa28..f29e97c7b8c 100644
Binary files a/test/image/baselines/gl3d_z-range.png and b/test/image/baselines/gl3d_z-range.png differ
diff --git a/test/image/baselines/global_font.png b/test/image/baselines/global_font.png
index 67e89da9600..9c98ade7a14 100644
Binary files a/test/image/baselines/global_font.png and b/test/image/baselines/global_font.png differ
diff --git a/test/image/baselines/glpolar_scatter.png b/test/image/baselines/glpolar_scatter.png
index cc33d09d572..f50feac6c7b 100644
Binary files a/test/image/baselines/glpolar_scatter.png and b/test/image/baselines/glpolar_scatter.png differ
diff --git a/test/image/baselines/glpolar_style.png b/test/image/baselines/glpolar_style.png
index b801bb42a4b..44aa16a20b4 100644
Binary files a/test/image/baselines/glpolar_style.png and b/test/image/baselines/glpolar_style.png differ
diff --git a/test/image/baselines/glpolar_subplots.png b/test/image/baselines/glpolar_subplots.png
index 5da2a6d6709..d76b9dbf65f 100644
Binary files a/test/image/baselines/glpolar_subplots.png and b/test/image/baselines/glpolar_subplots.png differ
diff --git a/test/image/baselines/greens_heatmap.png b/test/image/baselines/greens_heatmap.png
index bad2f220379..b44bcb2538c 100644
Binary files a/test/image/baselines/greens_heatmap.png and b/test/image/baselines/greens_heatmap.png differ
diff --git a/test/image/baselines/greys_heatmap.png b/test/image/baselines/greys_heatmap.png
index 9bf513496ff..770d45ab1ae 100644
Binary files a/test/image/baselines/greys_heatmap.png and b/test/image/baselines/greys_heatmap.png differ
diff --git a/test/image/baselines/grid_subplot_types.png b/test/image/baselines/grid_subplot_types.png
index 0a48da70909..95817e23c78 100644
Binary files a/test/image/baselines/grid_subplot_types.png and b/test/image/baselines/grid_subplot_types.png differ
diff --git a/test/image/baselines/grouped_bar.png b/test/image/baselines/grouped_bar.png
index e9140ee454d..6fb0a61f0f2 100644
Binary files a/test/image/baselines/grouped_bar.png and b/test/image/baselines/grouped_bar.png differ
diff --git a/test/image/baselines/groups-over-matching-axes.png b/test/image/baselines/groups-over-matching-axes.png
index 388188e5a34..13a53a34ed9 100644
Binary files a/test/image/baselines/groups-over-matching-axes.png and b/test/image/baselines/groups-over-matching-axes.png differ
diff --git a/test/image/baselines/heatmap-reverse-autocolorscale.png b/test/image/baselines/heatmap-reverse-autocolorscale.png
index c7dee07c4ac..a0b7766ff4f 100644
Binary files a/test/image/baselines/heatmap-reverse-autocolorscale.png and b/test/image/baselines/heatmap-reverse-autocolorscale.png differ
diff --git a/test/image/baselines/heatmap-with-zero-category.png b/test/image/baselines/heatmap-with-zero-category.png
index 765ce76bd2a..f3ab3f53eac 100644
Binary files a/test/image/baselines/heatmap-with-zero-category.png and b/test/image/baselines/heatmap-with-zero-category.png differ
diff --git a/test/image/baselines/heatmap_autocolor_negative.png b/test/image/baselines/heatmap_autocolor_negative.png
index fab5d5bc8fa..170b27202ec 100644
Binary files a/test/image/baselines/heatmap_autocolor_negative.png and b/test/image/baselines/heatmap_autocolor_negative.png differ
diff --git a/test/image/baselines/heatmap_autocolor_positive.png b/test/image/baselines/heatmap_autocolor_positive.png
index edac6745845..a3e88f3fe17 100644
Binary files a/test/image/baselines/heatmap_autocolor_positive.png and b/test/image/baselines/heatmap_autocolor_positive.png differ
diff --git a/test/image/baselines/heatmap_brick_padding.png b/test/image/baselines/heatmap_brick_padding.png
index d7e9f6e1549..7f40efbd1c5 100644
Binary files a/test/image/baselines/heatmap_brick_padding.png and b/test/image/baselines/heatmap_brick_padding.png differ
diff --git a/test/image/baselines/heatmap_categoryorder.png b/test/image/baselines/heatmap_categoryorder.png
index c4613c59db0..5bf124f2881 100644
Binary files a/test/image/baselines/heatmap_categoryorder.png and b/test/image/baselines/heatmap_categoryorder.png differ
diff --git a/test/image/baselines/heatmap_columnar.png b/test/image/baselines/heatmap_columnar.png
index 65a278a36ee..2c4173ca01c 100644
Binary files a/test/image/baselines/heatmap_columnar.png and b/test/image/baselines/heatmap_columnar.png differ
diff --git a/test/image/baselines/heatmap_contour_irregular_bricks.png b/test/image/baselines/heatmap_contour_irregular_bricks.png
index ac8d1a0a74b..ea0879699f4 100644
Binary files a/test/image/baselines/heatmap_contour_irregular_bricks.png and b/test/image/baselines/heatmap_contour_irregular_bricks.png differ
diff --git a/test/image/baselines/heatmap_legend.png b/test/image/baselines/heatmap_legend.png
index 09128e019bd..f657b52cf17 100644
Binary files a/test/image/baselines/heatmap_legend.png and b/test/image/baselines/heatmap_legend.png differ
diff --git a/test/image/baselines/heatmap_multi-trace.png b/test/image/baselines/heatmap_multi-trace.png
index 11693e76b76..86c2c78ccf3 100644
Binary files a/test/image/baselines/heatmap_multi-trace.png and b/test/image/baselines/heatmap_multi-trace.png differ
diff --git a/test/image/baselines/heatmap_multicategory.png b/test/image/baselines/heatmap_multicategory.png
index f8066bdedbf..044579557ce 100644
Binary files a/test/image/baselines/heatmap_multicategory.png and b/test/image/baselines/heatmap_multicategory.png differ
diff --git a/test/image/baselines/heatmap_shared_categories.png b/test/image/baselines/heatmap_shared_categories.png
index 93d8fb7a4c6..4e19597cd28 100644
Binary files a/test/image/baselines/heatmap_shared_categories.png and b/test/image/baselines/heatmap_shared_categories.png differ
diff --git a/test/image/baselines/heatmap_small_aspect-ratio.png b/test/image/baselines/heatmap_small_aspect-ratio.png
index 847ac23550b..85127ac70c7 100644
Binary files a/test/image/baselines/heatmap_small_aspect-ratio.png and b/test/image/baselines/heatmap_small_aspect-ratio.png differ
diff --git a/test/image/baselines/heatmap_xyz-dates-and-categories.png b/test/image/baselines/heatmap_xyz-dates-and-categories.png
index aaf59fd6ff6..29be7d0fcd5 100644
Binary files a/test/image/baselines/heatmap_xyz-dates-and-categories.png and b/test/image/baselines/heatmap_xyz-dates-and-categories.png differ
diff --git a/test/image/baselines/heatmap_xyz-gaps-on-sides.png b/test/image/baselines/heatmap_xyz-gaps-on-sides.png
index c75a17cb44f..755bc297038 100644
Binary files a/test/image/baselines/heatmap_xyz-gaps-on-sides.png and b/test/image/baselines/heatmap_xyz-gaps-on-sides.png differ
diff --git a/test/image/baselines/hist2d_summed.png b/test/image/baselines/hist2d_summed.png
index 6d65d5d57a5..4b089c86a14 100644
Binary files a/test/image/baselines/hist2d_summed.png and b/test/image/baselines/hist2d_summed.png differ
diff --git a/test/image/baselines/hist_003_to_093.png b/test/image/baselines/hist_003_to_093.png
index 462f1cc64e3..71c27b6d80c 100644
Binary files a/test/image/baselines/hist_003_to_093.png and b/test/image/baselines/hist_003_to_093.png differ
diff --git a/test/image/baselines/hist_003_to_1.png b/test/image/baselines/hist_003_to_1.png
index 5e5b094a2dd..1035ae975f2 100644
Binary files a/test/image/baselines/hist_003_to_1.png and b/test/image/baselines/hist_003_to_1.png differ
diff --git a/test/image/baselines/hist_0_to_093.png b/test/image/baselines/hist_0_to_093.png
index 4715469f776..61bb1ec8f26 100644
Binary files a/test/image/baselines/hist_0_to_093.png and b/test/image/baselines/hist_0_to_093.png differ
diff --git a/test/image/baselines/hist_0_to_1_midpoints.png b/test/image/baselines/hist_0_to_1_midpoints.png
index 5ce60859f17..bdde807524c 100644
Binary files a/test/image/baselines/hist_0_to_1_midpoints.png and b/test/image/baselines/hist_0_to_1_midpoints.png differ
diff --git a/test/image/baselines/hist_all_integer.png b/test/image/baselines/hist_all_integer.png
index 6a995b6b7fc..996aa7f3fb0 100644
Binary files a/test/image/baselines/hist_all_integer.png and b/test/image/baselines/hist_all_integer.png differ
diff --git a/test/image/baselines/hist_all_integer_n50.png b/test/image/baselines/hist_all_integer_n50.png
index 50c27c9349f..2f059f337e7 100644
Binary files a/test/image/baselines/hist_all_integer_n50.png and b/test/image/baselines/hist_all_integer_n50.png differ
diff --git a/test/image/baselines/hist_almost_integer.png b/test/image/baselines/hist_almost_integer.png
index 0d360d10788..8a20fa9553e 100644
Binary files a/test/image/baselines/hist_almost_integer.png and b/test/image/baselines/hist_almost_integer.png differ
diff --git a/test/image/baselines/hist_category.png b/test/image/baselines/hist_category.png
index 7c6a03da963..66619f674da 100644
Binary files a/test/image/baselines/hist_category.png and b/test/image/baselines/hist_category.png differ
diff --git a/test/image/baselines/hist_category_total_ascending.png b/test/image/baselines/hist_category_total_ascending.png
index 18fef9510d9..371470a4b33 100644
Binary files a/test/image/baselines/hist_category_total_ascending.png and b/test/image/baselines/hist_category_total_ascending.png differ
diff --git a/test/image/baselines/hist_cum_stacked.png b/test/image/baselines/hist_cum_stacked.png
index 53297ad99e4..b5253189f97 100644
Binary files a/test/image/baselines/hist_cum_stacked.png and b/test/image/baselines/hist_cum_stacked.png differ
diff --git a/test/image/baselines/hist_grouped.png b/test/image/baselines/hist_grouped.png
index a5d9e71a794..a2d052bd0e2 100644
Binary files a/test/image/baselines/hist_grouped.png and b/test/image/baselines/hist_grouped.png differ
diff --git a/test/image/baselines/hist_multi.png b/test/image/baselines/hist_multi.png
index df9598daf23..c597f5d0906 100644
Binary files a/test/image/baselines/hist_multi.png and b/test/image/baselines/hist_multi.png differ
diff --git a/test/image/baselines/hist_stacked.png b/test/image/baselines/hist_stacked.png
index 72cb9a5ec04..02d78d81828 100644
Binary files a/test/image/baselines/hist_stacked.png and b/test/image/baselines/hist_stacked.png differ
diff --git a/test/image/baselines/hist_summed.png b/test/image/baselines/hist_summed.png
index 9f7a7cb5d15..e3e4f17c008 100644
Binary files a/test/image/baselines/hist_summed.png and b/test/image/baselines/hist_summed.png differ
diff --git a/test/image/baselines/hist_valid_ses.png b/test/image/baselines/hist_valid_ses.png
index 8e71146a3fd..92c843c3fc8 100644
Binary files a/test/image/baselines/hist_valid_ses.png and b/test/image/baselines/hist_valid_ses.png differ
diff --git a/test/image/baselines/hist_valid_ses_y.png b/test/image/baselines/hist_valid_ses_y.png
index 717588940d9..c9a3dd3fd4a 100644
Binary files a/test/image/baselines/hist_valid_ses_y.png and b/test/image/baselines/hist_valid_ses_y.png differ
diff --git a/test/image/baselines/histogram-offsetgroups.png b/test/image/baselines/histogram-offsetgroups.png
index 98ddad4b4e3..7fda2229010 100644
Binary files a/test/image/baselines/histogram-offsetgroups.png and b/test/image/baselines/histogram-offsetgroups.png differ
diff --git a/test/image/baselines/histogram2d_bingroup-coloraxis.png b/test/image/baselines/histogram2d_bingroup-coloraxis.png
index 055da35020d..f2ceb71c5e1 100644
Binary files a/test/image/baselines/histogram2d_bingroup-coloraxis.png and b/test/image/baselines/histogram2d_bingroup-coloraxis.png differ
diff --git a/test/image/baselines/histogram2d_bingroup.png b/test/image/baselines/histogram2d_bingroup.png
index 04d68485d01..31a28020673 100644
Binary files a/test/image/baselines/histogram2d_bingroup.png and b/test/image/baselines/histogram2d_bingroup.png differ
diff --git a/test/image/baselines/histogram2d_legend-colorscale.png b/test/image/baselines/histogram2d_legend-colorscale.png
index 3282b5d70ed..a8fb137dc98 100644
Binary files a/test/image/baselines/histogram2d_legend-colorscale.png and b/test/image/baselines/histogram2d_legend-colorscale.png differ
diff --git a/test/image/baselines/histogram2d_legend.png b/test/image/baselines/histogram2d_legend.png
index 96e54f2a9ba..1c9d618b07b 100644
Binary files a/test/image/baselines/histogram2d_legend.png and b/test/image/baselines/histogram2d_legend.png differ
diff --git a/test/image/baselines/histogram2dcontour_bingroup-coloraxis.png b/test/image/baselines/histogram2dcontour_bingroup-coloraxis.png
index e402f6e1293..79f69be2935 100644
Binary files a/test/image/baselines/histogram2dcontour_bingroup-coloraxis.png and b/test/image/baselines/histogram2dcontour_bingroup-coloraxis.png differ
diff --git a/test/image/baselines/histogram2dcontour_legend-coloraxis.png b/test/image/baselines/histogram2dcontour_legend-coloraxis.png
index 62fc4596ec4..760657620fd 100644
Binary files a/test/image/baselines/histogram2dcontour_legend-coloraxis.png and b/test/image/baselines/histogram2dcontour_legend-coloraxis.png differ
diff --git a/test/image/baselines/histogram_barmode_relative.png b/test/image/baselines/histogram_barmode_relative.png
index 34c8b61bbaf..f8fa0844253 100644
Binary files a/test/image/baselines/histogram_barmode_relative.png and b/test/image/baselines/histogram_barmode_relative.png differ
diff --git a/test/image/baselines/histogram_colorscale.png b/test/image/baselines/histogram_colorscale.png
index 7dda32cbf18..f3c150bbee3 100644
Binary files a/test/image/baselines/histogram_colorscale.png and b/test/image/baselines/histogram_colorscale.png differ
diff --git a/test/image/baselines/histogram_errorbars_inherit_color.png b/test/image/baselines/histogram_errorbars_inherit_color.png
index 368df22c42f..1317b3794eb 100644
Binary files a/test/image/baselines/histogram_errorbars_inherit_color.png and b/test/image/baselines/histogram_errorbars_inherit_color.png differ
diff --git a/test/image/baselines/histogram_overlay-bingroup.png b/test/image/baselines/histogram_overlay-bingroup.png
index 30780d9f6a4..732fb24cdf3 100644
Binary files a/test/image/baselines/histogram_overlay-bingroup.png and b/test/image/baselines/histogram_overlay-bingroup.png differ
diff --git a/test/image/baselines/hists-on-matching-axes.png b/test/image/baselines/hists-on-matching-axes.png
index 9e208c4ae1b..330cca01c36 100644
Binary files a/test/image/baselines/hists-on-matching-axes.png and b/test/image/baselines/hists-on-matching-axes.png differ
diff --git a/test/image/baselines/hot_heatmap.png b/test/image/baselines/hot_heatmap.png
index 584435ca57e..d9193d926d0 100644
Binary files a/test/image/baselines/hot_heatmap.png and b/test/image/baselines/hot_heatmap.png differ
diff --git a/test/image/baselines/icicle_coffee-maxdepth3-all-directions.png b/test/image/baselines/icicle_coffee-maxdepth3-all-directions.png
index dbe66b5aae6..3668ec5eafc 100644
Binary files a/test/image/baselines/icicle_coffee-maxdepth3-all-directions.png and b/test/image/baselines/icicle_coffee-maxdepth3-all-directions.png differ
diff --git a/test/image/baselines/icicle_coffee-maxdepth3.png b/test/image/baselines/icicle_coffee-maxdepth3.png
index 3034d92e5fe..d64b3e3cb49 100644
Binary files a/test/image/baselines/icicle_coffee-maxdepth3.png and b/test/image/baselines/icicle_coffee-maxdepth3.png differ
diff --git a/test/image/baselines/icicle_coffee.png b/test/image/baselines/icicle_coffee.png
index f8eb965d8ec..aa6f3cad9da 100644
Binary files a/test/image/baselines/icicle_coffee.png and b/test/image/baselines/icicle_coffee.png differ
diff --git a/test/image/baselines/icicle_count_branches.png b/test/image/baselines/icicle_count_branches.png
index a2e55960540..c54143c8ddd 100644
Binary files a/test/image/baselines/icicle_count_branches.png and b/test/image/baselines/icicle_count_branches.png differ
diff --git a/test/image/baselines/icicle_first.png b/test/image/baselines/icicle_first.png
index 8266e9d834e..08b33762e96 100644
Binary files a/test/image/baselines/icicle_first.png and b/test/image/baselines/icicle_first.png differ
diff --git a/test/image/baselines/icicle_flare.png b/test/image/baselines/icicle_flare.png
index 44985bebd14..a0fb508c8ab 100644
Binary files a/test/image/baselines/icicle_flare.png and b/test/image/baselines/icicle_flare.png differ
diff --git a/test/image/baselines/icicle_leaf-opacity-level.png b/test/image/baselines/icicle_leaf-opacity-level.png
index d1bae3b10da..542fee898b3 100644
Binary files a/test/image/baselines/icicle_leaf-opacity-level.png and b/test/image/baselines/icicle_leaf-opacity-level.png differ
diff --git a/test/image/baselines/icicle_packages_colorscale_novalue.png b/test/image/baselines/icicle_packages_colorscale_novalue.png
index 91af8476999..f6db29407a2 100644
Binary files a/test/image/baselines/icicle_packages_colorscale_novalue.png and b/test/image/baselines/icicle_packages_colorscale_novalue.png differ
diff --git a/test/image/baselines/icicle_root-sort.png b/test/image/baselines/icicle_root-sort.png
index b8e3ba74e4c..1456648c70f 100644
Binary files a/test/image/baselines/icicle_root-sort.png and b/test/image/baselines/icicle_root-sort.png differ
diff --git a/test/image/baselines/icicle_textposition.png b/test/image/baselines/icicle_textposition.png
index 14b613c2110..1c1fbfc12a8 100644
Binary files a/test/image/baselines/icicle_textposition.png and b/test/image/baselines/icicle_textposition.png differ
diff --git a/test/image/baselines/icicle_values_colorscale.png b/test/image/baselines/icicle_values_colorscale.png
index cd176a8c029..14274686fe9 100644
Binary files a/test/image/baselines/icicle_values_colorscale.png and b/test/image/baselines/icicle_values_colorscale.png differ
diff --git a/test/image/baselines/icicle_with-without_values.png b/test/image/baselines/icicle_with-without_values.png
index d2fc7073c5c..1dca4bcfad0 100644
Binary files a/test/image/baselines/icicle_with-without_values.png and b/test/image/baselines/icicle_with-without_values.png differ
diff --git a/test/image/baselines/icicle_with-without_values_template.png b/test/image/baselines/icicle_with-without_values_template.png
index 30440a17e69..32c22da1266 100644
Binary files a/test/image/baselines/icicle_with-without_values_template.png and b/test/image/baselines/icicle_with-without_values_template.png differ
diff --git a/test/image/baselines/image_adventurer.png b/test/image/baselines/image_adventurer.png
index 06554516fba..dc239941e2e 100644
Binary files a/test/image/baselines/image_adventurer.png and b/test/image/baselines/image_adventurer.png differ
diff --git a/test/image/baselines/image_axis_reverse.png b/test/image/baselines/image_axis_reverse.png
index dc5b4728916..025c76eceec 100644
Binary files a/test/image/baselines/image_axis_reverse.png and b/test/image/baselines/image_axis_reverse.png differ
diff --git a/test/image/baselines/image_axis_type.png b/test/image/baselines/image_axis_type.png
index 27f293a772c..81395225dbb 100644
Binary files a/test/image/baselines/image_axis_type.png and b/test/image/baselines/image_axis_type.png differ
diff --git a/test/image/baselines/image_cat.png b/test/image/baselines/image_cat.png
index fe830284c6f..12d641a6474 100644
Binary files a/test/image/baselines/image_cat.png and b/test/image/baselines/image_cat.png differ
diff --git a/test/image/baselines/image_colormodel.png b/test/image/baselines/image_colormodel.png
index 27dba29c575..f8af0f25641 100644
Binary files a/test/image/baselines/image_colormodel.png and b/test/image/baselines/image_colormodel.png differ
diff --git a/test/image/baselines/image_non_numeric.png b/test/image/baselines/image_non_numeric.png
index 72ce8f1c8cf..dafd235c384 100644
Binary files a/test/image/baselines/image_non_numeric.png and b/test/image/baselines/image_non_numeric.png differ
diff --git a/test/image/baselines/image_opacity.png b/test/image/baselines/image_opacity.png
index 03709f7f963..ecc368fecdf 100644
Binary files a/test/image/baselines/image_opacity.png and b/test/image/baselines/image_opacity.png differ
diff --git a/test/image/baselines/image_source_axis_reverse.png b/test/image/baselines/image_source_axis_reverse.png
index 4c7120a508f..aab64e1ac58 100644
Binary files a/test/image/baselines/image_source_axis_reverse.png and b/test/image/baselines/image_source_axis_reverse.png differ
diff --git a/test/image/baselines/image_source_axis_reverse_zsmooth.png b/test/image/baselines/image_source_axis_reverse_zsmooth.png
index 65e80641631..5693782e785 100644
Binary files a/test/image/baselines/image_source_axis_reverse_zsmooth.png and b/test/image/baselines/image_source_axis_reverse_zsmooth.png differ
diff --git a/test/image/baselines/image_with_gaps.png b/test/image/baselines/image_with_gaps.png
index 26ccbe25fe2..076c6839db5 100644
Binary files a/test/image/baselines/image_with_gaps.png and b/test/image/baselines/image_with_gaps.png differ
diff --git a/test/image/baselines/image_with_heatmap.png b/test/image/baselines/image_with_heatmap.png
index eee620f747a..d64f5103541 100644
Binary files a/test/image/baselines/image_with_heatmap.png and b/test/image/baselines/image_with_heatmap.png differ
diff --git a/test/image/baselines/image_zmin_zmax.png b/test/image/baselines/image_zmin_zmax.png
index 56055fa517e..2c0079f4444 100644
Binary files a/test/image/baselines/image_zmin_zmax.png and b/test/image/baselines/image_zmin_zmax.png differ
diff --git a/test/image/baselines/indicator_attrs.png b/test/image/baselines/indicator_attrs.png
index 9bf47d0aaf7..0c40b5fa21b 100644
Binary files a/test/image/baselines/indicator_attrs.png and b/test/image/baselines/indicator_attrs.png differ
diff --git a/test/image/baselines/indicator_bignumber.png b/test/image/baselines/indicator_bignumber.png
index 59664d8adaa..edad2d6d03c 100644
Binary files a/test/image/baselines/indicator_bignumber.png and b/test/image/baselines/indicator_bignumber.png differ
diff --git a/test/image/baselines/indicator_bullet.png b/test/image/baselines/indicator_bullet.png
index 96aacfca6b0..6eeed350e85 100644
Binary files a/test/image/baselines/indicator_bullet.png and b/test/image/baselines/indicator_bullet.png differ
diff --git a/test/image/baselines/indicator_datacard.png b/test/image/baselines/indicator_datacard.png
index 1dfe98c285b..ed31eb19f1c 100644
Binary files a/test/image/baselines/indicator_datacard.png and b/test/image/baselines/indicator_datacard.png differ
diff --git a/test/image/baselines/indicator_datacard2.png b/test/image/baselines/indicator_datacard2.png
index d932dde31ea..18850319fb7 100644
Binary files a/test/image/baselines/indicator_datacard2.png and b/test/image/baselines/indicator_datacard2.png differ
diff --git a/test/image/baselines/indicator_datacard3.png b/test/image/baselines/indicator_datacard3.png
index a768af52c04..97bea4e1ad8 100644
Binary files a/test/image/baselines/indicator_datacard3.png and b/test/image/baselines/indicator_datacard3.png differ
diff --git a/test/image/baselines/indicator_format_extremes.png b/test/image/baselines/indicator_format_extremes.png
index 456f3301b54..424b3579de4 100644
Binary files a/test/image/baselines/indicator_format_extremes.png and b/test/image/baselines/indicator_format_extremes.png differ
diff --git a/test/image/baselines/indicator_gauge.png b/test/image/baselines/indicator_gauge.png
index 16eb69bcf03..a5c3071cd3f 100644
Binary files a/test/image/baselines/indicator_gauge.png and b/test/image/baselines/indicator_gauge.png differ
diff --git a/test/image/baselines/indicator_grid_template.png b/test/image/baselines/indicator_grid_template.png
index 067d3f42b21..5c7694f5616 100644
Binary files a/test/image/baselines/indicator_grid_template.png and b/test/image/baselines/indicator_grid_template.png differ
diff --git a/test/image/baselines/indicator_scatter.png b/test/image/baselines/indicator_scatter.png
index a43f2929870..fee947ef703 100644
Binary files a/test/image/baselines/indicator_scatter.png and b/test/image/baselines/indicator_scatter.png differ
diff --git a/test/image/baselines/japanese.png b/test/image/baselines/japanese.png
index 3594fa47be8..d716d6bb088 100644
Binary files a/test/image/baselines/japanese.png and b/test/image/baselines/japanese.png differ
diff --git a/test/image/baselines/jet_heatmap.png b/test/image/baselines/jet_heatmap.png
index 885b29c8eaa..b4cb63d723b 100644
Binary files a/test/image/baselines/jet_heatmap.png and b/test/image/baselines/jet_heatmap.png differ
diff --git a/test/image/baselines/labelled_heatmap.png b/test/image/baselines/labelled_heatmap.png
index f39c6852bcb..ae4669bf614 100644
Binary files a/test/image/baselines/labelled_heatmap.png and b/test/image/baselines/labelled_heatmap.png differ
diff --git a/test/image/baselines/layout-colorway.png b/test/image/baselines/layout-colorway.png
index ca88c794ebb..9e7b3c56494 100644
Binary files a/test/image/baselines/layout-colorway.png and b/test/image/baselines/layout-colorway.png differ
diff --git a/test/image/baselines/layout_image.png b/test/image/baselines/layout_image.png
index f09ebdccb2a..51556010c0f 100644
Binary files a/test/image/baselines/layout_image.png and b/test/image/baselines/layout_image.png differ
diff --git a/test/image/baselines/layout_metatext.png b/test/image/baselines/layout_metatext.png
index 471ac67edae..b6ade852549 100644
Binary files a/test/image/baselines/layout_metatext.png and b/test/image/baselines/layout_metatext.png differ
diff --git a/test/image/baselines/legend-constant-itemsizing.png b/test/image/baselines/legend-constant-itemsizing.png
index bcd1c6fc715..c8de39075a1 100644
Binary files a/test/image/baselines/legend-constant-itemsizing.png and b/test/image/baselines/legend-constant-itemsizing.png differ
diff --git a/test/image/baselines/legend_horizontal.png b/test/image/baselines/legend_horizontal.png
index 403ff3053fa..8aa33dd0ec7 100644
Binary files a/test/image/baselines/legend_horizontal.png and b/test/image/baselines/legend_horizontal.png differ
diff --git a/test/image/baselines/legend_horizontal_autowrap.png b/test/image/baselines/legend_horizontal_autowrap.png
index d3d284bf01a..e108f39d57e 100644
Binary files a/test/image/baselines/legend_horizontal_autowrap.png and b/test/image/baselines/legend_horizontal_autowrap.png differ
diff --git a/test/image/baselines/legend_horizontal_bg_fit.png b/test/image/baselines/legend_horizontal_bg_fit.png
index 5e5023d4756..cd981d5db11 100644
Binary files a/test/image/baselines/legend_horizontal_bg_fit.png and b/test/image/baselines/legend_horizontal_bg_fit.png differ
diff --git a/test/image/baselines/legend_horizontal_groups.png b/test/image/baselines/legend_horizontal_groups.png
index facd97b7273..5b829036d2d 100644
Binary files a/test/image/baselines/legend_horizontal_groups.png and b/test/image/baselines/legend_horizontal_groups.png differ
diff --git a/test/image/baselines/legend_horizontal_one_row.png b/test/image/baselines/legend_horizontal_one_row.png
index 4916fc09b63..10c802d75e7 100644
Binary files a/test/image/baselines/legend_horizontal_one_row.png and b/test/image/baselines/legend_horizontal_one_row.png differ
diff --git a/test/image/baselines/legend_horizontal_testwrap.png b/test/image/baselines/legend_horizontal_testwrap.png
index 3098a2451c5..01acbfe2fc6 100644
Binary files a/test/image/baselines/legend_horizontal_testwrap.png and b/test/image/baselines/legend_horizontal_testwrap.png differ
diff --git a/test/image/baselines/legend_horizontal_wrap-alll-lines.png b/test/image/baselines/legend_horizontal_wrap-alll-lines.png
index f4a894d170d..ee4a1e35fc5 100644
Binary files a/test/image/baselines/legend_horizontal_wrap-alll-lines.png and b/test/image/baselines/legend_horizontal_wrap-alll-lines.png differ
diff --git a/test/image/baselines/legend_inside.png b/test/image/baselines/legend_inside.png
index 7484b34e1be..0ce3a093c91 100644
Binary files a/test/image/baselines/legend_inside.png and b/test/image/baselines/legend_inside.png differ
diff --git a/test/image/baselines/legend_itemwidth_dashline.png b/test/image/baselines/legend_itemwidth_dashline.png
index 016e4aaa4d2..88f6abc3cd2 100644
Binary files a/test/image/baselines/legend_itemwidth_dashline.png and b/test/image/baselines/legend_itemwidth_dashline.png differ
diff --git a/test/image/baselines/legend_labels.png b/test/image/baselines/legend_labels.png
index 42cf8be2adc..d11a0efae9e 100644
Binary files a/test/image/baselines/legend_labels.png and b/test/image/baselines/legend_labels.png differ
diff --git a/test/image/baselines/legend_large_margin.png b/test/image/baselines/legend_large_margin.png
index b399c83ac6b..f228241cce0 100644
Binary files a/test/image/baselines/legend_large_margin.png and b/test/image/baselines/legend_large_margin.png differ
diff --git a/test/image/baselines/legend_margin-autoexpand-false.png b/test/image/baselines/legend_margin-autoexpand-false.png
index 48f3ca3bc6b..2c4f7b5202e 100644
Binary files a/test/image/baselines/legend_margin-autoexpand-false.png and b/test/image/baselines/legend_margin-autoexpand-false.png differ
diff --git a/test/image/baselines/legend_mathjax_title_and_items.png b/test/image/baselines/legend_mathjax_title_and_items.png
index 33c39d8f407..39db29193b3 100644
Binary files a/test/image/baselines/legend_mathjax_title_and_items.png and b/test/image/baselines/legend_mathjax_title_and_items.png differ
diff --git a/test/image/baselines/legend_negative_x.png b/test/image/baselines/legend_negative_x.png
index e137976024d..55634950845 100644
Binary files a/test/image/baselines/legend_negative_x.png and b/test/image/baselines/legend_negative_x.png differ
diff --git a/test/image/baselines/legend_negative_x2.png b/test/image/baselines/legend_negative_x2.png
index e5cb3665934..9b28930d980 100644
Binary files a/test/image/baselines/legend_negative_x2.png and b/test/image/baselines/legend_negative_x2.png differ
diff --git a/test/image/baselines/legend_negative_y.png b/test/image/baselines/legend_negative_y.png
index a7517cfeaf9..0e24020fd32 100644
Binary files a/test/image/baselines/legend_negative_y.png and b/test/image/baselines/legend_negative_y.png differ
diff --git a/test/image/baselines/legend_outside.png b/test/image/baselines/legend_outside.png
index f6aa26a33d1..712c85e8ecb 100644
Binary files a/test/image/baselines/legend_outside.png and b/test/image/baselines/legend_outside.png differ
diff --git a/test/image/baselines/legend_scroll.png b/test/image/baselines/legend_scroll.png
index f072e5b5de5..f109846d734 100644
Binary files a/test/image/baselines/legend_scroll.png and b/test/image/baselines/legend_scroll.png differ
diff --git a/test/image/baselines/legend_scroll_beyond_plotarea.png b/test/image/baselines/legend_scroll_beyond_plotarea.png
index c79c8c43c65..393c0b5aa79 100644
Binary files a/test/image/baselines/legend_scroll_beyond_plotarea.png and b/test/image/baselines/legend_scroll_beyond_plotarea.png differ
diff --git a/test/image/baselines/legend_scroll_with_title.png b/test/image/baselines/legend_scroll_with_title.png
index 78816166eeb..7ef13b50b7a 100644
Binary files a/test/image/baselines/legend_scroll_with_title.png and b/test/image/baselines/legend_scroll_with_title.png differ
diff --git a/test/image/baselines/legend_small_horizontal.png b/test/image/baselines/legend_small_horizontal.png
index 925f8396be2..2c416a92fb5 100644
Binary files a/test/image/baselines/legend_small_horizontal.png and b/test/image/baselines/legend_small_horizontal.png differ
diff --git a/test/image/baselines/legend_small_vertical.png b/test/image/baselines/legend_small_vertical.png
index ba4a4deec6a..4d2e815466f 100644
Binary files a/test/image/baselines/legend_small_vertical.png and b/test/image/baselines/legend_small_vertical.png differ
diff --git a/test/image/baselines/legend_style.png b/test/image/baselines/legend_style.png
index c3a4dbf6c8e..e32c34b2f00 100644
Binary files a/test/image/baselines/legend_style.png and b/test/image/baselines/legend_style.png differ
diff --git a/test/image/baselines/legend_valign_middle.png b/test/image/baselines/legend_valign_middle.png
index 9b55d972738..416850f281f 100644
Binary files a/test/image/baselines/legend_valign_middle.png and b/test/image/baselines/legend_valign_middle.png differ
diff --git a/test/image/baselines/legend_valign_top.png b/test/image/baselines/legend_valign_top.png
index 3d74c137b1a..f9ddb33fba2 100644
Binary files a/test/image/baselines/legend_valign_top.png and b/test/image/baselines/legend_valign_top.png differ
diff --git a/test/image/baselines/legend_visibility.png b/test/image/baselines/legend_visibility.png
index 2c5456f8ec0..8065bd8478e 100644
Binary files a/test/image/baselines/legend_visibility.png and b/test/image/baselines/legend_visibility.png differ
diff --git a/test/image/baselines/legend_x_push_margin_constrained.png b/test/image/baselines/legend_x_push_margin_constrained.png
index 56e23a7c5c0..5a6a39dcf78 100644
Binary files a/test/image/baselines/legend_x_push_margin_constrained.png and b/test/image/baselines/legend_x_push_margin_constrained.png differ
diff --git a/test/image/baselines/legendgroup-titles-pie.png b/test/image/baselines/legendgroup-titles-pie.png
index 8decf457411..0df80eda914 100644
Binary files a/test/image/baselines/legendgroup-titles-pie.png and b/test/image/baselines/legendgroup-titles-pie.png differ
diff --git a/test/image/baselines/legendgroup-titles.png b/test/image/baselines/legendgroup-titles.png
index 22087afe5b2..4500347a171 100644
Binary files a/test/image/baselines/legendgroup-titles.png and b/test/image/baselines/legendgroup-titles.png differ
diff --git a/test/image/baselines/legendgroup.png b/test/image/baselines/legendgroup.png
index ff8c3062c59..d4e16ab8547 100644
Binary files a/test/image/baselines/legendgroup.png and b/test/image/baselines/legendgroup.png differ
diff --git a/test/image/baselines/legendgroup_bar-stack.png b/test/image/baselines/legendgroup_bar-stack.png
index 450334f264e..8d9567907d6 100644
Binary files a/test/image/baselines/legendgroup_bar-stack.png and b/test/image/baselines/legendgroup_bar-stack.png differ
diff --git a/test/image/baselines/legendgroup_horizontal_bg_fit.png b/test/image/baselines/legendgroup_horizontal_bg_fit.png
index cb77b06f3c7..0a577fc3387 100644
Binary files a/test/image/baselines/legendgroup_horizontal_bg_fit.png and b/test/image/baselines/legendgroup_horizontal_bg_fit.png differ
diff --git a/test/image/baselines/legendgroup_horizontal_wrapping.png b/test/image/baselines/legendgroup_horizontal_wrapping.png
index e81c0358b5c..3679321b91e 100644
Binary files a/test/image/baselines/legendgroup_horizontal_wrapping.png and b/test/image/baselines/legendgroup_horizontal_wrapping.png differ
diff --git a/test/image/baselines/legendrank.png b/test/image/baselines/legendrank.png
index cbbf279fbca..a25a14c5d87 100644
Binary files a/test/image/baselines/legendrank.png and b/test/image/baselines/legendrank.png differ
diff --git a/test/image/baselines/legendrank2.png b/test/image/baselines/legendrank2.png
index 7601f6a9e39..a7ee6402317 100644
Binary files a/test/image/baselines/legendrank2.png and b/test/image/baselines/legendrank2.png differ
diff --git a/test/image/baselines/line_grid_color.png b/test/image/baselines/line_grid_color.png
index d38e8b39c78..b9c8a2937c9 100644
Binary files a/test/image/baselines/line_grid_color.png and b/test/image/baselines/line_grid_color.png differ
diff --git a/test/image/baselines/line_grid_width.png b/test/image/baselines/line_grid_width.png
index da67496c1a9..82604ce0cd4 100644
Binary files a/test/image/baselines/line_grid_width.png and b/test/image/baselines/line_grid_width.png differ
diff --git a/test/image/baselines/line_scatter.png b/test/image/baselines/line_scatter.png
index 0c089ef261a..227f9fd3c91 100644
Binary files a/test/image/baselines/line_scatter.png and b/test/image/baselines/line_scatter.png differ
diff --git a/test/image/baselines/line_style.png b/test/image/baselines/line_style.png
index 1ca745a9632..a2cced15ef5 100644
Binary files a/test/image/baselines/line_style.png and b/test/image/baselines/line_style.png differ
diff --git a/test/image/baselines/log-axis_no-minor_suffix-prefix.png b/test/image/baselines/log-axis_no-minor_suffix-prefix.png
index 0c3dd72e759..7e92e27a442 100644
Binary files a/test/image/baselines/log-axis_no-minor_suffix-prefix.png and b/test/image/baselines/log-axis_no-minor_suffix-prefix.png differ
diff --git a/test/image/baselines/log_lines_fills.png b/test/image/baselines/log_lines_fills.png
index 9aa6c95be5b..ef5137b261b 100644
Binary files a/test/image/baselines/log_lines_fills.png and b/test/image/baselines/log_lines_fills.png differ
diff --git a/test/image/baselines/long_axis_labels.png b/test/image/baselines/long_axis_labels.png
index 9b205c28322..8af4b4c1c6c 100644
Binary files a/test/image/baselines/long_axis_labels.png and b/test/image/baselines/long_axis_labels.png differ
diff --git a/test/image/baselines/mapbox_0.png b/test/image/baselines/mapbox_0.png
index 4c88dd110ba..fcb6d98db3e 100644
Binary files a/test/image/baselines/mapbox_0.png and b/test/image/baselines/mapbox_0.png differ
diff --git a/test/image/baselines/mapbox_angles.png b/test/image/baselines/mapbox_angles.png
index b5e0d2e3490..5e6bbb5355b 100644
Binary files a/test/image/baselines/mapbox_angles.png and b/test/image/baselines/mapbox_angles.png differ
diff --git a/test/image/baselines/mapbox_bubbles-text.png b/test/image/baselines/mapbox_bubbles-text.png
index e6e7176c2c5..4499f580a5b 100644
Binary files a/test/image/baselines/mapbox_bubbles-text.png and b/test/image/baselines/mapbox_bubbles-text.png differ
diff --git a/test/image/baselines/mapbox_bubbles.png b/test/image/baselines/mapbox_bubbles.png
index 88086416916..7af878af6a7 100644
Binary files a/test/image/baselines/mapbox_bubbles.png and b/test/image/baselines/mapbox_bubbles.png differ
diff --git a/test/image/baselines/mapbox_carto-style.png b/test/image/baselines/mapbox_carto-style.png
index ec67e788736..5e075192c15 100644
Binary files a/test/image/baselines/mapbox_carto-style.png and b/test/image/baselines/mapbox_carto-style.png differ
diff --git a/test/image/baselines/mapbox_choropleth-multiple.png b/test/image/baselines/mapbox_choropleth-multiple.png
index 04597143bd6..0aad2f170ef 100644
Binary files a/test/image/baselines/mapbox_choropleth-multiple.png and b/test/image/baselines/mapbox_choropleth-multiple.png differ
diff --git a/test/image/baselines/mapbox_choropleth-raw-geojson.png b/test/image/baselines/mapbox_choropleth-raw-geojson.png
index ef244d2426f..7be8c6157f7 100644
Binary files a/test/image/baselines/mapbox_choropleth-raw-geojson.png and b/test/image/baselines/mapbox_choropleth-raw-geojson.png differ
diff --git a/test/image/baselines/mapbox_choropleth0-legend.png b/test/image/baselines/mapbox_choropleth0-legend.png
index 84a5517347d..89fadb9b8e6 100644
Binary files a/test/image/baselines/mapbox_choropleth0-legend.png and b/test/image/baselines/mapbox_choropleth0-legend.png differ
diff --git a/test/image/baselines/mapbox_choropleth0.png b/test/image/baselines/mapbox_choropleth0.png
index bbf3c98b136..729b347693a 100644
Binary files a/test/image/baselines/mapbox_choropleth0.png and b/test/image/baselines/mapbox_choropleth0.png differ
diff --git a/test/image/baselines/mapbox_connectgaps.png b/test/image/baselines/mapbox_connectgaps.png
index 526e42dc4b4..3bf4f38c704 100644
Binary files a/test/image/baselines/mapbox_connectgaps.png and b/test/image/baselines/mapbox_connectgaps.png differ
diff --git a/test/image/baselines/mapbox_custom-style.png b/test/image/baselines/mapbox_custom-style.png
index 22568939a40..ef8db778507 100644
Binary files a/test/image/baselines/mapbox_custom-style.png and b/test/image/baselines/mapbox_custom-style.png differ
diff --git a/test/image/baselines/mapbox_density-multiple.png b/test/image/baselines/mapbox_density-multiple.png
index 189489586e9..c0320fa3aa5 100644
Binary files a/test/image/baselines/mapbox_density-multiple.png and b/test/image/baselines/mapbox_density-multiple.png differ
diff --git a/test/image/baselines/mapbox_density-multiple_legend.png b/test/image/baselines/mapbox_density-multiple_legend.png
index 3f7cd2cef55..b22ce481f17 100644
Binary files a/test/image/baselines/mapbox_density-multiple_legend.png and b/test/image/baselines/mapbox_density-multiple_legend.png differ
diff --git a/test/image/baselines/mapbox_density0.png b/test/image/baselines/mapbox_density0.png
index c197ac2df7d..1e0fddd2c98 100644
Binary files a/test/image/baselines/mapbox_density0.png and b/test/image/baselines/mapbox_density0.png differ
diff --git a/test/image/baselines/mapbox_earthquake-density.png b/test/image/baselines/mapbox_earthquake-density.png
index 67cef0269cd..ae5056fb10a 100644
Binary files a/test/image/baselines/mapbox_earthquake-density.png and b/test/image/baselines/mapbox_earthquake-density.png differ
diff --git a/test/image/baselines/mapbox_fill.png b/test/image/baselines/mapbox_fill.png
index 2b4cdccc11a..16b87934081 100644
Binary files a/test/image/baselines/mapbox_fill.png and b/test/image/baselines/mapbox_fill.png differ
diff --git a/test/image/baselines/mapbox_geojson-attributes.png b/test/image/baselines/mapbox_geojson-attributes.png
index 3b87070f6cf..1df4e2ff647 100644
Binary files a/test/image/baselines/mapbox_geojson-attributes.png and b/test/image/baselines/mapbox_geojson-attributes.png differ
diff --git a/test/image/baselines/mapbox_layers.png b/test/image/baselines/mapbox_layers.png
index 15e917d7c7d..4d982f243b3 100644
Binary files a/test/image/baselines/mapbox_layers.png and b/test/image/baselines/mapbox_layers.png differ
diff --git a/test/image/baselines/mapbox_stamen-style.png b/test/image/baselines/mapbox_stamen-style.png
index c83e372205b..3ef56e1e0d1 100644
Binary files a/test/image/baselines/mapbox_stamen-style.png and b/test/image/baselines/mapbox_stamen-style.png differ
diff --git a/test/image/baselines/mapbox_symbol-text.png b/test/image/baselines/mapbox_symbol-text.png
index d51271f8486..3dd8292f383 100644
Binary files a/test/image/baselines/mapbox_symbol-text.png and b/test/image/baselines/mapbox_symbol-text.png differ
diff --git a/test/image/baselines/mapbox_texttemplate.png b/test/image/baselines/mapbox_texttemplate.png
index 799e5fd32a7..2d8ec42649b 100644
Binary files a/test/image/baselines/mapbox_texttemplate.png and b/test/image/baselines/mapbox_texttemplate.png differ
diff --git a/test/image/baselines/marker_colorscale_template.png b/test/image/baselines/marker_colorscale_template.png
index 7bf77870b71..eebc8d1958a 100644
Binary files a/test/image/baselines/marker_colorscale_template.png and b/test/image/baselines/marker_colorscale_template.png differ
diff --git a/test/image/baselines/marker_line_width.png b/test/image/baselines/marker_line_width.png
index 77f6bb59ee0..2be21c5f78e 100644
Binary files a/test/image/baselines/marker_line_width.png and b/test/image/baselines/marker_line_width.png differ
diff --git a/test/image/baselines/marker_symbols.png b/test/image/baselines/marker_symbols.png
index 527a3fa66df..8a902aabd21 100644
Binary files a/test/image/baselines/marker_symbols.png and b/test/image/baselines/marker_symbols.png differ
diff --git a/test/image/baselines/matching-categories.png b/test/image/baselines/matching-categories.png
index 31d2a3c52c7..67fe5238880 100644
Binary files a/test/image/baselines/matching-categories.png and b/test/image/baselines/matching-categories.png differ
diff --git a/test/image/baselines/matching-missing-axes.png b/test/image/baselines/matching-missing-axes.png
index 2d067c0a1cd..12b13bdc748 100644
Binary files a/test/image/baselines/matching-missing-axes.png and b/test/image/baselines/matching-missing-axes.png differ
diff --git a/test/image/baselines/mathjax.png b/test/image/baselines/mathjax.png
index 0894fe81886..b3a18ba4b65 100644
Binary files a/test/image/baselines/mathjax.png and b/test/image/baselines/mathjax.png differ
diff --git a/test/image/baselines/mirror-all-vs-allticks.png b/test/image/baselines/mirror-all-vs-allticks.png
index 29310b03d5c..a05a50f116a 100644
Binary files a/test/image/baselines/mirror-all-vs-allticks.png and b/test/image/baselines/mirror-all-vs-allticks.png differ
diff --git a/test/image/baselines/missing-category-order.png b/test/image/baselines/missing-category-order.png
index de52a7cfc06..46d6a0d1545 100644
Binary files a/test/image/baselines/missing-category-order.png and b/test/image/baselines/missing-category-order.png differ
diff --git a/test/image/baselines/multicategory-inside-ticks.png b/test/image/baselines/multicategory-inside-ticks.png
index d77fa4f1a2f..b80e02f4aa8 100644
Binary files a/test/image/baselines/multicategory-inside-ticks.png and b/test/image/baselines/multicategory-inside-ticks.png differ
diff --git a/test/image/baselines/multicategory-mirror.png b/test/image/baselines/multicategory-mirror.png
index a91338dc6b8..df55dac5820 100644
Binary files a/test/image/baselines/multicategory-mirror.png and b/test/image/baselines/multicategory-mirror.png differ
diff --git a/test/image/baselines/multicategory-sorting.png b/test/image/baselines/multicategory-sorting.png
index 190d0a09e2a..a414d5120d2 100644
Binary files a/test/image/baselines/multicategory-sorting.png and b/test/image/baselines/multicategory-sorting.png differ
diff --git a/test/image/baselines/multicategory-y.png b/test/image/baselines/multicategory-y.png
index 05701726e9c..bb714a819f5 100644
Binary files a/test/image/baselines/multicategory-y.png and b/test/image/baselines/multicategory-y.png differ
diff --git a/test/image/baselines/multicategory.png b/test/image/baselines/multicategory.png
index 22962eb669f..c81db88d446 100644
Binary files a/test/image/baselines/multicategory.png and b/test/image/baselines/multicategory.png differ
diff --git a/test/image/baselines/multicategory2.png b/test/image/baselines/multicategory2.png
index 03f9f4890c0..099371260da 100644
Binary files a/test/image/baselines/multicategory2.png and b/test/image/baselines/multicategory2.png differ
diff --git a/test/image/baselines/multicategory_histograms.png b/test/image/baselines/multicategory_histograms.png
index 8a6b583fc41..aceced2218c 100644
Binary files a/test/image/baselines/multicategory_histograms.png and b/test/image/baselines/multicategory_histograms.png differ
diff --git a/test/image/baselines/multiple_axes_double.png b/test/image/baselines/multiple_axes_double.png
index 881054c41fc..5b564459925 100644
Binary files a/test/image/baselines/multiple_axes_double.png and b/test/image/baselines/multiple_axes_double.png differ
diff --git a/test/image/baselines/multiple_axes_multiple.png b/test/image/baselines/multiple_axes_multiple.png
index d079a9c597d..9e6113fb9c3 100644
Binary files a/test/image/baselines/multiple_axes_multiple.png and b/test/image/baselines/multiple_axes_multiple.png differ
diff --git a/test/image/baselines/multiple_subplots.png b/test/image/baselines/multiple_subplots.png
index 758c5a99ff2..62b5b225b67 100644
Binary files a/test/image/baselines/multiple_subplots.png and b/test/image/baselines/multiple_subplots.png differ
diff --git a/test/image/baselines/ohlc_first.png b/test/image/baselines/ohlc_first.png
index 8615422ad20..4516bbdf9c9 100644
Binary files a/test/image/baselines/ohlc_first.png and b/test/image/baselines/ohlc_first.png differ
diff --git a/test/image/baselines/overlaying-axis-lines.png b/test/image/baselines/overlaying-axis-lines.png
index 1f9bb7017ac..71aede7c553 100644
Binary files a/test/image/baselines/overlaying-axis-lines.png and b/test/image/baselines/overlaying-axis-lines.png differ
diff --git a/test/image/baselines/parcats_bad-displayindex.png b/test/image/baselines/parcats_bad-displayindex.png
index 7d0dce4a9f5..0d8ef20b4b3 100644
Binary files a/test/image/baselines/parcats_bad-displayindex.png and b/test/image/baselines/parcats_bad-displayindex.png differ
diff --git a/test/image/baselines/parcats_basic.png b/test/image/baselines/parcats_basic.png
index 604de02b48d..e57c98d76b6 100644
Binary files a/test/image/baselines/parcats_basic.png and b/test/image/baselines/parcats_basic.png differ
diff --git a/test/image/baselines/parcats_basic_freeform.png b/test/image/baselines/parcats_basic_freeform.png
index 604de02b48d..e57c98d76b6 100644
Binary files a/test/image/baselines/parcats_basic_freeform.png and b/test/image/baselines/parcats_basic_freeform.png differ
diff --git a/test/image/baselines/parcats_bundled.png b/test/image/baselines/parcats_bundled.png
index f4051d192a5..859f0a98341 100644
Binary files a/test/image/baselines/parcats_bundled.png and b/test/image/baselines/parcats_bundled.png differ
diff --git a/test/image/baselines/parcats_bundled_reversed.png b/test/image/baselines/parcats_bundled_reversed.png
index 9a84930b407..377d7d63a1f 100644
Binary files a/test/image/baselines/parcats_bundled_reversed.png and b/test/image/baselines/parcats_bundled_reversed.png differ
diff --git a/test/image/baselines/parcats_colorscale_template.png b/test/image/baselines/parcats_colorscale_template.png
index 12046eb17f8..9671eba0312 100644
Binary files a/test/image/baselines/parcats_colorscale_template.png and b/test/image/baselines/parcats_colorscale_template.png differ
diff --git a/test/image/baselines/parcats_dark.png b/test/image/baselines/parcats_dark.png
index f012cc7d5bd..2f2c6eea782 100644
Binary files a/test/image/baselines/parcats_dark.png and b/test/image/baselines/parcats_dark.png differ
diff --git a/test/image/baselines/parcats_grid_subplots.png b/test/image/baselines/parcats_grid_subplots.png
index 4527b3628ff..ed385b2034b 100644
Binary files a/test/image/baselines/parcats_grid_subplots.png and b/test/image/baselines/parcats_grid_subplots.png differ
diff --git a/test/image/baselines/parcats_hoveron_color.png b/test/image/baselines/parcats_hoveron_color.png
index 43f7bb1c5df..a60ab00cdad 100644
Binary files a/test/image/baselines/parcats_hoveron_color.png and b/test/image/baselines/parcats_hoveron_color.png differ
diff --git a/test/image/baselines/parcats_hoveron_dimension.png b/test/image/baselines/parcats_hoveron_dimension.png
index 8512d295c8a..c745b6c4a53 100644
Binary files a/test/image/baselines/parcats_hoveron_dimension.png and b/test/image/baselines/parcats_hoveron_dimension.png differ
diff --git a/test/image/baselines/parcats_invisible_dimension.png b/test/image/baselines/parcats_invisible_dimension.png
index 78923b01211..dda96c2d63c 100644
Binary files a/test/image/baselines/parcats_invisible_dimension.png and b/test/image/baselines/parcats_invisible_dimension.png differ
diff --git a/test/image/baselines/parcats_numeric_sort.png b/test/image/baselines/parcats_numeric_sort.png
index 0701334d71c..ed2dd3e06df 100644
Binary files a/test/image/baselines/parcats_numeric_sort.png and b/test/image/baselines/parcats_numeric_sort.png differ
diff --git a/test/image/baselines/parcats_reordered.png b/test/image/baselines/parcats_reordered.png
index 4b4f51ec25c..994a8f94414 100644
Binary files a/test/image/baselines/parcats_reordered.png and b/test/image/baselines/parcats_reordered.png differ
diff --git a/test/image/baselines/parcats_unbundled.png b/test/image/baselines/parcats_unbundled.png
index 43f7bb1c5df..a60ab00cdad 100644
Binary files a/test/image/baselines/parcats_unbundled.png and b/test/image/baselines/parcats_unbundled.png differ
diff --git a/test/image/baselines/pattern_bars.png b/test/image/baselines/pattern_bars.png
index 48265b159ae..3ec295b5941 100644
Binary files a/test/image/baselines/pattern_bars.png and b/test/image/baselines/pattern_bars.png differ
diff --git a/test/image/baselines/pattern_fgcolor_overlay_fillmode.png b/test/image/baselines/pattern_fgcolor_overlay_fillmode.png
index a38e3e8a19f..af59862d58a 100644
Binary files a/test/image/baselines/pattern_fgcolor_overlay_fillmode.png and b/test/image/baselines/pattern_fgcolor_overlay_fillmode.png differ
diff --git a/test/image/baselines/pattern_legend_variations.png b/test/image/baselines/pattern_legend_variations.png
index 55c0cc29a37..8c3e0b9a740 100644
Binary files a/test/image/baselines/pattern_legend_variations.png and b/test/image/baselines/pattern_legend_variations.png differ
diff --git a/test/image/baselines/pattern_with_colorscale.png b/test/image/baselines/pattern_with_colorscale.png
index 98109dee60e..2c1a545997c 100644
Binary files a/test/image/baselines/pattern_with_colorscale.png and b/test/image/baselines/pattern_with_colorscale.png differ
diff --git a/test/image/baselines/percent_error_bar.png b/test/image/baselines/percent_error_bar.png
index 93c9fb3760c..d2825c09000 100644
Binary files a/test/image/baselines/percent_error_bar.png and b/test/image/baselines/percent_error_bar.png differ
diff --git a/test/image/baselines/period_positioning.png b/test/image/baselines/period_positioning.png
index 69cacd47bb3..e1f5a1003f3 100644
Binary files a/test/image/baselines/period_positioning.png and b/test/image/baselines/period_positioning.png differ
diff --git a/test/image/baselines/period_positioning2.png b/test/image/baselines/period_positioning2.png
index 71917ac6b72..f4d0b2b90a6 100644
Binary files a/test/image/baselines/period_positioning2.png and b/test/image/baselines/period_positioning2.png differ
diff --git a/test/image/baselines/period_positioning3.png b/test/image/baselines/period_positioning3.png
index 82f414d893b..acf1b899c2b 100644
Binary files a/test/image/baselines/period_positioning3.png and b/test/image/baselines/period_positioning3.png differ
diff --git a/test/image/baselines/period_positioning4.png b/test/image/baselines/period_positioning4.png
index f885f15c384..4c7b7f9af53 100644
Binary files a/test/image/baselines/period_positioning4.png and b/test/image/baselines/period_positioning4.png differ
diff --git a/test/image/baselines/period_positioning5.png b/test/image/baselines/period_positioning5.png
index ed5326bda35..d34286f3bb8 100644
Binary files a/test/image/baselines/period_positioning5.png and b/test/image/baselines/period_positioning5.png differ
diff --git a/test/image/baselines/period_positioning6.png b/test/image/baselines/period_positioning6.png
index 0a60dc74996..2b840a02a90 100644
Binary files a/test/image/baselines/period_positioning6.png and b/test/image/baselines/period_positioning6.png differ
diff --git a/test/image/baselines/period_positioning7.png b/test/image/baselines/period_positioning7.png
index 0192fe0aa8b..cee5024b546 100644
Binary files a/test/image/baselines/period_positioning7.png and b/test/image/baselines/period_positioning7.png differ
diff --git a/test/image/baselines/period_positioning8.png b/test/image/baselines/period_positioning8.png
index 80a692e441c..6a1e4fd2d41 100644
Binary files a/test/image/baselines/period_positioning8.png and b/test/image/baselines/period_positioning8.png differ
diff --git a/test/image/baselines/period_positioning9.png b/test/image/baselines/period_positioning9.png
index 98834749e3d..718cab30074 100644
Binary files a/test/image/baselines/period_positioning9.png and b/test/image/baselines/period_positioning9.png differ
diff --git a/test/image/baselines/picnic_heatmap.png b/test/image/baselines/picnic_heatmap.png
index 7f954f5cfb9..a5835a21af3 100644
Binary files a/test/image/baselines/picnic_heatmap.png and b/test/image/baselines/picnic_heatmap.png differ
diff --git a/test/image/baselines/pie_aggregated.png b/test/image/baselines/pie_aggregated.png
index c8e29a1e90e..6ac30a52f2f 100644
Binary files a/test/image/baselines/pie_aggregated.png and b/test/image/baselines/pie_aggregated.png differ
diff --git a/test/image/baselines/pie_automargin-margin0.png b/test/image/baselines/pie_automargin-margin0.png
index 5d357496836..08b11eb6755 100644
Binary files a/test/image/baselines/pie_automargin-margin0.png and b/test/image/baselines/pie_automargin-margin0.png differ
diff --git a/test/image/baselines/pie_automargin.png b/test/image/baselines/pie_automargin.png
index 24f9c14e8fc..d58ffa10bb6 100644
Binary files a/test/image/baselines/pie_automargin.png and b/test/image/baselines/pie_automargin.png differ
diff --git a/test/image/baselines/pie_fonts.png b/test/image/baselines/pie_fonts.png
index c1e2422d8c8..d20c42394e4 100644
Binary files a/test/image/baselines/pie_fonts.png and b/test/image/baselines/pie_fonts.png differ
diff --git a/test/image/baselines/pie_inside-text-orientation.png b/test/image/baselines/pie_inside-text-orientation.png
index f9e49187661..1ccf61c91fd 100644
Binary files a/test/image/baselines/pie_inside-text-orientation.png and b/test/image/baselines/pie_inside-text-orientation.png differ
diff --git a/test/image/baselines/pie_label0_dlabel.png b/test/image/baselines/pie_label0_dlabel.png
index 41bd57b5c82..226a72a4be5 100644
Binary files a/test/image/baselines/pie_label0_dlabel.png and b/test/image/baselines/pie_label0_dlabel.png differ
diff --git a/test/image/baselines/pie_labels_colors_text.png b/test/image/baselines/pie_labels_colors_text.png
index f338d0a468b..a423ad88131 100644
Binary files a/test/image/baselines/pie_labels_colors_text.png and b/test/image/baselines/pie_labels_colors_text.png differ
diff --git a/test/image/baselines/pie_legend_line_color_array.png b/test/image/baselines/pie_legend_line_color_array.png
index b8a60e30188..da1124de640 100644
Binary files a/test/image/baselines/pie_legend_line_color_array.png and b/test/image/baselines/pie_legend_line_color_array.png differ
diff --git a/test/image/baselines/pie_scale_textpos_hideslices.png b/test/image/baselines/pie_scale_textpos_hideslices.png
index 780a00437a7..5ff341e9601 100644
Binary files a/test/image/baselines/pie_scale_textpos_hideslices.png and b/test/image/baselines/pie_scale_textpos_hideslices.png differ
diff --git a/test/image/baselines/pie_simple.png b/test/image/baselines/pie_simple.png
index 272f4d74d11..5a737f77212 100644
Binary files a/test/image/baselines/pie_simple.png and b/test/image/baselines/pie_simple.png differ
diff --git a/test/image/baselines/pie_sort_direction.png b/test/image/baselines/pie_sort_direction.png
index 833c7ec566e..a34ade96e91 100644
Binary files a/test/image/baselines/pie_sort_direction.png and b/test/image/baselines/pie_sort_direction.png differ
diff --git a/test/image/baselines/pie_style.png b/test/image/baselines/pie_style.png
index a870ed1c8cd..952ae5c2cda 100644
Binary files a/test/image/baselines/pie_style.png and b/test/image/baselines/pie_style.png differ
diff --git a/test/image/baselines/pie_style_arrays.png b/test/image/baselines/pie_style_arrays.png
index d12234b4590..4722dc5d5ce 100644
Binary files a/test/image/baselines/pie_style_arrays.png and b/test/image/baselines/pie_style_arrays.png differ
diff --git a/test/image/baselines/pie_textpad_radial.png b/test/image/baselines/pie_textpad_radial.png
index 4f0686bc3e7..20733b24acc 100644
Binary files a/test/image/baselines/pie_textpad_radial.png and b/test/image/baselines/pie_textpad_radial.png differ
diff --git a/test/image/baselines/pie_textpad_tangential.png b/test/image/baselines/pie_textpad_tangential.png
index fa9b8ed4658..66b96d2ed40 100644
Binary files a/test/image/baselines/pie_textpad_tangential.png and b/test/image/baselines/pie_textpad_tangential.png differ
diff --git a/test/image/baselines/pie_title_groupscale.png b/test/image/baselines/pie_title_groupscale.png
index 26ef09139f0..d9ae577c773 100644
Binary files a/test/image/baselines/pie_title_groupscale.png and b/test/image/baselines/pie_title_groupscale.png differ
diff --git a/test/image/baselines/pie_title_middle_center.png b/test/image/baselines/pie_title_middle_center.png
index 6018a07e748..88dec57178d 100644
Binary files a/test/image/baselines/pie_title_middle_center.png and b/test/image/baselines/pie_title_middle_center.png differ
diff --git a/test/image/baselines/pie_title_middle_center_multiline.png b/test/image/baselines/pie_title_middle_center_multiline.png
index 2b79c7de962..6cb8fc4943b 100644
Binary files a/test/image/baselines/pie_title_middle_center_multiline.png and b/test/image/baselines/pie_title_middle_center_multiline.png differ
diff --git a/test/image/baselines/pie_title_multiple.png b/test/image/baselines/pie_title_multiple.png
index 388c923d820..2d5cf0234d2 100644
Binary files a/test/image/baselines/pie_title_multiple.png and b/test/image/baselines/pie_title_multiple.png differ
diff --git a/test/image/baselines/pie_title_pull.png b/test/image/baselines/pie_title_pull.png
index ae6044d147a..e26230453d0 100644
Binary files a/test/image/baselines/pie_title_pull.png and b/test/image/baselines/pie_title_pull.png differ
diff --git a/test/image/baselines/pie_title_subscript.png b/test/image/baselines/pie_title_subscript.png
index 04fb7b3e0df..f3dc00704d5 100644
Binary files a/test/image/baselines/pie_title_subscript.png and b/test/image/baselines/pie_title_subscript.png differ
diff --git a/test/image/baselines/pie_title_variations.png b/test/image/baselines/pie_title_variations.png
index abc8877c0af..7fe49d1569e 100644
Binary files a/test/image/baselines/pie_title_variations.png and b/test/image/baselines/pie_title_variations.png differ
diff --git a/test/image/baselines/plot_types.png b/test/image/baselines/plot_types.png
index 55c66598f52..85784356e70 100644
Binary files a/test/image/baselines/plot_types.png and b/test/image/baselines/plot_types.png differ
diff --git a/test/image/baselines/point-selection.png b/test/image/baselines/point-selection.png
index 74fd3e1b3b0..62aedb925f3 100644
Binary files a/test/image/baselines/point-selection.png and b/test/image/baselines/point-selection.png differ
diff --git a/test/image/baselines/point-selection2.png b/test/image/baselines/point-selection2.png
index 508daf9b951..706916de272 100644
Binary files a/test/image/baselines/point-selection2.png and b/test/image/baselines/point-selection2.png differ
diff --git a/test/image/baselines/polar_bar-overlay.png b/test/image/baselines/polar_bar-overlay.png
index ee82a4e6150..03e4a6ccb3e 100644
Binary files a/test/image/baselines/polar_bar-overlay.png and b/test/image/baselines/polar_bar-overlay.png differ
diff --git a/test/image/baselines/polar_bar-stacked.png b/test/image/baselines/polar_bar-stacked.png
index e40a4d8c769..363a9785e1b 100644
Binary files a/test/image/baselines/polar_bar-stacked.png and b/test/image/baselines/polar_bar-stacked.png differ
diff --git a/test/image/baselines/polar_bar-width-base-offset.png b/test/image/baselines/polar_bar-width-base-offset.png
index c475f78e130..8344c0f03f8 100644
Binary files a/test/image/baselines/polar_bar-width-base-offset.png and b/test/image/baselines/polar_bar-width-base-offset.png differ
diff --git a/test/image/baselines/polar_blank.png b/test/image/baselines/polar_blank.png
index eb443cf4413..1b953a2b7de 100644
Binary files a/test/image/baselines/polar_blank.png and b/test/image/baselines/polar_blank.png differ
diff --git a/test/image/baselines/polar_categories.png b/test/image/baselines/polar_categories.png
index 98ac47fc481..1725ac3d1ba 100644
Binary files a/test/image/baselines/polar_categories.png and b/test/image/baselines/polar_categories.png differ
diff --git a/test/image/baselines/polar_dates.png b/test/image/baselines/polar_dates.png
index 44550e91f01..3c90e449f47 100644
Binary files a/test/image/baselines/polar_dates.png and b/test/image/baselines/polar_dates.png differ
diff --git a/test/image/baselines/polar_direction.png b/test/image/baselines/polar_direction.png
index 48c9e9eff40..17620d34c69 100644
Binary files a/test/image/baselines/polar_direction.png and b/test/image/baselines/polar_direction.png differ
diff --git a/test/image/baselines/polar_fills.png b/test/image/baselines/polar_fills.png
index b5bae8bda39..4f4fe0e66df 100644
Binary files a/test/image/baselines/polar_fills.png and b/test/image/baselines/polar_fills.png differ
diff --git a/test/image/baselines/polar_funky-bars.png b/test/image/baselines/polar_funky-bars.png
index 6bf935a7fd4..34f29320ce9 100644
Binary files a/test/image/baselines/polar_funky-bars.png and b/test/image/baselines/polar_funky-bars.png differ
diff --git a/test/image/baselines/polar_hole.png b/test/image/baselines/polar_hole.png
index bb85288c464..8eb516ba193 100644
Binary files a/test/image/baselines/polar_hole.png and b/test/image/baselines/polar_hole.png differ
diff --git a/test/image/baselines/polar_line.png b/test/image/baselines/polar_line.png
index 21a44316071..f3a3e7acf6c 100644
Binary files a/test/image/baselines/polar_line.png and b/test/image/baselines/polar_line.png differ
diff --git a/test/image/baselines/polar_long-category-angular-labels.png b/test/image/baselines/polar_long-category-angular-labels.png
index 0c41cac2fd8..c3c869f77fe 100644
Binary files a/test/image/baselines/polar_long-category-angular-labels.png and b/test/image/baselines/polar_long-category-angular-labels.png differ
diff --git a/test/image/baselines/polar_polygon-bars.png b/test/image/baselines/polar_polygon-bars.png
index 970a1f198a7..7d16c25b468 100644
Binary files a/test/image/baselines/polar_polygon-bars.png and b/test/image/baselines/polar_polygon-bars.png differ
diff --git a/test/image/baselines/polar_polygon-grids.png b/test/image/baselines/polar_polygon-grids.png
index 0e6edffef8a..a6422ec91b7 100644
Binary files a/test/image/baselines/polar_polygon-grids.png and b/test/image/baselines/polar_polygon-grids.png differ
diff --git a/test/image/baselines/polar_r0dr-theta0dtheta.png b/test/image/baselines/polar_r0dr-theta0dtheta.png
index cb346963beb..549bbc6289f 100644
Binary files a/test/image/baselines/polar_r0dr-theta0dtheta.png and b/test/image/baselines/polar_r0dr-theta0dtheta.png differ
diff --git a/test/image/baselines/polar_radial-range.png b/test/image/baselines/polar_radial-range.png
index 53d424c1b28..90e426181c1 100644
Binary files a/test/image/baselines/polar_radial-range.png and b/test/image/baselines/polar_radial-range.png differ
diff --git a/test/image/baselines/polar_scatter.png b/test/image/baselines/polar_scatter.png
index 6213a188486..b44588fa284 100644
Binary files a/test/image/baselines/polar_scatter.png and b/test/image/baselines/polar_scatter.png differ
diff --git a/test/image/baselines/polar_sector.png b/test/image/baselines/polar_sector.png
index d06c4ff01e3..2f93b249c2f 100644
Binary files a/test/image/baselines/polar_sector.png and b/test/image/baselines/polar_sector.png differ
diff --git a/test/image/baselines/polar_subplots.png b/test/image/baselines/polar_subplots.png
index 88f447dc82c..c0aaea7ac56 100644
Binary files a/test/image/baselines/polar_subplots.png and b/test/image/baselines/polar_subplots.png differ
diff --git a/test/image/baselines/polar_template.png b/test/image/baselines/polar_template.png
index 2888477baa7..de96ab4afac 100644
Binary files a/test/image/baselines/polar_template.png and b/test/image/baselines/polar_template.png differ
diff --git a/test/image/baselines/polar_ticks.png b/test/image/baselines/polar_ticks.png
index 5dbdedc6733..277314ced35 100644
Binary files a/test/image/baselines/polar_ticks.png and b/test/image/baselines/polar_ticks.png differ
diff --git a/test/image/baselines/polar_transforms.png b/test/image/baselines/polar_transforms.png
index e4ec9665e9b..45bacfcf856 100644
Binary files a/test/image/baselines/polar_transforms.png and b/test/image/baselines/polar_transforms.png differ
diff --git a/test/image/baselines/polar_wind-rose.png b/test/image/baselines/polar_wind-rose.png
index f620514b359..61e2574f2c0 100644
Binary files a/test/image/baselines/polar_wind-rose.png and b/test/image/baselines/polar_wind-rose.png differ
diff --git a/test/image/baselines/portland_heatmap.png b/test/image/baselines/portland_heatmap.png
index 62f9fec2572..f5cabd63234 100644
Binary files a/test/image/baselines/portland_heatmap.png and b/test/image/baselines/portland_heatmap.png differ
diff --git a/test/image/baselines/pseudo_html.png b/test/image/baselines/pseudo_html.png
index a3b74e18888..9679fcdca04 100644
Binary files a/test/image/baselines/pseudo_html.png and b/test/image/baselines/pseudo_html.png differ
diff --git a/test/image/baselines/range_selector.png b/test/image/baselines/range_selector.png
index 523dc5d3ffe..3f99fcce8ce 100644
Binary files a/test/image/baselines/range_selector.png and b/test/image/baselines/range_selector.png differ
diff --git a/test/image/baselines/range_selector_style.png b/test/image/baselines/range_selector_style.png
index 7bc630a406e..577cf32d7f5 100644
Binary files a/test/image/baselines/range_selector_style.png and b/test/image/baselines/range_selector_style.png differ
diff --git a/test/image/baselines/range_slider.png b/test/image/baselines/range_slider.png
index 0708cf613b2..c191ed23bf9 100644
Binary files a/test/image/baselines/range_slider.png and b/test/image/baselines/range_slider.png differ
diff --git a/test/image/baselines/range_slider_axes_double.png b/test/image/baselines/range_slider_axes_double.png
index e229362757a..1f3e61e90c2 100644
Binary files a/test/image/baselines/range_slider_axes_double.png and b/test/image/baselines/range_slider_axes_double.png differ
diff --git a/test/image/baselines/range_slider_axes_stacked.png b/test/image/baselines/range_slider_axes_stacked.png
index fcf3de9e668..b50161d3615 100644
Binary files a/test/image/baselines/range_slider_axes_stacked.png and b/test/image/baselines/range_slider_axes_stacked.png differ
diff --git a/test/image/baselines/range_slider_box.png b/test/image/baselines/range_slider_box.png
index 261eda9eaab..29ff22ff583 100644
Binary files a/test/image/baselines/range_slider_box.png and b/test/image/baselines/range_slider_box.png differ
diff --git a/test/image/baselines/range_slider_initial_expanded.png b/test/image/baselines/range_slider_initial_expanded.png
index 1abce867322..c828353487a 100644
Binary files a/test/image/baselines/range_slider_initial_expanded.png and b/test/image/baselines/range_slider_initial_expanded.png differ
diff --git a/test/image/baselines/range_slider_initial_valid.png b/test/image/baselines/range_slider_initial_valid.png
index 3b6cdedb466..19c0669a7ae 100644
Binary files a/test/image/baselines/range_slider_initial_valid.png and b/test/image/baselines/range_slider_initial_valid.png differ
diff --git a/test/image/baselines/range_slider_legend_left.png b/test/image/baselines/range_slider_legend_left.png
index e538a886545..c9fa0f176a3 100644
Binary files a/test/image/baselines/range_slider_legend_left.png and b/test/image/baselines/range_slider_legend_left.png differ
diff --git a/test/image/baselines/range_slider_multiple.png b/test/image/baselines/range_slider_multiple.png
index 0822e6f721e..9bac47761d6 100644
Binary files a/test/image/baselines/range_slider_multiple.png and b/test/image/baselines/range_slider_multiple.png differ
diff --git a/test/image/baselines/range_slider_rangemode.png b/test/image/baselines/range_slider_rangemode.png
index 40b03a5eb77..961b0514e0f 100644
Binary files a/test/image/baselines/range_slider_rangemode.png and b/test/image/baselines/range_slider_rangemode.png differ
diff --git a/test/image/baselines/range_slider_reversed-range.png b/test/image/baselines/range_slider_reversed-range.png
index c4f87c0c31e..bfe9518b02a 100644
Binary files a/test/image/baselines/range_slider_reversed-range.png and b/test/image/baselines/range_slider_reversed-range.png differ
diff --git a/test/image/baselines/range_slider_top_axis.png b/test/image/baselines/range_slider_top_axis.png
index 5dbcbeea650..d9e2b9c59d1 100644
Binary files a/test/image/baselines/range_slider_top_axis.png and b/test/image/baselines/range_slider_top_axis.png differ
diff --git a/test/image/baselines/rdbu_heatmap.png b/test/image/baselines/rdbu_heatmap.png
index 41c11ed27cf..f4757cdc7bd 100644
Binary files a/test/image/baselines/rdbu_heatmap.png and b/test/image/baselines/rdbu_heatmap.png differ
diff --git a/test/image/baselines/reversed-axis-dividers.png b/test/image/baselines/reversed-axis-dividers.png
index ab6f4a246c2..903985e4dbd 100644
Binary files a/test/image/baselines/reversed-axis-dividers.png and b/test/image/baselines/reversed-axis-dividers.png differ
diff --git a/test/image/baselines/sankey_circular.png b/test/image/baselines/sankey_circular.png
index a85f6c8fe98..83a9c5e091d 100644
Binary files a/test/image/baselines/sankey_circular.png and b/test/image/baselines/sankey_circular.png differ
diff --git a/test/image/baselines/sankey_circular_large.png b/test/image/baselines/sankey_circular_large.png
index 97844d0ae23..14a956a1814 100644
Binary files a/test/image/baselines/sankey_circular_large.png and b/test/image/baselines/sankey_circular_large.png differ
diff --git a/test/image/baselines/sankey_circular_process.png b/test/image/baselines/sankey_circular_process.png
index ab285e48f77..aaa1deb4faf 100644
Binary files a/test/image/baselines/sankey_circular_process.png and b/test/image/baselines/sankey_circular_process.png differ
diff --git a/test/image/baselines/sankey_circular_simple.png b/test/image/baselines/sankey_circular_simple.png
index 295945716d5..555e2daba2b 100644
Binary files a/test/image/baselines/sankey_circular_simple.png and b/test/image/baselines/sankey_circular_simple.png differ
diff --git a/test/image/baselines/sankey_circular_simple2.png b/test/image/baselines/sankey_circular_simple2.png
index 7fd506cf2b5..25f60439928 100644
Binary files a/test/image/baselines/sankey_circular_simple2.png and b/test/image/baselines/sankey_circular_simple2.png differ
diff --git a/test/image/baselines/sankey_energy.png b/test/image/baselines/sankey_energy.png
index 36641bd909c..c3a2fdeecdf 100644
Binary files a/test/image/baselines/sankey_energy.png and b/test/image/baselines/sankey_energy.png differ
diff --git a/test/image/baselines/sankey_energy_dark.png b/test/image/baselines/sankey_energy_dark.png
index 3a9b1f4d922..c8bf66ef61a 100644
Binary files a/test/image/baselines/sankey_energy_dark.png and b/test/image/baselines/sankey_energy_dark.png differ
diff --git a/test/image/baselines/sankey_groups.png b/test/image/baselines/sankey_groups.png
index 41ea4caeec5..90b6b312653 100644
Binary files a/test/image/baselines/sankey_groups.png and b/test/image/baselines/sankey_groups.png differ
diff --git a/test/image/baselines/sankey_large_padding.png b/test/image/baselines/sankey_large_padding.png
index e7e70a7b614..dd4c3de97af 100644
Binary files a/test/image/baselines/sankey_large_padding.png and b/test/image/baselines/sankey_large_padding.png differ
diff --git a/test/image/baselines/sankey_link_concentration.png b/test/image/baselines/sankey_link_concentration.png
index 79d5b7e5a98..0c7fe6eeca4 100644
Binary files a/test/image/baselines/sankey_link_concentration.png and b/test/image/baselines/sankey_link_concentration.png differ
diff --git a/test/image/baselines/sankey_messy.png b/test/image/baselines/sankey_messy.png
index d06586a3833..d7427964d76 100644
Binary files a/test/image/baselines/sankey_messy.png and b/test/image/baselines/sankey_messy.png differ
diff --git a/test/image/baselines/sankey_subplots.png b/test/image/baselines/sankey_subplots.png
index fa0bb6f7f52..0643f1f3271 100644
Binary files a/test/image/baselines/sankey_subplots.png and b/test/image/baselines/sankey_subplots.png differ
diff --git a/test/image/baselines/sankey_subplots_circular.png b/test/image/baselines/sankey_subplots_circular.png
index 1ee0a9ec92d..91a470ae1f1 100644
Binary files a/test/image/baselines/sankey_subplots_circular.png and b/test/image/baselines/sankey_subplots_circular.png differ
diff --git a/test/image/baselines/sankey_x_y.png b/test/image/baselines/sankey_x_y.png
index 2b2b9fef300..b734021f9d5 100644
Binary files a/test/image/baselines/sankey_x_y.png and b/test/image/baselines/sankey_x_y.png differ
diff --git a/test/image/baselines/scatter-colorscale-colorbar.png b/test/image/baselines/scatter-colorscale-colorbar.png
index c98b104739f..a2ed7b47dad 100644
Binary files a/test/image/baselines/scatter-colorscale-colorbar.png and b/test/image/baselines/scatter-colorscale-colorbar.png differ
diff --git a/test/image/baselines/scatter-marker-line-colorscales.png b/test/image/baselines/scatter-marker-line-colorscales.png
index 21fd18d8fe5..d9836b67646 100644
Binary files a/test/image/baselines/scatter-marker-line-colorscales.png and b/test/image/baselines/scatter-marker-line-colorscales.png differ
diff --git a/test/image/baselines/scatter_category_total_descending.png b/test/image/baselines/scatter_category_total_descending.png
index ac0bf18d8e5..af2a3d04bd2 100644
Binary files a/test/image/baselines/scatter_category_total_descending.png and b/test/image/baselines/scatter_category_total_descending.png differ
diff --git a/test/image/baselines/scatter_errorbars_inherit_color.png b/test/image/baselines/scatter_errorbars_inherit_color.png
index 5367f1e2f85..4f56f973bd9 100644
Binary files a/test/image/baselines/scatter_errorbars_inherit_color.png and b/test/image/baselines/scatter_errorbars_inherit_color.png differ
diff --git a/test/image/baselines/scatter_fill_corner_cases.png b/test/image/baselines/scatter_fill_corner_cases.png
index a1a0f823451..bd99f2d71fe 100644
Binary files a/test/image/baselines/scatter_fill_corner_cases.png and b/test/image/baselines/scatter_fill_corner_cases.png differ
diff --git a/test/image/baselines/scatter_fill_no_opacity.png b/test/image/baselines/scatter_fill_no_opacity.png
index 4bf8cd022a0..dbea1288c01 100644
Binary files a/test/image/baselines/scatter_fill_no_opacity.png and b/test/image/baselines/scatter_fill_no_opacity.png differ
diff --git a/test/image/baselines/scatter_fill_self_next.png b/test/image/baselines/scatter_fill_self_next.png
index d3f7d725e63..b102899ef89 100644
Binary files a/test/image/baselines/scatter_fill_self_next.png and b/test/image/baselines/scatter_fill_self_next.png differ
diff --git a/test/image/baselines/scatter_fill_self_opacity.png b/test/image/baselines/scatter_fill_self_opacity.png
index 98909f7d68d..5fd480183a2 100644
Binary files a/test/image/baselines/scatter_fill_self_opacity.png and b/test/image/baselines/scatter_fill_self_opacity.png differ
diff --git a/test/image/baselines/scattercarpet-on-two-carpets.png b/test/image/baselines/scattercarpet-on-two-carpets.png
index 984c5ce06bd..1bca750da1e 100644
Binary files a/test/image/baselines/scattercarpet-on-two-carpets.png and b/test/image/baselines/scattercarpet-on-two-carpets.png differ
diff --git a/test/image/baselines/scattercarpet-text.png b/test/image/baselines/scattercarpet-text.png
index 09646d284b6..0e2871096df 100644
Binary files a/test/image/baselines/scattercarpet-text.png and b/test/image/baselines/scattercarpet-text.png differ
diff --git a/test/image/baselines/scattercarpet.png b/test/image/baselines/scattercarpet.png
index 3280b772845..db30a73c148 100644
Binary files a/test/image/baselines/scattercarpet.png and b/test/image/baselines/scattercarpet.png differ
diff --git a/test/image/baselines/shapes.png b/test/image/baselines/shapes.png
index 0e15050b950..6596c28d7ba 100644
Binary files a/test/image/baselines/shapes.png and b/test/image/baselines/shapes.png differ
diff --git a/test/image/baselines/shapes_below_traces.png b/test/image/baselines/shapes_below_traces.png
index 73d260a5075..c40a1a893d8 100644
Binary files a/test/image/baselines/shapes_below_traces.png and b/test/image/baselines/shapes_below_traces.png differ
diff --git a/test/image/baselines/shapes_fixed_size.png b/test/image/baselines/shapes_fixed_size.png
index 306caf72ed0..a7081408968 100644
Binary files a/test/image/baselines/shapes_fixed_size.png and b/test/image/baselines/shapes_fixed_size.png differ
diff --git a/test/image/baselines/shapes_move-and-reshape-lines.png b/test/image/baselines/shapes_move-and-reshape-lines.png
index 2bb1df1c0de..908f19e72e1 100644
Binary files a/test/image/baselines/shapes_move-and-reshape-lines.png and b/test/image/baselines/shapes_move-and-reshape-lines.png differ
diff --git a/test/image/baselines/shared_axes_subplots.png b/test/image/baselines/shared_axes_subplots.png
index 2085aca7e59..ce6c0aa5aa9 100644
Binary files a/test/image/baselines/shared_axes_subplots.png and b/test/image/baselines/shared_axes_subplots.png differ
diff --git a/test/image/baselines/shared_coloraxes.png b/test/image/baselines/shared_coloraxes.png
index 9941fa6a668..cdea4428b2c 100644
Binary files a/test/image/baselines/shared_coloraxes.png and b/test/image/baselines/shared_coloraxes.png differ
diff --git a/test/image/baselines/shared_coloraxes_contour.png b/test/image/baselines/shared_coloraxes_contour.png
index b8e32c1db24..2ed8e505cf8 100644
Binary files a/test/image/baselines/shared_coloraxes_contour.png and b/test/image/baselines/shared_coloraxes_contour.png differ
diff --git a/test/image/baselines/show_legend.png b/test/image/baselines/show_legend.png
index b6f58199b47..b6dc082f274 100644
Binary files a/test/image/baselines/show_legend.png and b/test/image/baselines/show_legend.png differ
diff --git a/test/image/baselines/simple_annotation.png b/test/image/baselines/simple_annotation.png
index 4b53beff143..871fdc78b00 100644
Binary files a/test/image/baselines/simple_annotation.png and b/test/image/baselines/simple_annotation.png differ
diff --git a/test/image/baselines/simple_contour.png b/test/image/baselines/simple_contour.png
index cb82364e1ff..a0003eedec5 100644
Binary files a/test/image/baselines/simple_contour.png and b/test/image/baselines/simple_contour.png differ
diff --git a/test/image/baselines/simple_inset.png b/test/image/baselines/simple_inset.png
index fc65db8d341..6325afa746d 100644
Binary files a/test/image/baselines/simple_inset.png and b/test/image/baselines/simple_inset.png differ
diff --git a/test/image/baselines/simple_subplot.png b/test/image/baselines/simple_subplot.png
index 7d31e4c8232..66306605af4 100644
Binary files a/test/image/baselines/simple_subplot.png and b/test/image/baselines/simple_subplot.png differ
diff --git a/test/image/baselines/size_margins.png b/test/image/baselines/size_margins.png
index 4f5561a79ee..38a208f03f9 100644
Binary files a/test/image/baselines/size_margins.png and b/test/image/baselines/size_margins.png differ
diff --git a/test/image/baselines/sliders.png b/test/image/baselines/sliders.png
index 9f1ecd2338c..74e4c3693f9 100644
Binary files a/test/image/baselines/sliders.png and b/test/image/baselines/sliders.png differ
diff --git a/test/image/baselines/sort_by_total_matching_axes.png b/test/image/baselines/sort_by_total_matching_axes.png
index bd3ce318f85..204d7dc6c88 100644
Binary files a/test/image/baselines/sort_by_total_matching_axes.png and b/test/image/baselines/sort_by_total_matching_axes.png differ
diff --git a/test/image/baselines/splom_0.png b/test/image/baselines/splom_0.png
index 9e2afb4d22b..bb2b1021a18 100644
Binary files a/test/image/baselines/splom_0.png and b/test/image/baselines/splom_0.png differ
diff --git a/test/image/baselines/splom_array-styles.png b/test/image/baselines/splom_array-styles.png
index 673770efc3a..3503fc20882 100644
Binary files a/test/image/baselines/splom_array-styles.png and b/test/image/baselines/splom_array-styles.png differ
diff --git a/test/image/baselines/splom_dates.png b/test/image/baselines/splom_dates.png
index cec3ad9a099..98ef657c445 100644
Binary files a/test/image/baselines/splom_dates.png and b/test/image/baselines/splom_dates.png differ
diff --git a/test/image/baselines/splom_iris-matching.png b/test/image/baselines/splom_iris-matching.png
index c3d13e9bdeb..af99fbc8bf0 100644
Binary files a/test/image/baselines/splom_iris-matching.png and b/test/image/baselines/splom_iris-matching.png differ
diff --git a/test/image/baselines/splom_iris.png b/test/image/baselines/splom_iris.png
index 7380d3e80ee..ac6d3db4ae6 100644
Binary files a/test/image/baselines/splom_iris.png and b/test/image/baselines/splom_iris.png differ
diff --git a/test/image/baselines/splom_large.png b/test/image/baselines/splom_large.png
index f11ea1467eb..bf174d48af0 100644
Binary files a/test/image/baselines/splom_large.png and b/test/image/baselines/splom_large.png differ
diff --git a/test/image/baselines/splom_log.png b/test/image/baselines/splom_log.png
index 58e5ef0a28d..db9a9cfe695 100644
Binary files a/test/image/baselines/splom_log.png and b/test/image/baselines/splom_log.png differ
diff --git a/test/image/baselines/splom_lower-nodiag-matching.png b/test/image/baselines/splom_lower-nodiag-matching.png
index 3872b87968f..145d34537f0 100644
Binary files a/test/image/baselines/splom_lower-nodiag-matching.png and b/test/image/baselines/splom_lower-nodiag-matching.png differ
diff --git a/test/image/baselines/splom_lower-nodiag.png b/test/image/baselines/splom_lower-nodiag.png
index 20bec8e458b..92d0916ab8b 100644
Binary files a/test/image/baselines/splom_lower-nodiag.png and b/test/image/baselines/splom_lower-nodiag.png differ
diff --git a/test/image/baselines/splom_lower.png b/test/image/baselines/splom_lower.png
index 34ee5498d49..303df896568 100644
Binary files a/test/image/baselines/splom_lower.png and b/test/image/baselines/splom_lower.png differ
diff --git a/test/image/baselines/splom_mismatched-axis-types.png b/test/image/baselines/splom_mismatched-axis-types.png
index cb8d5793a81..765480ee547 100644
Binary files a/test/image/baselines/splom_mismatched-axis-types.png and b/test/image/baselines/splom_mismatched-axis-types.png differ
diff --git a/test/image/baselines/splom_multi-axis-type.png b/test/image/baselines/splom_multi-axis-type.png
index 13c9aa9b176..5d90d9331ce 100644
Binary files a/test/image/baselines/splom_multi-axis-type.png and b/test/image/baselines/splom_multi-axis-type.png differ
diff --git a/test/image/baselines/splom_nodiag.png b/test/image/baselines/splom_nodiag.png
index 2d6a7e14579..527f2ed767c 100644
Binary files a/test/image/baselines/splom_nodiag.png and b/test/image/baselines/splom_nodiag.png differ
diff --git a/test/image/baselines/splom_ragged-via-axes.png b/test/image/baselines/splom_ragged-via-axes.png
index 4acf13430c7..6c138e79907 100644
Binary files a/test/image/baselines/splom_ragged-via-axes.png and b/test/image/baselines/splom_ragged-via-axes.png differ
diff --git a/test/image/baselines/splom_ragged-via-visible-false.png b/test/image/baselines/splom_ragged-via-visible-false.png
index 7137bb838b8..6a2769a6736 100644
Binary files a/test/image/baselines/splom_ragged-via-visible-false.png and b/test/image/baselines/splom_ragged-via-visible-false.png differ
diff --git a/test/image/baselines/splom_symbol_numbers.png b/test/image/baselines/splom_symbol_numbers.png
index 9ce83751902..f1b11b44e26 100644
Binary files a/test/image/baselines/splom_symbol_numbers.png and b/test/image/baselines/splom_symbol_numbers.png differ
diff --git a/test/image/baselines/splom_upper-nodiag.png b/test/image/baselines/splom_upper-nodiag.png
index 9398120da17..d2c7af76eb6 100644
Binary files a/test/image/baselines/splom_upper-nodiag.png and b/test/image/baselines/splom_upper-nodiag.png differ
diff --git a/test/image/baselines/splom_upper.png b/test/image/baselines/splom_upper.png
index 2d955d8643d..75638fd2349 100644
Binary files a/test/image/baselines/splom_upper.png and b/test/image/baselines/splom_upper.png differ
diff --git a/test/image/baselines/splom_with-cartesian.png b/test/image/baselines/splom_with-cartesian.png
index 973d540e3b7..56bd7d84609 100644
Binary files a/test/image/baselines/splom_with-cartesian.png and b/test/image/baselines/splom_with-cartesian.png differ
diff --git a/test/image/baselines/stacked_area.png b/test/image/baselines/stacked_area.png
index e81b7207353..c5ec28de2a1 100644
Binary files a/test/image/baselines/stacked_area.png and b/test/image/baselines/stacked_area.png differ
diff --git a/test/image/baselines/stacked_area_duplicates.png b/test/image/baselines/stacked_area_duplicates.png
index 3b35f75ba3c..24d3b8c69d4 100644
Binary files a/test/image/baselines/stacked_area_duplicates.png and b/test/image/baselines/stacked_area_duplicates.png differ
diff --git a/test/image/baselines/stacked_area_groupby.png b/test/image/baselines/stacked_area_groupby.png
index bcdd0536180..83ea6c3ac63 100644
Binary files a/test/image/baselines/stacked_area_groupby.png and b/test/image/baselines/stacked_area_groupby.png differ
diff --git a/test/image/baselines/stacked_area_groups.png b/test/image/baselines/stacked_area_groups.png
index 01251d3e6f5..61913e5228d 100644
Binary files a/test/image/baselines/stacked_area_groups.png and b/test/image/baselines/stacked_area_groups.png differ
diff --git a/test/image/baselines/stacked_area_horz.png b/test/image/baselines/stacked_area_horz.png
index 3c18529b36d..133f8ccc29d 100644
Binary files a/test/image/baselines/stacked_area_horz.png and b/test/image/baselines/stacked_area_horz.png differ
diff --git a/test/image/baselines/stacked_area_log.png b/test/image/baselines/stacked_area_log.png
index 737318747aa..a00addf1a1f 100644
Binary files a/test/image/baselines/stacked_area_log.png and b/test/image/baselines/stacked_area_log.png differ
diff --git a/test/image/baselines/stacked_bar.png b/test/image/baselines/stacked_bar.png
index bfc13442208..d45f4df8f3d 100644
Binary files a/test/image/baselines/stacked_bar.png and b/test/image/baselines/stacked_bar.png differ
diff --git a/test/image/baselines/stacked_coupled_subplots.png b/test/image/baselines/stacked_coupled_subplots.png
index c93292fe44c..63c88adaf34 100644
Binary files a/test/image/baselines/stacked_coupled_subplots.png and b/test/image/baselines/stacked_coupled_subplots.png differ
diff --git a/test/image/baselines/stacked_subplots.png b/test/image/baselines/stacked_subplots.png
index 6dc0e46a2da..c5123e0f571 100644
Binary files a/test/image/baselines/stacked_subplots.png and b/test/image/baselines/stacked_subplots.png differ
diff --git a/test/image/baselines/stacked_subplots_shared_yaxis.png b/test/image/baselines/stacked_subplots_shared_yaxis.png
index 5e3f6461feb..c1fd45ed099 100644
Binary files a/test/image/baselines/stacked_subplots_shared_yaxis.png and b/test/image/baselines/stacked_subplots_shared_yaxis.png differ
diff --git a/test/image/baselines/style_bar.png b/test/image/baselines/style_bar.png
index 20a8623d492..7b3deec96dd 100644
Binary files a/test/image/baselines/style_bar.png and b/test/image/baselines/style_bar.png differ
diff --git a/test/image/baselines/styling_names.png b/test/image/baselines/styling_names.png
index f78f6679339..883e4e28557 100644
Binary files a/test/image/baselines/styling_names.png and b/test/image/baselines/styling_names.png differ
diff --git a/test/image/baselines/sunburst_branchvalues-total-almost-equal.png b/test/image/baselines/sunburst_branchvalues-total-almost-equal.png
index f553714dcfa..3d30fc20240 100644
Binary files a/test/image/baselines/sunburst_branchvalues-total-almost-equal.png and b/test/image/baselines/sunburst_branchvalues-total-almost-equal.png differ
diff --git a/test/image/baselines/sunburst_coffee-maxdepth3.png b/test/image/baselines/sunburst_coffee-maxdepth3.png
index a83843cbfce..73182567b13 100644
Binary files a/test/image/baselines/sunburst_coffee-maxdepth3.png and b/test/image/baselines/sunburst_coffee-maxdepth3.png differ
diff --git a/test/image/baselines/sunburst_coffee.png b/test/image/baselines/sunburst_coffee.png
index 0f69852a357..523744ad90d 100644
Binary files a/test/image/baselines/sunburst_coffee.png and b/test/image/baselines/sunburst_coffee.png differ
diff --git a/test/image/baselines/sunburst_count_branches.png b/test/image/baselines/sunburst_count_branches.png
index 65ab9fa4534..edc0592b59a 100644
Binary files a/test/image/baselines/sunburst_count_branches.png and b/test/image/baselines/sunburst_count_branches.png differ
diff --git a/test/image/baselines/sunburst_first.png b/test/image/baselines/sunburst_first.png
index 9e2c4013b62..deb5c6e5ced 100644
Binary files a/test/image/baselines/sunburst_first.png and b/test/image/baselines/sunburst_first.png differ
diff --git a/test/image/baselines/sunburst_flare.png b/test/image/baselines/sunburst_flare.png
index dd8484c79bc..26d55ac5306 100644
Binary files a/test/image/baselines/sunburst_flare.png and b/test/image/baselines/sunburst_flare.png differ
diff --git a/test/image/baselines/sunburst_inside-text-orientation.png b/test/image/baselines/sunburst_inside-text-orientation.png
index fe4b1cf7680..034028f2e4c 100644
Binary files a/test/image/baselines/sunburst_inside-text-orientation.png and b/test/image/baselines/sunburst_inside-text-orientation.png differ
diff --git a/test/image/baselines/sunburst_inside-text-orientation_clock.png b/test/image/baselines/sunburst_inside-text-orientation_clock.png
index 24bcfbf2481..41f4450f159 100644
Binary files a/test/image/baselines/sunburst_inside-text-orientation_clock.png and b/test/image/baselines/sunburst_inside-text-orientation_clock.png differ
diff --git a/test/image/baselines/sunburst_level-depth.png b/test/image/baselines/sunburst_level-depth.png
index a9fad59b4e4..086331fe0cb 100644
Binary files a/test/image/baselines/sunburst_level-depth.png and b/test/image/baselines/sunburst_level-depth.png differ
diff --git a/test/image/baselines/sunburst_packages_colorscale_novalue.png b/test/image/baselines/sunburst_packages_colorscale_novalue.png
index b88e9331871..2f09e9246aa 100644
Binary files a/test/image/baselines/sunburst_packages_colorscale_novalue.png and b/test/image/baselines/sunburst_packages_colorscale_novalue.png differ
diff --git a/test/image/baselines/sunburst_textfit.png b/test/image/baselines/sunburst_textfit.png
index 9796c4a1dc8..5bedbb0ae79 100644
Binary files a/test/image/baselines/sunburst_textfit.png and b/test/image/baselines/sunburst_textfit.png differ
diff --git a/test/image/baselines/sunburst_textpad_radial.png b/test/image/baselines/sunburst_textpad_radial.png
index cad6d7ba2b6..0dc8e4db49c 100644
Binary files a/test/image/baselines/sunburst_textpad_radial.png and b/test/image/baselines/sunburst_textpad_radial.png differ
diff --git a/test/image/baselines/sunburst_textpad_tangential.png b/test/image/baselines/sunburst_textpad_tangential.png
index 24a4fdcbd37..4fcff6c7843 100644
Binary files a/test/image/baselines/sunburst_textpad_tangential.png and b/test/image/baselines/sunburst_textpad_tangential.png differ
diff --git a/test/image/baselines/sunburst_values.png b/test/image/baselines/sunburst_values.png
index fc108c99f02..94f914a5bf0 100644
Binary files a/test/image/baselines/sunburst_values.png and b/test/image/baselines/sunburst_values.png differ
diff --git a/test/image/baselines/sunburst_values_colorscale.png b/test/image/baselines/sunburst_values_colorscale.png
index be7458519c3..6d5f86ef984 100644
Binary files a/test/image/baselines/sunburst_values_colorscale.png and b/test/image/baselines/sunburst_values_colorscale.png differ
diff --git a/test/image/baselines/sunburst_with-without_values.png b/test/image/baselines/sunburst_with-without_values.png
index bd5bd3e0ea4..6cfc8dd3e45 100644
Binary files a/test/image/baselines/sunburst_with-without_values.png and b/test/image/baselines/sunburst_with-without_values.png differ
diff --git a/test/image/baselines/sunburst_zero_values_textfit.png b/test/image/baselines/sunburst_zero_values_textfit.png
index 01f075a6967..31b1fae2b34 100644
Binary files a/test/image/baselines/sunburst_zero_values_textfit.png and b/test/image/baselines/sunburst_zero_values_textfit.png differ
diff --git a/test/image/baselines/symbols_string-numbers.png b/test/image/baselines/symbols_string-numbers.png
index 9ae4ee0f187..86f827310b1 100644
Binary files a/test/image/baselines/symbols_string-numbers.png and b/test/image/baselines/symbols_string-numbers.png differ
diff --git a/test/image/baselines/table_latex_multitrace_scatter.png b/test/image/baselines/table_latex_multitrace_scatter.png
index 9afe59b731c..63b4481d770 100644
Binary files a/test/image/baselines/table_latex_multitrace_scatter.png and b/test/image/baselines/table_latex_multitrace_scatter.png differ
diff --git a/test/image/baselines/table_plain_birds.png b/test/image/baselines/table_plain_birds.png
index fbfbb80a125..67d2742e952 100644
Binary files a/test/image/baselines/table_plain_birds.png and b/test/image/baselines/table_plain_birds.png differ
diff --git a/test/image/baselines/table_ragged.png b/test/image/baselines/table_ragged.png
index bb1b7b4f5da..6f0726d5dd7 100644
Binary files a/test/image/baselines/table_ragged.png and b/test/image/baselines/table_ragged.png differ
diff --git a/test/image/baselines/table_wrapped_birds.png b/test/image/baselines/table_wrapped_birds.png
index 5ed3d492567..c9736e7308d 100644
Binary files a/test/image/baselines/table_wrapped_birds.png and b/test/image/baselines/table_wrapped_birds.png differ
diff --git a/test/image/baselines/template.png b/test/image/baselines/template.png
index baee368fbbf..4e59debb5d7 100644
Binary files a/test/image/baselines/template.png and b/test/image/baselines/template.png differ
diff --git a/test/image/baselines/ternary-mathjax.png b/test/image/baselines/ternary-mathjax.png
index 5f806dc6036..f1790fb8169 100644
Binary files a/test/image/baselines/ternary-mathjax.png and b/test/image/baselines/ternary-mathjax.png differ
diff --git a/test/image/baselines/ternary_array_styles.png b/test/image/baselines/ternary_array_styles.png
index 2ed0c033b92..855a6a0a3ad 100644
Binary files a/test/image/baselines/ternary_array_styles.png and b/test/image/baselines/ternary_array_styles.png differ
diff --git a/test/image/baselines/ternary_axis_layers.png b/test/image/baselines/ternary_axis_layers.png
index 36daec4b21d..b707851d3ea 100644
Binary files a/test/image/baselines/ternary_axis_layers.png and b/test/image/baselines/ternary_axis_layers.png differ
diff --git a/test/image/baselines/ternary_fill.png b/test/image/baselines/ternary_fill.png
index b7e6f58998d..b7179a52b1e 100644
Binary files a/test/image/baselines/ternary_fill.png and b/test/image/baselines/ternary_fill.png differ
diff --git a/test/image/baselines/ternary_lines.png b/test/image/baselines/ternary_lines.png
index 7299fedff74..b53c96f56d2 100644
Binary files a/test/image/baselines/ternary_lines.png and b/test/image/baselines/ternary_lines.png differ
diff --git a/test/image/baselines/ternary_markers.png b/test/image/baselines/ternary_markers.png
index 84ce180097b..41740a11fb2 100644
Binary files a/test/image/baselines/ternary_markers.png and b/test/image/baselines/ternary_markers.png differ
diff --git a/test/image/baselines/ternary_multiple.png b/test/image/baselines/ternary_multiple.png
index 68045c78cd7..9525e2a967e 100644
Binary files a/test/image/baselines/ternary_multiple.png and b/test/image/baselines/ternary_multiple.png differ
diff --git a/test/image/baselines/ternary_noticks.png b/test/image/baselines/ternary_noticks.png
index e643f587845..ba1888f044f 100644
Binary files a/test/image/baselines/ternary_noticks.png and b/test/image/baselines/ternary_noticks.png differ
diff --git a/test/image/baselines/ternary_simple.png b/test/image/baselines/ternary_simple.png
index 29486ca35bb..1b9b9d030db 100644
Binary files a/test/image/baselines/ternary_simple.png and b/test/image/baselines/ternary_simple.png differ
diff --git a/test/image/baselines/text_chart_arrays.png b/test/image/baselines/text_chart_arrays.png
index 49672463488..4e8d28d6291 100644
Binary files a/test/image/baselines/text_chart_arrays.png and b/test/image/baselines/text_chart_arrays.png differ
diff --git a/test/image/baselines/text_chart_basic.png b/test/image/baselines/text_chart_basic.png
index 0e542d274a7..9ec2fbd039f 100644
Binary files a/test/image/baselines/text_chart_basic.png and b/test/image/baselines/text_chart_basic.png differ
diff --git a/test/image/baselines/text_chart_invalid-arrays.png b/test/image/baselines/text_chart_invalid-arrays.png
index 9f661cb1ec0..b4a9b1789d5 100644
Binary files a/test/image/baselines/text_chart_invalid-arrays.png and b/test/image/baselines/text_chart_invalid-arrays.png differ
diff --git a/test/image/baselines/text_chart_single-string.png b/test/image/baselines/text_chart_single-string.png
index 809ed3df2e9..f48c79c4f8f 100644
Binary files a/test/image/baselines/text_chart_single-string.png and b/test/image/baselines/text_chart_single-string.png differ
diff --git a/test/image/baselines/text_chart_styling.png b/test/image/baselines/text_chart_styling.png
index fcfcd89fe4a..ab7ea50bb12 100644
Binary files a/test/image/baselines/text_chart_styling.png and b/test/image/baselines/text_chart_styling.png differ
diff --git a/test/image/baselines/text_export.png b/test/image/baselines/text_export.png
index 199caa079a7..2de01d13fae 100644
Binary files a/test/image/baselines/text_export.png and b/test/image/baselines/text_export.png differ
diff --git a/test/image/baselines/texttemplate.png b/test/image/baselines/texttemplate.png
index ecaf9f0c368..865abf13fec 100644
Binary files a/test/image/baselines/texttemplate.png and b/test/image/baselines/texttemplate.png differ
diff --git a/test/image/baselines/texttemplate_scatter.png b/test/image/baselines/texttemplate_scatter.png
index 3d858675867..1030911b577 100644
Binary files a/test/image/baselines/texttemplate_scatter.png and b/test/image/baselines/texttemplate_scatter.png differ
diff --git a/test/image/baselines/tick-datafn.png b/test/image/baselines/tick-datafn.png
index 581cceee7d8..fec7cccc92e 100644
Binary files a/test/image/baselines/tick-datafn.png and b/test/image/baselines/tick-datafn.png differ
diff --git a/test/image/baselines/tick-increment.png b/test/image/baselines/tick-increment.png
index 1615b88bb25..a8cceed43c7 100644
Binary files a/test/image/baselines/tick-increment.png and b/test/image/baselines/tick-increment.png differ
diff --git a/test/image/baselines/tick-percent.png b/test/image/baselines/tick-percent.png
index 05facea5616..42f37ab3d16 100644
Binary files a/test/image/baselines/tick-percent.png and b/test/image/baselines/tick-percent.png differ
diff --git a/test/image/baselines/tick_attributes.png b/test/image/baselines/tick_attributes.png
index b61495409d9..004fc972100 100644
Binary files a/test/image/baselines/tick_attributes.png and b/test/image/baselines/tick_attributes.png differ
diff --git a/test/image/baselines/tick_prefix_suffix.png b/test/image/baselines/tick_prefix_suffix.png
index 16678317b9a..365c07ce3ae 100644
Binary files a/test/image/baselines/tick_prefix_suffix.png and b/test/image/baselines/tick_prefix_suffix.png differ
diff --git a/test/image/baselines/tick_prefix_suffix_exponent.png b/test/image/baselines/tick_prefix_suffix_exponent.png
index 63ad56e0800..6be9c7d021c 100644
Binary files a/test/image/baselines/tick_prefix_suffix_exponent.png and b/test/image/baselines/tick_prefix_suffix_exponent.png differ
diff --git a/test/image/baselines/tickformat.png b/test/image/baselines/tickformat.png
index 971418b83a5..d9121df12c6 100644
Binary files a/test/image/baselines/tickformat.png and b/test/image/baselines/tickformat.png differ
diff --git a/test/image/baselines/tickformatstops.png b/test/image/baselines/tickformatstops.png
index 3f0e66f942d..b985ad47bc0 100644
Binary files a/test/image/baselines/tickformatstops.png and b/test/image/baselines/tickformatstops.png differ
diff --git a/test/image/baselines/ticklabeloverflow-0.png b/test/image/baselines/ticklabeloverflow-0.png
index ffa863b2e41..acd1a138985 100644
Binary files a/test/image/baselines/ticklabeloverflow-0.png and b/test/image/baselines/ticklabeloverflow-0.png differ
diff --git a/test/image/baselines/ticklabeloverflow-1.png b/test/image/baselines/ticklabeloverflow-1.png
index 379f7cb2b96..bfe41a5f047 100644
Binary files a/test/image/baselines/ticklabeloverflow-1.png and b/test/image/baselines/ticklabeloverflow-1.png differ
diff --git a/test/image/baselines/ticklabeloverflow-2.png b/test/image/baselines/ticklabeloverflow-2.png
index caeba825370..bb4f871e587 100644
Binary files a/test/image/baselines/ticklabeloverflow-2.png and b/test/image/baselines/ticklabeloverflow-2.png differ
diff --git a/test/image/baselines/ticklabeloverflow-3.png b/test/image/baselines/ticklabeloverflow-3.png
index eb170168297..e791b9d82e6 100644
Binary files a/test/image/baselines/ticklabeloverflow-3.png and b/test/image/baselines/ticklabeloverflow-3.png differ
diff --git a/test/image/baselines/ticklabeloverflow-4.png b/test/image/baselines/ticklabeloverflow-4.png
index 8417d7e7bcc..8e72f19456c 100644
Binary files a/test/image/baselines/ticklabeloverflow-4.png and b/test/image/baselines/ticklabeloverflow-4.png differ
diff --git a/test/image/baselines/ticklabeloverflow-5.png b/test/image/baselines/ticklabeloverflow-5.png
index e6ddaec03d2..c067b34cc9b 100644
Binary files a/test/image/baselines/ticklabeloverflow-5.png and b/test/image/baselines/ticklabeloverflow-5.png differ
diff --git a/test/image/baselines/ticklabelposition-0.png b/test/image/baselines/ticklabelposition-0.png
index 37f4a5c26cd..960b14b28ca 100644
Binary files a/test/image/baselines/ticklabelposition-0.png and b/test/image/baselines/ticklabelposition-0.png differ
diff --git a/test/image/baselines/ticklabelposition-1.png b/test/image/baselines/ticklabelposition-1.png
index 5cf0249768e..a01cd612ea7 100644
Binary files a/test/image/baselines/ticklabelposition-1.png and b/test/image/baselines/ticklabelposition-1.png differ
diff --git a/test/image/baselines/ticklabelposition-2.png b/test/image/baselines/ticklabelposition-2.png
index d07def0c695..0082752718c 100644
Binary files a/test/image/baselines/ticklabelposition-2.png and b/test/image/baselines/ticklabelposition-2.png differ
diff --git a/test/image/baselines/ticklabelposition-3.png b/test/image/baselines/ticklabelposition-3.png
index 99eb5252f79..55c240c0e63 100644
Binary files a/test/image/baselines/ticklabelposition-3.png and b/test/image/baselines/ticklabelposition-3.png differ
diff --git a/test/image/baselines/ticklabelposition-4.png b/test/image/baselines/ticklabelposition-4.png
index 7fe0fde2bb3..6cb66d89c9f 100644
Binary files a/test/image/baselines/ticklabelposition-4.png and b/test/image/baselines/ticklabelposition-4.png differ
diff --git a/test/image/baselines/ticklabelposition-5.png b/test/image/baselines/ticklabelposition-5.png
index 8b3a1a978c5..60f4bd86f23 100644
Binary files a/test/image/baselines/ticklabelposition-5.png and b/test/image/baselines/ticklabelposition-5.png differ
diff --git a/test/image/baselines/ticklabelposition-6.png b/test/image/baselines/ticklabelposition-6.png
index 3d74250f0a3..9d4d31e39c7 100644
Binary files a/test/image/baselines/ticklabelposition-6.png and b/test/image/baselines/ticklabelposition-6.png differ
diff --git a/test/image/baselines/ticklabelposition-7.png b/test/image/baselines/ticklabelposition-7.png
index fa6d9436065..f355e8a6e34 100644
Binary files a/test/image/baselines/ticklabelposition-7.png and b/test/image/baselines/ticklabelposition-7.png differ
diff --git a/test/image/baselines/ticklabelposition-a.png b/test/image/baselines/ticklabelposition-a.png
index dc17f6fc3c0..692c709d6ac 100644
Binary files a/test/image/baselines/ticklabelposition-a.png and b/test/image/baselines/ticklabelposition-a.png differ
diff --git a/test/image/baselines/ticklabelposition-b.png b/test/image/baselines/ticklabelposition-b.png
index 7f3e5b73bff..3aba857098e 100644
Binary files a/test/image/baselines/ticklabelposition-b.png and b/test/image/baselines/ticklabelposition-b.png differ
diff --git a/test/image/baselines/ticklabelposition-c.png b/test/image/baselines/ticklabelposition-c.png
index bbbeaf25841..0972c754ae9 100644
Binary files a/test/image/baselines/ticklabelposition-c.png and b/test/image/baselines/ticklabelposition-c.png differ
diff --git a/test/image/baselines/ticklabelposition-d.png b/test/image/baselines/ticklabelposition-d.png
index 47fa839ac64..cb9b3695201 100644
Binary files a/test/image/baselines/ticklabelposition-d.png and b/test/image/baselines/ticklabelposition-d.png differ
diff --git a/test/image/baselines/ticklabelposition-overlay.png b/test/image/baselines/ticklabelposition-overlay.png
index fa67194533a..f4eb1ca155c 100644
Binary files a/test/image/baselines/ticklabelposition-overlay.png and b/test/image/baselines/ticklabelposition-overlay.png differ
diff --git a/test/image/baselines/ticklabelposition-overlay2.png b/test/image/baselines/ticklabelposition-overlay2.png
index cd1cf07441e..94f5016ad7d 100644
Binary files a/test/image/baselines/ticklabelposition-overlay2.png and b/test/image/baselines/ticklabelposition-overlay2.png differ
diff --git a/test/image/baselines/tickson_boundaries.png b/test/image/baselines/tickson_boundaries.png
index 242ee575230..0b1c752609e 100644
Binary files a/test/image/baselines/tickson_boundaries.png and b/test/image/baselines/tickson_boundaries.png differ
diff --git a/test/image/baselines/titles-avoid-labels.png b/test/image/baselines/titles-avoid-labels.png
index df30fb70bdb..12f63059327 100644
Binary files a/test/image/baselines/titles-avoid-labels.png and b/test/image/baselines/titles-avoid-labels.png differ
diff --git a/test/image/baselines/trace_metatext.png b/test/image/baselines/trace_metatext.png
index 8a5c1618534..6174afab321 100644
Binary files a/test/image/baselines/trace_metatext.png and b/test/image/baselines/trace_metatext.png differ
diff --git a/test/image/baselines/transforms.png b/test/image/baselines/transforms.png
index 0a536e93ea1..c1148e64bd8 100644
Binary files a/test/image/baselines/transforms.png and b/test/image/baselines/transforms.png differ
diff --git a/test/image/baselines/treemap_coffee-maxdepth3.png b/test/image/baselines/treemap_coffee-maxdepth3.png
index d89fc3edc20..7c6fb5042ff 100644
Binary files a/test/image/baselines/treemap_coffee-maxdepth3.png and b/test/image/baselines/treemap_coffee-maxdepth3.png differ
diff --git a/test/image/baselines/treemap_coffee.png b/test/image/baselines/treemap_coffee.png
index bd29b4a7a76..06714fd3f3c 100644
Binary files a/test/image/baselines/treemap_coffee.png and b/test/image/baselines/treemap_coffee.png differ
diff --git a/test/image/baselines/treemap_first.png b/test/image/baselines/treemap_first.png
index 87c04bad4ae..01297fd7530 100644
Binary files a/test/image/baselines/treemap_first.png and b/test/image/baselines/treemap_first.png differ
diff --git a/test/image/baselines/treemap_flare.png b/test/image/baselines/treemap_flare.png
index 88260664e8e..781fbbf0e81 100644
Binary files a/test/image/baselines/treemap_flare.png and b/test/image/baselines/treemap_flare.png differ
diff --git a/test/image/baselines/treemap_fonts_nocolor.png b/test/image/baselines/treemap_fonts_nocolor.png
index 2fcdefdb3a9..7400c57ec1b 100644
Binary files a/test/image/baselines/treemap_fonts_nocolor.png and b/test/image/baselines/treemap_fonts_nocolor.png differ
diff --git a/test/image/baselines/treemap_fonts_withcolor.png b/test/image/baselines/treemap_fonts_withcolor.png
index e8051271977..e16817fda93 100644
Binary files a/test/image/baselines/treemap_fonts_withcolor.png and b/test/image/baselines/treemap_fonts_withcolor.png differ
diff --git a/test/image/baselines/treemap_level-depth.png b/test/image/baselines/treemap_level-depth.png
index fcc133c86d8..0467c0a0b32 100644
Binary files a/test/image/baselines/treemap_level-depth.png and b/test/image/baselines/treemap_level-depth.png differ
diff --git a/test/image/baselines/treemap_packages_colorscale_allone.png b/test/image/baselines/treemap_packages_colorscale_allone.png
index f6d337f0105..0ab8cb2df15 100644
Binary files a/test/image/baselines/treemap_packages_colorscale_allone.png and b/test/image/baselines/treemap_packages_colorscale_allone.png differ
diff --git a/test/image/baselines/treemap_packages_colorscale_novalue.png b/test/image/baselines/treemap_packages_colorscale_novalue.png
index a602dda326b..52655c0827c 100644
Binary files a/test/image/baselines/treemap_packages_colorscale_novalue.png and b/test/image/baselines/treemap_packages_colorscale_novalue.png differ
diff --git a/test/image/baselines/treemap_packings.png b/test/image/baselines/treemap_packings.png
index 5db4df1644d..ca81803a102 100644
Binary files a/test/image/baselines/treemap_packings.png and b/test/image/baselines/treemap_packings.png differ
diff --git a/test/image/baselines/treemap_pad_mirror.png b/test/image/baselines/treemap_pad_mirror.png
index 3aba2a27a29..2a349f78627 100644
Binary files a/test/image/baselines/treemap_pad_mirror.png and b/test/image/baselines/treemap_pad_mirror.png differ
diff --git a/test/image/baselines/treemap_pad_transpose.png b/test/image/baselines/treemap_pad_transpose.png
index 460f2cc7be2..4e02609dbfa 100644
Binary files a/test/image/baselines/treemap_pad_transpose.png and b/test/image/baselines/treemap_pad_transpose.png differ
diff --git a/test/image/baselines/treemap_root-color.png b/test/image/baselines/treemap_root-color.png
index 93165246750..9817255f846 100644
Binary files a/test/image/baselines/treemap_root-color.png and b/test/image/baselines/treemap_root-color.png differ
diff --git a/test/image/baselines/treemap_sunburst_basic.png b/test/image/baselines/treemap_sunburst_basic.png
index 0e5970bd860..69498f90eb1 100644
Binary files a/test/image/baselines/treemap_sunburst_basic.png and b/test/image/baselines/treemap_sunburst_basic.png differ
diff --git a/test/image/baselines/treemap_sunburst_marker_colors.png b/test/image/baselines/treemap_sunburst_marker_colors.png
index acd94d8651f..2ad27d25deb 100644
Binary files a/test/image/baselines/treemap_sunburst_marker_colors.png and b/test/image/baselines/treemap_sunburst_marker_colors.png differ
diff --git a/test/image/baselines/treemap_textfit.png b/test/image/baselines/treemap_textfit.png
index d9e7ce156e6..6a84b2837de 100644
Binary files a/test/image/baselines/treemap_textfit.png and b/test/image/baselines/treemap_textfit.png differ
diff --git a/test/image/baselines/treemap_textposition.png b/test/image/baselines/treemap_textposition.png
index 9ae06f087a7..6959e66b90e 100644
Binary files a/test/image/baselines/treemap_textposition.png and b/test/image/baselines/treemap_textposition.png differ
diff --git a/test/image/baselines/treemap_transpose_nopad.png b/test/image/baselines/treemap_transpose_nopad.png
index c97cc7dbe8e..ac8d2d3a0ed 100644
Binary files a/test/image/baselines/treemap_transpose_nopad.png and b/test/image/baselines/treemap_transpose_nopad.png differ
diff --git a/test/image/baselines/treemap_values.png b/test/image/baselines/treemap_values.png
index 45367d7f913..1846bc0ebc9 100644
Binary files a/test/image/baselines/treemap_values.png and b/test/image/baselines/treemap_values.png differ
diff --git a/test/image/baselines/treemap_values_colorscale.png b/test/image/baselines/treemap_values_colorscale.png
index 94decc69b26..c78efac1986 100644
Binary files a/test/image/baselines/treemap_values_colorscale.png and b/test/image/baselines/treemap_values_colorscale.png differ
diff --git a/test/image/baselines/treemap_with-without_values.png b/test/image/baselines/treemap_with-without_values.png
index cc64ab5d577..ad8a8f1e8d7 100644
Binary files a/test/image/baselines/treemap_with-without_values.png and b/test/image/baselines/treemap_with-without_values.png differ
diff --git a/test/image/baselines/treemap_with-without_values_template.png b/test/image/baselines/treemap_with-without_values_template.png
index 64e6082af74..332c97f5b42 100644
Binary files a/test/image/baselines/treemap_with-without_values_template.png and b/test/image/baselines/treemap_with-without_values_template.png differ
diff --git a/test/image/baselines/ultra_zoom.png b/test/image/baselines/ultra_zoom.png
index bdeab353df4..ccb5f5f9ec6 100644
Binary files a/test/image/baselines/ultra_zoom.png and b/test/image/baselines/ultra_zoom.png differ
diff --git a/test/image/baselines/ultra_zoom_fill.png b/test/image/baselines/ultra_zoom_fill.png
index 700e55552fa..db110d4dada 100644
Binary files a/test/image/baselines/ultra_zoom_fill.png and b/test/image/baselines/ultra_zoom_fill.png differ
diff --git a/test/image/baselines/uniformtext_bar-like_10_auto.png b/test/image/baselines/uniformtext_bar-like_10_auto.png
index ddc9373f81d..29ec95c442a 100644
Binary files a/test/image/baselines/uniformtext_bar-like_10_auto.png and b/test/image/baselines/uniformtext_bar-like_10_auto.png differ
diff --git a/test/image/baselines/uniformtext_bar-like_8_horizontal.png b/test/image/baselines/uniformtext_bar-like_8_horizontal.png
index f5137ec51cf..909c53e4eb8 100644
Binary files a/test/image/baselines/uniformtext_bar-like_8_horizontal.png and b/test/image/baselines/uniformtext_bar-like_8_horizontal.png differ
diff --git a/test/image/baselines/uniformtext_bar-like_8_textangle.png b/test/image/baselines/uniformtext_bar-like_8_textangle.png
index d7055045999..2204e04d55f 100644
Binary files a/test/image/baselines/uniformtext_bar-like_8_textangle.png and b/test/image/baselines/uniformtext_bar-like_8_textangle.png differ
diff --git a/test/image/baselines/uniformtext_bar-like_8_textangle45.png b/test/image/baselines/uniformtext_bar-like_8_textangle45.png
index ea9fe106d57..47761bd579f 100644
Binary files a/test/image/baselines/uniformtext_bar-like_8_textangle45.png and b/test/image/baselines/uniformtext_bar-like_8_textangle45.png differ
diff --git a/test/image/baselines/uniformtext_bar_axis_textangle_inside.png b/test/image/baselines/uniformtext_bar_axis_textangle_inside.png
index d175202e6bb..654ccdb1669 100644
Binary files a/test/image/baselines/uniformtext_bar_axis_textangle_inside.png and b/test/image/baselines/uniformtext_bar_axis_textangle_inside.png differ
diff --git a/test/image/baselines/uniformtext_bar_axis_textangle_outside.png b/test/image/baselines/uniformtext_bar_axis_textangle_outside.png
index ed6b9b407e0..896083320c1 100644
Binary files a/test/image/baselines/uniformtext_bar_axis_textangle_outside.png and b/test/image/baselines/uniformtext_bar_axis_textangle_outside.png differ
diff --git a/test/image/baselines/uniformtext_bar_edgecase1.png b/test/image/baselines/uniformtext_bar_edgecase1.png
index 68554e660fa..4beaa6bba51 100644
Binary files a/test/image/baselines/uniformtext_bar_edgecase1.png and b/test/image/baselines/uniformtext_bar_edgecase1.png differ
diff --git a/test/image/baselines/uniformtext_bar_edgecase2.png b/test/image/baselines/uniformtext_bar_edgecase2.png
index 11bafc8ab9d..8afe05dd122 100644
Binary files a/test/image/baselines/uniformtext_bar_edgecase2.png and b/test/image/baselines/uniformtext_bar_edgecase2.png differ
diff --git a/test/image/baselines/uniformtext_bar_edgecase3.png b/test/image/baselines/uniformtext_bar_edgecase3.png
index 3a50b02f0a1..23ae910ff21 100644
Binary files a/test/image/baselines/uniformtext_bar_edgecase3.png and b/test/image/baselines/uniformtext_bar_edgecase3.png differ
diff --git a/test/image/baselines/uniformtext_bar_edgecase4.png b/test/image/baselines/uniformtext_bar_edgecase4.png
index f4ecc53f03d..1a94488beef 100644
Binary files a/test/image/baselines/uniformtext_bar_edgecase4.png and b/test/image/baselines/uniformtext_bar_edgecase4.png differ
diff --git a/test/image/baselines/uniformtext_bar_edgecase5.png b/test/image/baselines/uniformtext_bar_edgecase5.png
index afe4eed1de7..3bda73e0eba 100644
Binary files a/test/image/baselines/uniformtext_bar_edgecase5.png and b/test/image/baselines/uniformtext_bar_edgecase5.png differ
diff --git a/test/image/baselines/uniformtext_bar_edgecase6.png b/test/image/baselines/uniformtext_bar_edgecase6.png
index a9839a77c5f..0bb849fe51b 100644
Binary files a/test/image/baselines/uniformtext_bar_edgecase6.png and b/test/image/baselines/uniformtext_bar_edgecase6.png differ
diff --git a/test/image/baselines/uniformtext_bar_edgecase7.png b/test/image/baselines/uniformtext_bar_edgecase7.png
index b2b854b9f66..8383371e2de 100644
Binary files a/test/image/baselines/uniformtext_bar_edgecase7.png and b/test/image/baselines/uniformtext_bar_edgecase7.png differ
diff --git a/test/image/baselines/uniformtext_bar_edgecase8.png b/test/image/baselines/uniformtext_bar_edgecase8.png
index a8f7c9abecf..ac95a299c45 100644
Binary files a/test/image/baselines/uniformtext_bar_edgecase8.png and b/test/image/baselines/uniformtext_bar_edgecase8.png differ
diff --git a/test/image/baselines/uniformtext_funnelarea.png b/test/image/baselines/uniformtext_funnelarea.png
index c5a3fc27dc4..b23d273fa87 100644
Binary files a/test/image/baselines/uniformtext_funnelarea.png and b/test/image/baselines/uniformtext_funnelarea.png differ
diff --git a/test/image/baselines/uniformtext_icicle.png b/test/image/baselines/uniformtext_icicle.png
index bd985e605a9..32ba1711c56 100644
Binary files a/test/image/baselines/uniformtext_icicle.png and b/test/image/baselines/uniformtext_icicle.png differ
diff --git a/test/image/baselines/uniformtext_pie_16_auto.png b/test/image/baselines/uniformtext_pie_16_auto.png
index 61a79403a92..2a944784dde 100644
Binary files a/test/image/baselines/uniformtext_pie_16_auto.png and b/test/image/baselines/uniformtext_pie_16_auto.png differ
diff --git a/test/image/baselines/uniformtext_pie_8_horizontal.png b/test/image/baselines/uniformtext_pie_8_horizontal.png
index 64161f1c25d..e6c07495989 100644
Binary files a/test/image/baselines/uniformtext_pie_8_horizontal.png and b/test/image/baselines/uniformtext_pie_8_horizontal.png differ
diff --git a/test/image/baselines/uniformtext_pie_8_horizontal_center.png b/test/image/baselines/uniformtext_pie_8_horizontal_center.png
index 34c13b83022..dde0fb18964 100644
Binary files a/test/image/baselines/uniformtext_pie_8_horizontal_center.png and b/test/image/baselines/uniformtext_pie_8_horizontal_center.png differ
diff --git a/test/image/baselines/uniformtext_pie_8_radial.png b/test/image/baselines/uniformtext_pie_8_radial.png
index 133e9f51145..9a3ceb12946 100644
Binary files a/test/image/baselines/uniformtext_pie_8_radial.png and b/test/image/baselines/uniformtext_pie_8_radial.png differ
diff --git a/test/image/baselines/uniformtext_pie_8_tangential.png b/test/image/baselines/uniformtext_pie_8_tangential.png
index 2b10a5842c0..c6276184e8a 100644
Binary files a/test/image/baselines/uniformtext_pie_8_tangential.png and b/test/image/baselines/uniformtext_pie_8_tangential.png differ
diff --git a/test/image/baselines/uniformtext_pie_inside-text-orientation.png b/test/image/baselines/uniformtext_pie_inside-text-orientation.png
index 2355f51eaf6..ed0b3d5557d 100644
Binary files a/test/image/baselines/uniformtext_pie_inside-text-orientation.png and b/test/image/baselines/uniformtext_pie_inside-text-orientation.png differ
diff --git a/test/image/baselines/uniformtext_pie_outside.png b/test/image/baselines/uniformtext_pie_outside.png
index b142a904a1d..ddf6ed68f84 100644
Binary files a/test/image/baselines/uniformtext_pie_outside.png and b/test/image/baselines/uniformtext_pie_outside.png differ
diff --git a/test/image/baselines/uniformtext_pie_pull.png b/test/image/baselines/uniformtext_pie_pull.png
index 71b6b01e261..eaf3fe8cd28 100644
Binary files a/test/image/baselines/uniformtext_pie_pull.png and b/test/image/baselines/uniformtext_pie_pull.png differ
diff --git a/test/image/baselines/uniformtext_sunburst_inside-text-orientation.png b/test/image/baselines/uniformtext_sunburst_inside-text-orientation.png
index 64bedfcf2d8..6c73a981c2d 100644
Binary files a/test/image/baselines/uniformtext_sunburst_inside-text-orientation.png and b/test/image/baselines/uniformtext_sunburst_inside-text-orientation.png differ
diff --git a/test/image/baselines/uniformtext_sunburst_treemap.png b/test/image/baselines/uniformtext_sunburst_treemap.png
index 62925d71461..31adc8ab71e 100644
Binary files a/test/image/baselines/uniformtext_sunburst_treemap.png and b/test/image/baselines/uniformtext_sunburst_treemap.png differ
diff --git a/test/image/baselines/uniformtext_treemap.png b/test/image/baselines/uniformtext_treemap.png
index 644243ea876..8c03912aae8 100644
Binary files a/test/image/baselines/uniformtext_treemap.png and b/test/image/baselines/uniformtext_treemap.png differ
diff --git a/test/image/baselines/uniformtext_treemap_coffee-maxdepth3.png b/test/image/baselines/uniformtext_treemap_coffee-maxdepth3.png
index 052da9fc349..ebbfb312b95 100644
Binary files a/test/image/baselines/uniformtext_treemap_coffee-maxdepth3.png and b/test/image/baselines/uniformtext_treemap_coffee-maxdepth3.png differ
diff --git a/test/image/baselines/updatemenus.png b/test/image/baselines/updatemenus.png
index bc97f9a1a10..771f7c45427 100644
Binary files a/test/image/baselines/updatemenus.png and b/test/image/baselines/updatemenus.png differ
diff --git a/test/image/baselines/updatemenus_positioning.png b/test/image/baselines/updatemenus_positioning.png
index 4536dc78f99..828f2e5cabf 100644
Binary files a/test/image/baselines/updatemenus_positioning.png and b/test/image/baselines/updatemenus_positioning.png differ
diff --git a/test/image/baselines/updatemenus_toggle.png b/test/image/baselines/updatemenus_toggle.png
index 8652d930e56..5cf85886f5e 100644
Binary files a/test/image/baselines/updatemenus_toggle.png and b/test/image/baselines/updatemenus_toggle.png differ
diff --git a/test/image/baselines/vertical-tickangles.png b/test/image/baselines/vertical-tickangles.png
index 3cdae815068..87a4a97b253 100644
Binary files a/test/image/baselines/vertical-tickangles.png and b/test/image/baselines/vertical-tickangles.png differ
diff --git a/test/image/baselines/violin-offsetgroups.png b/test/image/baselines/violin-offsetgroups.png
index fcfeb7980ad..5c36218b280 100644
Binary files a/test/image/baselines/violin-offsetgroups.png and b/test/image/baselines/violin-offsetgroups.png differ
diff --git a/test/image/baselines/violin_bandwidth-edge-cases.png b/test/image/baselines/violin_bandwidth-edge-cases.png
index 03b5a8b1f49..35a0ee8c2e8 100644
Binary files a/test/image/baselines/violin_bandwidth-edge-cases.png and b/test/image/baselines/violin_bandwidth-edge-cases.png differ
diff --git a/test/image/baselines/violin_box_multiple_widths.png b/test/image/baselines/violin_box_multiple_widths.png
index e9e398567ca..f2fd9f6a165 100644
Binary files a/test/image/baselines/violin_box_multiple_widths.png and b/test/image/baselines/violin_box_multiple_widths.png differ
diff --git a/test/image/baselines/violin_box_overlay.png b/test/image/baselines/violin_box_overlay.png
index cae0accc9f9..7150d01fb0b 100644
Binary files a/test/image/baselines/violin_box_overlay.png and b/test/image/baselines/violin_box_overlay.png differ
diff --git a/test/image/baselines/violin_grouped.png b/test/image/baselines/violin_grouped.png
index 5a7937e41b4..53a0c04842b 100644
Binary files a/test/image/baselines/violin_grouped.png and b/test/image/baselines/violin_grouped.png differ
diff --git a/test/image/baselines/violin_grouped_horz-multicategory.png b/test/image/baselines/violin_grouped_horz-multicategory.png
index 4eee5c3bc69..b6cdb5ea622 100644
Binary files a/test/image/baselines/violin_grouped_horz-multicategory.png and b/test/image/baselines/violin_grouped_horz-multicategory.png differ
diff --git a/test/image/baselines/violin_log_scale.png b/test/image/baselines/violin_log_scale.png
index 76d76d79bde..6f0d682c859 100644
Binary files a/test/image/baselines/violin_log_scale.png and b/test/image/baselines/violin_log_scale.png differ
diff --git a/test/image/baselines/violin_negative_sides_w_points.png b/test/image/baselines/violin_negative_sides_w_points.png
index 87f693f86e7..23c71791171 100644
Binary files a/test/image/baselines/violin_negative_sides_w_points.png and b/test/image/baselines/violin_negative_sides_w_points.png differ
diff --git a/test/image/baselines/violin_non-linear.png b/test/image/baselines/violin_non-linear.png
index 3609f3890e7..79d0eb4c103 100644
Binary files a/test/image/baselines/violin_non-linear.png and b/test/image/baselines/violin_non-linear.png differ
diff --git a/test/image/baselines/violin_old-faithful.png b/test/image/baselines/violin_old-faithful.png
index cc7b2e1040e..f1e091bf58c 100644
Binary files a/test/image/baselines/violin_old-faithful.png and b/test/image/baselines/violin_old-faithful.png differ
diff --git a/test/image/baselines/violin_one-sided.png b/test/image/baselines/violin_one-sided.png
index e384cee8f27..a9a26d6a6f4 100644
Binary files a/test/image/baselines/violin_one-sided.png and b/test/image/baselines/violin_one-sided.png differ
diff --git a/test/image/baselines/violin_only_zeroes.png b/test/image/baselines/violin_only_zeroes.png
index a9ef1c215e0..4e51d7147f7 100644
Binary files a/test/image/baselines/violin_only_zeroes.png and b/test/image/baselines/violin_only_zeroes.png differ
diff --git a/test/image/baselines/violin_positive_and_negative.png b/test/image/baselines/violin_positive_and_negative.png
index aee3de868ee..2c5cc6bd469 100644
Binary files a/test/image/baselines/violin_positive_and_negative.png and b/test/image/baselines/violin_positive_and_negative.png differ
diff --git a/test/image/baselines/violin_positive_sides_w_points.png b/test/image/baselines/violin_positive_sides_w_points.png
index a5314c831c7..8c18aef019f 100644
Binary files a/test/image/baselines/violin_positive_sides_w_points.png and b/test/image/baselines/violin_positive_sides_w_points.png differ
diff --git a/test/image/baselines/violin_ridgeplot.png b/test/image/baselines/violin_ridgeplot.png
index b463360a30e..66d3edbeb37 100644
Binary files a/test/image/baselines/violin_ridgeplot.png and b/test/image/baselines/violin_ridgeplot.png differ
diff --git a/test/image/baselines/violin_side-by-side.png b/test/image/baselines/violin_side-by-side.png
index da309be00e9..972a767978f 100644
Binary files a/test/image/baselines/violin_side-by-side.png and b/test/image/baselines/violin_side-by-side.png differ
diff --git a/test/image/baselines/violin_style.png b/test/image/baselines/violin_style.png
index 60e47221c55..b88c7a50e9e 100644
Binary files a/test/image/baselines/violin_style.png and b/test/image/baselines/violin_style.png differ
diff --git a/test/image/baselines/violin_zoomed-in.png b/test/image/baselines/violin_zoomed-in.png
index ae8e8e3225b..e10eaec4a98 100644
Binary files a/test/image/baselines/violin_zoomed-in.png and b/test/image/baselines/violin_zoomed-in.png differ
diff --git a/test/image/baselines/viridis_heatmap.png b/test/image/baselines/viridis_heatmap.png
index 3524a0bccc2..cf943012692 100644
Binary files a/test/image/baselines/viridis_heatmap.png and b/test/image/baselines/viridis_heatmap.png differ
diff --git a/test/image/baselines/waterfall-grouping-vs-defaults.png b/test/image/baselines/waterfall-grouping-vs-defaults.png
index 3f01e329cd8..66efe89f625 100644
Binary files a/test/image/baselines/waterfall-grouping-vs-defaults.png and b/test/image/baselines/waterfall-grouping-vs-defaults.png differ
diff --git a/test/image/baselines/waterfall-offsetgroups.png b/test/image/baselines/waterfall-offsetgroups.png
index fe465bb8a1b..88568228a15 100644
Binary files a/test/image/baselines/waterfall-offsetgroups.png and b/test/image/baselines/waterfall-offsetgroups.png differ
diff --git a/test/image/baselines/waterfall_11.png b/test/image/baselines/waterfall_11.png
index 6ccb1b4fccc..9d7c04f77e0 100644
Binary files a/test/image/baselines/waterfall_11.png and b/test/image/baselines/waterfall_11.png differ
diff --git a/test/image/baselines/waterfall_and_bar.png b/test/image/baselines/waterfall_and_bar.png
index e1dda68661e..e2713e94ed3 100644
Binary files a/test/image/baselines/waterfall_and_bar.png and b/test/image/baselines/waterfall_and_bar.png differ
diff --git a/test/image/baselines/waterfall_and_histogram.png b/test/image/baselines/waterfall_and_histogram.png
index 089666a61ae..9a76e3d5778 100644
Binary files a/test/image/baselines/waterfall_and_histogram.png and b/test/image/baselines/waterfall_and_histogram.png differ
diff --git a/test/image/baselines/waterfall_attrs.png b/test/image/baselines/waterfall_attrs.png
index 231255df571..f83563063e6 100644
Binary files a/test/image/baselines/waterfall_attrs.png and b/test/image/baselines/waterfall_attrs.png differ
diff --git a/test/image/baselines/waterfall_axis.png b/test/image/baselines/waterfall_axis.png
index 4ae53a912e3..34d0c9f7adf 100644
Binary files a/test/image/baselines/waterfall_axis.png and b/test/image/baselines/waterfall_axis.png differ
diff --git a/test/image/baselines/waterfall_cliponaxis-false.png b/test/image/baselines/waterfall_cliponaxis-false.png
index f01724f4dfc..a21e60fa679 100644
Binary files a/test/image/baselines/waterfall_cliponaxis-false.png and b/test/image/baselines/waterfall_cliponaxis-false.png differ
diff --git a/test/image/baselines/waterfall_custom.png b/test/image/baselines/waterfall_custom.png
index af16fd97824..b8ec83ee6b7 100644
Binary files a/test/image/baselines/waterfall_custom.png and b/test/image/baselines/waterfall_custom.png differ
diff --git a/test/image/baselines/waterfall_date-axes.png b/test/image/baselines/waterfall_date-axes.png
index e5bcd1f48a1..d07e69533e0 100644
Binary files a/test/image/baselines/waterfall_date-axes.png and b/test/image/baselines/waterfall_date-axes.png differ
diff --git a/test/image/baselines/waterfall_funnel_texttemplate_date.png b/test/image/baselines/waterfall_funnel_texttemplate_date.png
index 5a890f72b42..aa16b1b9925 100644
Binary files a/test/image/baselines/waterfall_funnel_texttemplate_date.png and b/test/image/baselines/waterfall_funnel_texttemplate_date.png differ
diff --git a/test/image/baselines/waterfall_gap0.png b/test/image/baselines/waterfall_gap0.png
index 7ea902fff82..8df5fb0f6f4 100644
Binary files a/test/image/baselines/waterfall_gap0.png and b/test/image/baselines/waterfall_gap0.png differ
diff --git a/test/image/baselines/waterfall_line.png b/test/image/baselines/waterfall_line.png
index 8fe9b89a280..b51352656de 100644
Binary files a/test/image/baselines/waterfall_line.png and b/test/image/baselines/waterfall_line.png differ
diff --git a/test/image/baselines/waterfall_months.png b/test/image/baselines/waterfall_months.png
index 47a7907c292..f83d573f763 100644
Binary files a/test/image/baselines/waterfall_months.png and b/test/image/baselines/waterfall_months.png differ
diff --git a/test/image/baselines/waterfall_multicategory.png b/test/image/baselines/waterfall_multicategory.png
index 6742ede5bb3..b847144a477 100644
Binary files a/test/image/baselines/waterfall_multicategory.png and b/test/image/baselines/waterfall_multicategory.png differ
diff --git a/test/image/baselines/waterfall_nonnumeric_sizes.png b/test/image/baselines/waterfall_nonnumeric_sizes.png
index 8fea4fcf396..a638833ef50 100644
Binary files a/test/image/baselines/waterfall_nonnumeric_sizes.png and b/test/image/baselines/waterfall_nonnumeric_sizes.png differ
diff --git a/test/image/baselines/waterfall_profit-loss_2018_positive-negative.png b/test/image/baselines/waterfall_profit-loss_2018_positive-negative.png
index e913e3f156a..22e67a6214f 100644
Binary files a/test/image/baselines/waterfall_profit-loss_2018_positive-negative.png and b/test/image/baselines/waterfall_profit-loss_2018_positive-negative.png differ
diff --git a/test/image/baselines/waterfall_profit-loss_2018vs2019_overlay.png b/test/image/baselines/waterfall_profit-loss_2018vs2019_overlay.png
index b2155e45d7b..93353646216 100644
Binary files a/test/image/baselines/waterfall_profit-loss_2018vs2019_overlay.png and b/test/image/baselines/waterfall_profit-loss_2018vs2019_overlay.png differ
diff --git a/test/image/baselines/waterfall_profit-loss_2018vs2019_rectangle.png b/test/image/baselines/waterfall_profit-loss_2018vs2019_rectangle.png
index 7aae25906eb..e09ea3cdad4 100644
Binary files a/test/image/baselines/waterfall_profit-loss_2018vs2019_rectangle.png and b/test/image/baselines/waterfall_profit-loss_2018vs2019_rectangle.png differ
diff --git a/test/image/baselines/waterfall_profit-loss_2018vs2019_textinfo_base.png b/test/image/baselines/waterfall_profit-loss_2018vs2019_textinfo_base.png
index 9ecbeb6bfb8..5685522f47d 100644
Binary files a/test/image/baselines/waterfall_profit-loss_2018vs2019_textinfo_base.png and b/test/image/baselines/waterfall_profit-loss_2018vs2019_textinfo_base.png differ
diff --git a/test/image/baselines/world-cals.png b/test/image/baselines/world-cals.png
index dd263b2c21e..ce82b2cafa9 100644
Binary files a/test/image/baselines/world-cals.png and b/test/image/baselines/world-cals.png differ
diff --git a/test/image/baselines/yaxis-over-yaxis2.png b/test/image/baselines/yaxis-over-yaxis2.png
index 03efae11d59..0bbf13638ed 100644
Binary files a/test/image/baselines/yaxis-over-yaxis2.png and b/test/image/baselines/yaxis-over-yaxis2.png differ
diff --git a/test/image/baselines/yignbu_heatmap.png b/test/image/baselines/yignbu_heatmap.png
index 1f07b1fbcd7..cb18d33dd01 100644
Binary files a/test/image/baselines/yignbu_heatmap.png and b/test/image/baselines/yignbu_heatmap.png differ
diff --git a/test/image/baselines/yiorrd_heatmap.png b/test/image/baselines/yiorrd_heatmap.png
index 04e5c8a825b..48a88d2795f 100644
Binary files a/test/image/baselines/yiorrd_heatmap.png and b/test/image/baselines/yiorrd_heatmap.png differ
diff --git a/test/image/baselines/zsmooth_methods.png b/test/image/baselines/zsmooth_methods.png
index 17507ac5f1b..be3d3ce3135 100644
Binary files a/test/image/baselines/zsmooth_methods.png and b/test/image/baselines/zsmooth_methods.png differ
diff --git a/test/image/compare_pixels_test.js b/test/image/compare_pixels_test.js
index 724acdd9393..20f24b87d9e 100644
--- a/test/image/compare_pixels_test.js
+++ b/test/image/compare_pixels_test.js
@@ -1,28 +1,12 @@
-var fs = require('fs');
 var minimist = require('minimist');
+var pixelmatch = require('pixelmatch');
+var PNG = require('pngjs').PNG;
+var fs = require('fs');
 
 var common = require('../../tasks/util/common');
 var getMockList = require('./assets/get_mock_list');
-var getRequestOpts = require('./assets/get_image_request_options');
 var getImagePaths = require('./assets/get_image_paths');
 
-// packages inside the image server docker
-var test = require('tape');
-var request = require('request');
-var gm = require('gm');
-
-// pixel comparison tolerance
-var TOLERANCE = 1e-6;
-
-// wait time between each test batch
-var BATCH_WAIT = 500;
-
-// number of tests in each test batch
-var BATCH_SIZE = 5;
-
-// wait time between each test in test queue
-var QUEUE_WAIT = 10;
-
 /**
  *  Image pixel comparison test script.
  *
@@ -31,12 +15,10 @@ var QUEUE_WAIT = 10;
  *  CLI arguments:
  *
  *  1. 'pattern' : glob determining which mock(s) are to be tested
- *  2. --queue : if sent, the image will be run in queue instead of in batch.
- *      Makes the test run significantly longer, but is recommended on weak hardware.
  *
  *  Examples:
  *
- *  Run all tests in batch:
+ *  Run all tests:
  *
  *      npm run test-image
  *
@@ -44,21 +26,16 @@ var QUEUE_WAIT = 10;
  *
  *      npm run test-image -- contour_nolines
  *
- *  Run all gl3d image test in queue:
- *
- *      npm run test-image -- gl3d_* --queue
+ *  Run all gl3d image test
  *
+ *      npm run test-image -- gl3d_*
  *
  */
 
-var argv = minimist(process.argv.slice(2), {
-    boolean: ['queue', 'filter', 'skip-flaky', 'just-flaky']
-});
+var argv = minimist(process.argv.slice(2), {});
 
-var allMock = false;
 // If no pattern is provided, all mocks are compared
 if(argv._.length === 0) {
-    allMock = true;
     argv._.push('');
 }
 
@@ -68,7 +45,7 @@ argv._.forEach(function(pattern) {
     var mockList = getMockList(pattern);
 
     if(mockList.length === 0) {
-        throw new Error('No mocks found with pattern ' + pattern);
+        throw 'No mocks found with pattern ' + pattern;
     }
 
     allMockList = allMockList.concat(mockList);
@@ -80,230 +57,86 @@ function unique(value, index, self) {
 }
 allMockList = allMockList.filter(unique);
 
-// Skip MathJax mocks that are tested using orca in noci_test
-var MATHJAX_LIST = [
-    'mathjax',
-    'ternary-mathjax',
-    'table_plain_birds',
-    'table_wrapped_birds',
-    'parcats_grid_subplots',
-    'legend_mathjax_title_and_items',
-    'table_latex_multitrace_scatter'
-];
-allMockList = allMockList.filter(function(e) {
-    return MATHJAX_LIST.indexOf(e) === -1;
-});
-
-// filter out untestable mocks if no pattern is specified (ie. we're testing all mocks)
-// or if flag '--filter' is provided
-console.log('');
-if(allMock || argv.filter) {
-    console.log('Filtering out untestable mocks:');
-    // Test cases:
-    // - font-wishlist
-    // - all mapbox
-    // don't behave consistently from run-to-run and/or
-    // machine-to-machine; skip over them for now.
-    allMockList = allMockList.filter(function(mockName) {
-        var cond = !(
-            mockName === 'font-wishlist' ||
-            mockName.indexOf('mapbox_') !== -1
-        );
-        if(!cond) console.log(' -', mockName);
-        return cond;
-    });
-}
-
-var FLAKY_LIST = [
-    'uniformtext_pie_8_tangential',
-    'treemap_coffee',
-    'treemap_textposition',
-    'treemap_with-without_values',
-    'sunburst_with-without_values'
-];
-
-console.log('');
-if(argv['skip-flaky']) {
-    allMockList = allMockList.filter(function(mockName) {
-        var cond = FLAKY_LIST.indexOf(mockName) === -1;
-        if(!cond) console.log('Skipping flaky mock', mockName);
-        return cond;
-    });
-} else if(argv['just-flaky']) {
-    allMockList = allMockList.filter(function(mockName) {
-        return FLAKY_LIST.indexOf(mockName) !== -1;
-    });
-}
-
-/* gl2d pointcloud and other non-regl gl2d mock(s)
- * must be tested first on in order to work;
- * sort them here.
- *
- * gl-shader appears to conflict with regl.
- * We suspect that the lone gl context on CircleCI is
- * having issues with dealing with the two different
- * program binding algorithm.
- *
- * The problem will be solved by switching all our
- * WebGL-based trace types to regl.
- *
- * More info here:
- * https://github.com/plotly/plotly.js/pull/1037
- */
-function sortGl2dMockList(mockList) {
-    var mockNames = ['gl2d_pointcloud-basic', 'gl2d_heatmapgl'];
-    var pos = 0;
-
-    mockNames.forEach(function(m) {
-        var ind = mockList.indexOf(m);
-        if(ind === -1) return;
-        var tmp = mockList[pos];
-        mockList[pos] = m;
-        mockList[ind] = tmp;
-        pos++;
-    });
-}
-
-function runInBatch(mockList) {
-    var running = 0;
-
-    test('testing mocks in batch', function(t) {
-        t.plan(mockList.length);
-
-        for(var i = 0; i < mockList.length; i++) {
-            run(mockList[i], t);
-        }
-    });
-
-    function run(mockName, t) {
-        if(running >= BATCH_SIZE) {
-            setTimeout(function() {
-                run(mockName, t);
-            }, BATCH_WAIT);
-            return;
-        }
-        running++;
-
-        // throttle the number of tests running concurrently
-
-        comparePixels(mockName, function(isEqual, mockName) {
-            running--;
-            t.ok(isEqual, mockName + ' should be pixel perfect');
-        });
+var skipped = [];
+var failed = [];
+var fail = function(mockName) {
+    if(failed.indexOf(mockName) === -1) {
+        failed.push(mockName);
     }
-}
-
-function runInQueue(mockList) {
-    var index = 0;
-
-    test('testing mocks in queue', function(t) {
-        t.plan(mockList.length);
-
-        run(mockList[index], t);
-    });
-
-    function run(mockName, t) {
-        comparePixels(mockName, function(isEqual, mockName) {
-            t.ok(isEqual, mockName + ' should be pixel perfect');
-
-            index++;
-            if(index < mockList.length) {
-                setTimeout(function() {
-                    run(mockList[index], t);
-                }, QUEUE_WAIT);
-            }
-        });
+};
+for(var i = 0; i < allMockList.length; i++) {
+    var mockName = allMockList[i];
+
+    // skip blacklist
+    if([
+        'mapbox_density0-legend',
+        'mapbox_osm-style'
+    ].indexOf(mockName) !== -1) {
+        continue;
     }
-}
 
-function comparePixels(mockName, cb) {
-    var requestOpts = getRequestOpts({ mockName: mockName });
     var imagePaths = getImagePaths(mockName);
-    var saveImageStream = fs.createWriteStream(imagePaths.test);
+    var base = imagePaths.baseline;
+    var test = imagePaths.test;
 
-    function log(msg) {
-        process.stdout.write('Error for', mockName + ':', msg);
+    if(!common.doesFileExist(test)) {
+        console.log('- skip:', mockName);
+        skipped.push(mockName);
+        continue;
+    }
+    console.log('+ test:', mockName);
+
+    var img0 = PNG.sync.read(fs.readFileSync(base));
+    var img1 = PNG.sync.read(fs.readFileSync(test));
+    var s0, s1, key;
+
+    key = 'width';
+    s0 = img0[key];
+    s1 = img0[key];
+    if(s0 !== s1) {
+        console.error(key + 's do not match: ' + s0 + ' vs ' + s1);
+        fail(mockName);
     }
 
-    function checkImage() {
-        // baseline image must be generated first
-        if(!common.doesFileExist(imagePaths.baseline)) {
-            var err = new Error('baseline image not found');
-            return onEqualityCheck(err, false);
-        }
-
-        /*
-         * N.B. The non-zero tolerance was added in
-         * https://github.com/plotly/plotly.js/pull/243
-         * where some legend mocks started generating different png outputs
-         * on `npm run test-image` and `npm run test-image -- mock.json`.
-         *
-         * Note that the svg outputs for the problematic mocks were the same
-         * and playing around with the batch size and timeout durations
-         * did not seem to affect the results.
-         *
-         * With the above tolerance individual `npm run test-image` and
-         * `npm run test-image -- mock.json` give the same result.
-         *
-         * Further investigation is needed.
-         */
+    key = 'height';
+    s0 = img0[key];
+    s1 = img0[key];
+    if(s0 !== s1) {
+        console.error(key + 's do not match: ' + s0 + ' vs ' + s1);
+        fail(mockName);
+    }
 
-        var gmOpts = {
-            file: imagePaths.diff,
-            highlightColor: 'purple',
-            tolerance: TOLERANCE
-        };
+    var width = img0.width;
+    var height = img0.height;
 
-        gm.compare(
-            imagePaths.test,
-            imagePaths.baseline,
-            gmOpts,
-            onEqualityCheck
-        );
-    }
+    var diff = new PNG({
+        width: width,
+        height: height
+    });
 
-    function onEqualityCheck(err, isEqual) {
-        if(err) {
-            common.touch(imagePaths.diff);
-            log(err);
-            return cb(false, mockName);
-        }
-        if(isEqual) {
-            fs.unlinkSync(imagePaths.diff);
-            fs.unlinkSync(imagePaths.test);
-        }
+    var shouldBePixelPerfect = mockName.substr(0, 7) !== 'mapbox_' && [
+        // list flaky mocks other than mapbox:
+        'gl3d_bunny-hull'
+    ].indexOf(mockName) === -1;
 
-        cb(isEqual, mockName);
-    }
+    var numDiffPixels = pixelmatch(img0.data, img1.data, diff.data, width, height, {
+        threshold: shouldBePixelPerfect ? 0 : 0.2
+    });
 
-    // 525 means a plotly.js error
-    function onResponse(response) {
-        if(+response.statusCode === 525) {
-            log('plotly.js error');
-            return cb(false, mockName);
-        }
-    }
+    if(numDiffPixels) {
+        fs.writeFileSync(imagePaths.diff, PNG.sync.write(diff));
 
-    // this catches connection errors
-    // e.g. when the image server blows up
-    function onError(err) {
-        log(err);
-        return cb(false, mockName);
+        console.error('pixels do not match: ' + numDiffPixels);
+        fail(mockName);
+    } else {
+        // remove when identical
+        fs.unlinkSync(imagePaths.test);
     }
-
-    request(requestOpts)
-        .on('error', onError)
-        .on('response', onResponse)
-        .pipe(saveImageStream)
-        .on('close', checkImage);
 }
 
-sortGl2dMockList(allMockList);
-console.log('');
-
-// main
-if(argv.queue) {
-    runInQueue(allMockList);
-} else {
-    runInBatch(allMockList);
+if(failed.length || skipped.length) {
+    throw JSON.stringify({
+        failed: failed,
+        skipped: skipped
+    }, null, 2);
 }
diff --git a/test/image/export_test.js b/test/image/export_test.js
index 330503f3ee7..5b8e53119bc 100644
--- a/test/image/export_test.js
+++ b/test/image/export_test.js
@@ -1,40 +1,36 @@
-var fs = require('fs');
 var probeSync = require('probe-image-size/sync');
+var PNG = require('pngjs').PNG;
+var fs = require('fs');
 
 var getMockList = require('./assets/get_mock_list');
-var getRequestOpts = require('./assets/get_image_request_options');
 var getImagePaths = require('./assets/get_image_paths');
 
-// packages inside the image server docker
-var request = require('request');
-var test = require('tape');
-
 // image formats to test
 //
 // N.B. 'png' is tested in `npm run test-image, no need to duplicate here
-//
-// N.B. 'jpeg' and 'webp' lead to errors because of the image server code
-//      is looking for Plotly.Color which isn't exposed anymore
-var FORMATS = ['svg', 'pdf', 'eps'];
-
-// non-exhaustive list of mocks to test
-var DEFAULT_LIST = [
-    '0', 'geo_first', 'gl3d_z-range', 'text_export', 'layout_image', 'gl2d_12',
-    'range_slider_initial_valid'
-];
+var FORMATS = ['svg', 'jpg', 'jpeg', 'webp', 'eps', 'pdf'];
 
-// return dimensions [in px]
-var WIDTH = 700;
-var HEIGHT = 500;
+var ONLY_FILE_SIZE = ['eps', 'pdf'];
 
 // minimum satisfactory file size [in bytes]
 var MIN_SIZE = 100;
 
-// wait time between each test batch
-var BATCH_WAIT = 500;
-
-// number of tests in each test batch
-var BATCH_SIZE = 5;
+// non-exhaustive list of mocks to test
+var DEFAULT_LIST = [
+    'plot_types',
+    'annotations',
+    'shapes',
+    'range_slider',
+    'contour_legend-colorscale',
+    'layout_image',
+    'image_astronaut_source',
+    'gl2d_no-clustering2',
+    'gl3d_surface-heatmap-treemap_transparent-colorscale',
+    'mapbox_stamen-style',
+    'zsmooth_methods',
+    'fonts',
+    'mathjax'
+];
 
 /**
  *  Image export test script.
@@ -47,7 +43,7 @@ var BATCH_SIZE = 5;
  *
  *  Examples:
  *
- *  Run the export test on the default mock list (in batch):
+ *  Run the export test on the default mock list:
  *
  *      npm run test-image
  *
@@ -55,7 +51,7 @@ var BATCH_SIZE = 5;
  *
  *      npm run test-image -- contour_nolines
  *
- *  Run the export test on all gl3d mocks (in batch):
+ *  Run the export test on all gl3d mocks:
  *
  *      npm run test-image -- gl3d_*
  */
@@ -64,74 +60,48 @@ var pattern = process.argv[2];
 var mockList = pattern ? getMockList(pattern) : DEFAULT_LIST;
 
 if(mockList.length === 0) {
-    throw new Error('No mocks found with pattern ' + pattern);
+    throw 'No mocks found with pattern ' + pattern;
 }
 
-// main
-runInBatch(mockList);
-
-function runInBatch(mockList) {
-    var running = 0;
-
-    test('testing image export formats', function(t) {
-        t.plan(mockList.length * FORMATS.length);
+var failed = 0;
+for(var i = 0; i < mockList.length; i++) {
+    for(var j = 0; j < FORMATS.length; j++) {
+        var mockName = mockList[i];
+        var format = FORMATS[j];
+        var base = getImagePaths(mockName).baseline;
+        var test = getImagePaths(mockName, format).test;
+        console.log('testing sizes of' + mockName + '.' + format);
+
+        var fileSize = fs.statSync(test).size;
+        if(!(fileSize >= MIN_SIZE)) {
+            console.error('invalid file size: ' + fileSize);
+            failed++;
+        }
 
-        for(var i = 0; i < mockList.length; i++) {
-            for(var j = 0; j < FORMATS.length; j++) {
-                run(mockList[i], FORMATS[j], t);
+        if(ONLY_FILE_SIZE.indexOf(format) === -1) {
+            var img0 = PNG.sync.read(fs.readFileSync(base));
+            var img1 = probeSync(fs.readFileSync(test));
+            var s0, s1, key;
+
+            key = 'width';
+            s0 = img0[key];
+            s1 = img1[key];
+            if(s0 !== s1) {
+                console.error(key + 's do not match: ' + s0 + ' vs ' + s1);
+                failed++;
             }
-        }
-    });
 
-    function run(mockName, format, t) {
-        if(running >= BATCH_SIZE) {
-            setTimeout(function() {
-                run(mockName, format, t);
-            }, BATCH_WAIT);
-            return;
+            key = 'height';
+            s0 = img0[key];
+            s1 = img1[key];
+            if(s0 !== s1) {
+                console.error(key + 's do not match: ' + s0 + ' vs ' + s1);
+                failed++;
+            }
         }
-        running++;
-
-        // throttle the number of tests running concurrently
-
-        testExport(mockName, format, function(didExport, mockName, format) {
-            running--;
-            t.ok(didExport, mockName + ' should be properly exported as a ' + format);
-        });
     }
 }
 
-// The tests below determine whether the images are properly
-// exported by (only) checking the file size of the generated images.
-function testExport(mockName, format, cb) {
-    var specs = {
-        mockName: mockName,
-        format: format,
-        width: WIDTH,
-        height: HEIGHT
-    };
-
-    var requestOpts = getRequestOpts(specs);
-    var imagePaths = getImagePaths(mockName, format);
-    var saveImageStream = fs.createWriteStream(imagePaths.test);
-
-    function checkExport(err) {
-        if(err) throw err;
-
-        var didExport;
-
-        if(format === 'svg') {
-            var dims = probeSync(fs.readFileSync(imagePaths.test));
-            didExport = (dims.width === WIDTH) && (dims.height === HEIGHT);
-        } else {
-            var stats = fs.statSync(imagePaths.test);
-            didExport = stats.size > MIN_SIZE;
-        }
-
-        cb(didExport, mockName, format);
-    }
-
-    request(requestOpts)
-        .pipe(saveImageStream)
-        .on('close', checkExport);
+if(failed) {
+    throw 'Problem during export.';
 }
diff --git a/test/image/index.html b/test/image/index.html
deleted file mode 100644
index a9ba7849d07..00000000000
--- a/test/image/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/test/image/make_baseline.js b/test/image/make_baseline.js
index ab7b3f39660..884befdaf57 100644
--- a/test/image/make_baseline.js
+++ b/test/image/make_baseline.js
@@ -1,28 +1,19 @@
-var fs = require('fs');
 var minimist = require('minimist');
+var path = require('path');
+var spawn = require('child_process').spawn;
 
 var getMockList = require('./assets/get_mock_list');
-var getRequestOpts = require('./assets/get_image_request_options');
-var getImagePaths = require('./assets/get_image_paths');
-
-// packages inside the image server docker
-var request = require('request');
-
-// wait time between each baseline generation
-var QUEUE_WAIT = 10;
 
 /**
  *  Baseline image generation script.
  *
- *  Called by `tasks/baseline.sh in `npm run baseline`.
- *
  *  CLI arguments:
  *
  *  1. 'pattern' : glob determining the baseline(s) to be generated
  *
  *  Examples:
  *
- *  Generate or (re-generate) all baselines (in queue):
+ *  Generate or (re-generate) all baselines:
  *
  *      npm run baseline
  *
@@ -30,7 +21,7 @@ var QUEUE_WAIT = 10;
  *
  *      npm run baseline -- contour_nolines
  *
- *  Generate or (re-generate) all gl3d baseline (in queue):
+ *  Generate or (re-generate) all gl3d baseline:
  *
  *      npm run baseline -- gl3d_*
  *
@@ -49,41 +40,21 @@ argv._.forEach(function(pattern) {
     allMockList = allMockList.concat(mockList);
 });
 
-// main
-runInQueue(allMockList);
-
-function runInQueue(mockList) {
-    var index = 0;
-
-    run(mockList[index]);
-
-    function run(mockName) {
-        makeBaseline(mockName, function() {
-            console.log('generated ' + mockName + ' successfully');
-
-            index++;
-            if(index < mockList.length) {
-                setTimeout(function() {
-                    run(mockList[index]);
-                }, QUEUE_WAIT);
-            }
-        });
-    }
-}
-
-function makeBaseline(mockName, cb) {
-    var requestOpts = getRequestOpts({ mockName: mockName });
-    var imagePaths = getImagePaths(mockName);
-    var saveImageStream = fs.createWriteStream(imagePaths.baseline);
-
-    function checkFormat(err, res) {
-        if(err) throw err;
-        if(res.headers['content-type'] !== 'image/png') {
-            throw new Error('Generated image is not a valid png');
-        }
-    }
-
-    request(requestOpts, checkFormat)
-        .pipe(saveImageStream)
-        .on('close', cb);
+if(allMockList.length) console.log(allMockList);
+console.log('Please wait for the process to complete.');
+
+var p = spawn(
+    'python3',
+    [
+        path.join('test', 'image', 'make_baseline.py'),
+        '= ' + allMockList.join(' ')
+    ]
+);
+try {
+    p.stdout.on('data', function(data) {
+        console.log(data.toString());
+    });
+} catch(e) {
+    console.error(e.stack);
+    p.exit(1);
 }
diff --git a/test/image/make_baseline.py b/test/image/make_baseline.py
new file mode 100644
index 00000000000..18f3d0c22ce
--- /dev/null
+++ b/test/image/make_baseline.py
@@ -0,0 +1,116 @@
+import os
+import sys
+import json
+import plotly.io as pio
+
+args = []
+if len(sys.argv) == 2 :
+    args = sys.argv[1].split()
+elif len(sys.argv) > 1 :
+    args = sys.argv
+
+root = os.getcwd()
+dirIn = os.path.join(root, 'test', 'image', 'mocks')
+dirOut = os.path.join(root, 'build', 'test_images')
+
+if '=' in args :
+    args = args[args.index('=') + 1:]
+    dirOut = os.path.join(root, 'test', 'image', 'baselines')
+    print('output to', dirOut)
+
+pio.templates.default = 'none'
+pio.kaleido.scope.plotlyjs = os.path.join(root, 'build', 'plotly.js')
+# TODO: specify local mathjax and plotly-geo-assets files?
+
+_credentials = open(os.path.join(root, 'build', 'credentials.json'), 'r')
+pio.kaleido.scope.mapbox_access_token = json.load(_credentials)['MAPBOX_ACCESS_TOKEN']
+_credentials.close()
+
+ALL_MOCKS = [os.path.splitext(a)[0] for a in os.listdir(dirIn) if a.endswith('.json')]
+ALL_MOCKS.sort()
+
+if len(args) > 0 :
+    allNames = [a for a in args if a in ALL_MOCKS]
+else :
+    allNames = ALL_MOCKS
+
+# gl2d pointcloud and other non-regl gl2d mock(s)
+# must be tested in certain order to work on CircleCI;
+#
+# gl-shader appears to conflict with regl.
+# We suspect that the lone gl context on CircleCI is
+# having issues with dealing with the two different
+# program binding algorithm.
+#
+# The problem will be solved by switching all our
+# WebGL-based trace types to regl.
+#
+# More info here:
+# https://github.com/plotly/plotly.js/pull/1037
+
+LAST = [
+    'gl2d_pointcloud-basic',
+    'gl2d_heatmapgl',
+    'gl2d_heatmapgl_discrete'
+]
+
+HAD = [item in allNames for item in LAST]
+
+allNames = [a for a in allNames if a not in LAST]
+
+allNames += [item for item, had_item in zip(LAST, HAD) if had_item]
+
+# unable to generate baselines for the following mocks
+blacklist = [
+    'mapbox_density0-legend',
+    'mapbox_osm-style'
+]
+allNames = [a for a in allNames if a not in blacklist]
+
+if len(allNames) == 0 :
+    print('error: Nothing to create!')
+    sys.exit(1)
+
+failed = []
+for name in allNames :
+    print(name)
+
+    created = False
+
+    MAX_RETRY = 2 # 1 means retry once
+    for attempt in range(0, MAX_RETRY + 1) :
+        with open(os.path.join(dirIn, name + '.json'), 'r') as _in :
+            fig = json.load(_in)
+
+            width = 700
+            height = 500
+            if 'layout' in fig :
+                layout = fig['layout']
+                if 'autosize' not in layout or layout['autosize'] != True :
+                    if 'width' in layout :
+                        width = layout['width']
+                    if 'height' in layout :
+                        height = layout['height']
+
+            try :
+                pio.write_image(
+                    fig=fig,
+                    file=os.path.join(dirOut, name + '.png'),
+                    width=width,
+                    height=height,
+                    validate=False
+                )
+                created = True
+            except Exception as e :
+                print(e)
+                if attempt < MAX_RETRY :
+                    print('retry', attempt + 1, '/', MAX_RETRY)
+                else :
+                    failed.append(name)
+
+        if(created) : break
+
+if len(failed) > 0 :
+    print('Failed at :')
+    print(failed)
+    sys.exit(1)
diff --git a/test/image/make_exports.py b/test/image/make_exports.py
new file mode 100644
index 00000000000..e1614e387bf
--- /dev/null
+++ b/test/image/make_exports.py
@@ -0,0 +1,67 @@
+import os
+import sys
+import json
+import plotly.io as pio
+
+root = os.getcwd()
+dirIn = os.path.join(root, 'test', 'image', 'mocks')
+dirOut = os.path.join(root, 'build', 'test_images')
+
+pio.templates.default = 'none'
+pio.kaleido.scope.plotlyjs = os.path.join(root, 'build', 'plotly.js')
+
+_credentials = open(os.path.join(root, 'build', 'credentials.json'), 'r')
+pio.kaleido.scope.mapbox_access_token = json.load(_credentials)['MAPBOX_ACCESS_TOKEN']
+_credentials.close()
+
+allFormats = ['svg', 'jpg', 'jpeg', 'webp', 'eps', 'pdf']
+# 'png' is tested by image-test
+
+allNames = [
+    'plot_types',
+    'annotations',
+    'shapes',
+    'range_slider',
+    'contour_legend-colorscale',
+    'layout_image',
+    'image_astronaut_source',
+    'gl2d_no-clustering2',
+    'gl3d_surface-heatmap-treemap_transparent-colorscale',
+    'mapbox_stamen-style',
+    'zsmooth_methods',
+    'fonts',
+    'mathjax'
+]
+
+failed = 0
+for name in allNames :
+    for fmt in allFormats :
+        print(name + ' --> ' + fmt)
+
+        with open(os.path.join(dirIn, name + '.json'), 'r') as _in :
+            fig = json.load(_in)
+
+            width = 700
+            height = 500
+            if 'layout' in fig :
+                layout = fig['layout']
+                if 'autosize' not in layout or layout['autosize'] != True :
+                    if 'width' in layout :
+                        width = layout['width']
+                    if 'height' in layout :
+                        height = layout['height']
+
+            try :
+                pio.write_image(
+                    fig=fig,
+                    file=os.path.join(dirOut, name + '.' + fmt),
+                    width=width,
+                    height=height,
+                    validate=False
+                )
+
+            except Exception as e :
+                print(e)
+                failed += 1
+
+if failed > 0 : sys.exit(1)
diff --git a/test/image/mocks/font-wishlist.json b/test/image/mocks/font-wishlist.json
index 98946c6bc6d..913a4ea0bfb 100644
--- a/test/image/mocks/font-wishlist.json
+++ b/test/image/mocks/font-wishlist.json
@@ -39,10 +39,10 @@
                 "y": 1,
                 "xref": "paper",
                 "yref": "paper",
-                "text": "Droid Sans Italic",
+                "text": "Noto Sans Italic",
                 "showarrow": false,
                 "font": {
-                    "family": "Droid Sans, sans-serif",
+                    "family": "Noto Sans, sans-serif",
                     "size": 28
                 },
                 "xanchor": "left",
@@ -57,10 +57,10 @@
                 "y": 0.875,
                 "xref": "paper",
                 "yref": "paper",
-                "text": "Droid Sans Mono Bold",
+                "text": "Noto Sans Mono Bold",
                 "showarrow": false,
                 "font": {
-                    "family": "Droid Sans Mono, sans-serif",
+                    "family": "Noto Sans Mono, sans-serif",
                     "size": 28
                 },
                 "xanchor": "left",
@@ -75,10 +75,10 @@
                 "y": 0.75,
                 "xref": "paper",
                 "yref": "paper",
-                "text": "Droid Sans Mono Italic",
+                "text": "Noto Sans Mono Italic",
                 "showarrow": false,
                 "font": {
-                    "family": "Droid Sans Mono, sans-serif",
+                    "family": "Noto Sans Mono, sans-serif",
                     "size": 28
                 },
                 "xanchor": "left",
diff --git a/test/image/mocks/fonts.json b/test/image/mocks/fonts.json
index 529d0570f3f..d609a6824d2 100644
--- a/test/image/mocks/fonts.json
+++ b/test/image/mocks/fonts.json
@@ -109,14 +109,14 @@
             },
             {
                 "yanchor":"middle",
-                "text":"Balto Bold Italic",
+                "text":"Roboto Bold Italic",
                 "arrowsize":1,
                 "textangle":0,
                 "borderwidth":1,
                 "ay":-26.0078125,
                 "ax":-10,
                 "font":{
-                    "family":"Balto, sans-serif",
+                    "family":"Roboto, sans-serif",
                     "size":20
                 },
                 "arrowcolor":"",
@@ -163,14 +163,14 @@
             },
             {
                 "yanchor":"middle",
-                "text":"Droid Sans Bold",
+                "text":"Noto Sans Bold",
                 "arrowsize":1,
                 "textangle":0,
                 "borderwidth":1,
                 "ay":-27.0390625,
                 "ax":-10,
                 "font":{
-                    "family":"Droid Sans, sans-serif",
+                    "family":"Noto Sans, sans-serif",
                     "size":20
                 },
                 "arrowcolor":"",
@@ -190,14 +190,14 @@
             },
             {
                 "yanchor":"middle",
-                "text":"Droid Serif Bold Italic",
+                "text":"Noto Serif Bold Italic",
                 "arrowsize":1,
                 "textangle":0,
                 "borderwidth":1,
                 "ay":-27.0390625,
                 "ax":-10,
                 "font":{
-                    "family":"Droid Serif, serif",
+                    "family":"Noto Serif, serif",
                     "size":20
                 },
                 "arrowcolor":"",
@@ -217,14 +217,14 @@
             },
             {
                 "yanchor":"middle",
-                "text":"Droid Sans Mono",
+                "text":"Noto Sans Mono",
                 "arrowsize":1,
                 "textangle":0,
                 "borderwidth":1,
                 "ay":-27.9765625,
                 "ax":-10,
                 "font":{
-                    "family":"Droid Sans Mono, sans-serif",
+                    "family":"Noto Sans Mono, sans-serif",
                     "size":20
                 },
                 "arrowcolor":"",
diff --git a/test/image/mocks/geo_canadian-cities.json b/test/image/mocks/geo_canadian-cities.json
index 1f6dbc96fcd..11058db5e39 100644
--- a/test/image/mocks/geo_canadian-cities.json
+++ b/test/image/mocks/geo_canadian-cities.json
@@ -80,7 +80,7 @@
             }
         },
         "font": {
-            "family": "Droid Serif, serif"
+            "family": "Noto Serif, serif"
         },
         "geo": {
             "scope": "north america",
diff --git a/test/image/mocks/geo_text_chart_arrays.json b/test/image/mocks/geo_text_chart_arrays.json
index 893c6f46ee1..b6b5a763827 100644
--- a/test/image/mocks/geo_text_chart_arrays.json
+++ b/test/image/mocks/geo_text_chart_arrays.json
@@ -97,11 +97,11 @@
                 ],
                 "family": [
                     "Arial, sans-serif",
-                    "Balto, sans-serif",
+                    "Roboto, sans-serif",
                     "Courier New, monospace",
-                    "Droid Sans, sans-serif",
-                    "Droid Serif, serif",
-                    "Droid Sans Mono, sans-serif",
+                    "Noto Sans, sans-serif",
+                    "Noto Serif, serif",
+                    "Noto Sans Mono, sans-serif",
                     "Gravitas One, cursive",
                     "Old Standard TT, serif",
                     "Open Sans, sans-serif",
diff --git a/test/image/mocks/gl2d_fonts.json b/test/image/mocks/gl2d_fonts.json
index 4c4866609f7..f06756e1b8d 100644
--- a/test/image/mocks/gl2d_fonts.json
+++ b/test/image/mocks/gl2d_fonts.json
@@ -165,10 +165,10 @@
                 "y": 0.9090909090909091,
                 "xref": "paper",
                 "yref": "paper",
-                "text": "Balto Bold Italic",
+                "text": "Roboto Bold Italic",
                 "showarrow": false,
                 "font": {
-                    "family": "Balto, sans-serif",
+                    "family": "Roboto, sans-serif",
                     "size": 20
                 },
                 "xanchor": "left",
@@ -219,10 +219,10 @@
                 "y": 0.7272727272727273,
                 "xref": "paper",
                 "yref": "paper",
-                "text": "Droid Sans Bold",
+                "text": "Noto Sans Bold",
                 "showarrow": false,
                 "font": {
-                    "family": "Droid Sans, sans-serif",
+                    "family": "Noto Sans, sans-serif",
                     "size": 20
                 },
                 "xanchor": "left",
@@ -246,10 +246,10 @@
                 "y": 0.6363636363636364,
                 "xref": "paper",
                 "yref": "paper",
-                "text": "Droid Serif Bold Italic",
+                "text": "Noto Serif Bold Italic",
                 "showarrow": false,
                 "font": {
-                    "family": "Droid Serif, serif",
+                    "family": "Noto Serif, serif",
                     "size": 20
                 },
                 "xanchor": "left",
@@ -273,10 +273,10 @@
                 "y": 0.5454545454545454,
                 "xref": "paper",
                 "yref": "paper",
-                "text": "Droid Sans Mono",
+                "text": "Noto Sans Mono",
                 "showarrow": false,
                 "font": {
-                    "family": "Droid Sans Mono, sans-serif",
+                    "family": "Noto Sans Mono, sans-serif",
                     "size": 20
                 },
                 "xanchor": "left",
diff --git a/test/image/mocks/gl2d_text_chart_arrays.json b/test/image/mocks/gl2d_text_chart_arrays.json
index a48850c8ac2..16c665daeb6 100644
--- a/test/image/mocks/gl2d_text_chart_arrays.json
+++ b/test/image/mocks/gl2d_text_chart_arrays.json
@@ -20,7 +20,7 @@
             ],
             "textfont": {
                 "family": [
-                    "Droid Sans, sans-serif",
+                    "Noto Sans, sans-serif",
                     "Old Standard TT, serif",
                     "PT Sans Narrow, sans-serif"
                 ],
@@ -67,7 +67,7 @@
             ],
             "textfont": {
                 "family": [
-                    "Droid Sans Mono, sans-serif",
+                    "Noto Sans Mono, sans-serif",
                     "Raleway, sans-serif",
                     "Times New Roman, Times, serif"
                 ],
diff --git a/test/image/mocks/gl2d_text_chart_invalid-arrays.json b/test/image/mocks/gl2d_text_chart_invalid-arrays.json
index 3207c2ca635..82f446b599d 100644
--- a/test/image/mocks/gl2d_text_chart_invalid-arrays.json
+++ b/test/image/mocks/gl2d_text_chart_invalid-arrays.json
@@ -20,7 +20,7 @@
             ],
             "textfont": {
                 "family": [
-                    "Droid Sans, sans-serif",
+                    "Noto Sans, sans-serif",
                     "Old Standard TT, serif",
                     "PT Sans Narrow, sans-serif"
                 ],
@@ -62,7 +62,7 @@
             ],
             "textfont": {
                 "family": [
-                    "Droid Sans Mono, sans-serif",
+                    "Noto Sans Mono, sans-serif",
                     "Raleway, sans-serif",
                     "Times New Roman, Times, serif"
                 ],
diff --git a/test/image/mocks/text_chart_arrays.json b/test/image/mocks/text_chart_arrays.json
index 734c9caee91..d0cea811e20 100644
--- a/test/image/mocks/text_chart_arrays.json
+++ b/test/image/mocks/text_chart_arrays.json
@@ -20,7 +20,7 @@
             ],
             "textfont": {
                 "family": [
-                    "Droid Sans, sans-serif",
+                    "Noto Sans, sans-serif",
                     "Old Standard TT, serif",
                     "PT Sans Narrow, sans-serif"
                 ],
@@ -67,7 +67,7 @@
             ],
             "textfont": {
                 "family": [
-                    "Droid Sans Mono, sans-serif",
+                    "Noto Sans Mono, sans-serif",
                     "Raleway, sans-serif",
                     "Times New Roman, Times, serif"
                 ],
diff --git a/test/image/mocks/text_chart_invalid-arrays.json b/test/image/mocks/text_chart_invalid-arrays.json
index 81e744b9a07..52abf6ef5e2 100644
--- a/test/image/mocks/text_chart_invalid-arrays.json
+++ b/test/image/mocks/text_chart_invalid-arrays.json
@@ -20,7 +20,7 @@
             ],
             "textfont": {
                 "family": [
-                    "Droid Sans, sans-serif",
+                    "Noto Sans, sans-serif",
                     "Old Standard TT, serif",
                     "PT Sans Narrow, sans-serif"
                 ],
@@ -62,7 +62,7 @@
             ],
             "textfont": {
                 "family": [
-                    "Droid Sans Mono, sans-serif",
+                    "Noto Sans Mono, sans-serif",
                     "Raleway, sans-serif",
                     "Times New Roman, Times, serif"
                 ],