diff --git a/.github/actions/run-xvfb/action.yml b/.github/actions/run-xvfb/action.yml
new file mode 100644
index 00000000000..36b2d96fcfc
--- /dev/null
+++ b/.github/actions/run-xvfb/action.yml
@@ -0,0 +1,13 @@
+name: 'Run with Xvfb'
+description: 'Run a command under Xvfb with a preconfigured screen size'
+
+inputs:
+ run:
+ description: 'Command to execute'
+ required: true
+
+runs:
+ using: 'composite'
+ steps:
+ - run: xvfb-run --auto-servernum --server-args="-screen 0 1280x1024x24" ${{ inputs.run }}
+ shell: bash
diff --git a/.github/actions/setup-chrome/action.yml b/.github/actions/setup-chrome/action.yml
new file mode 100644
index 00000000000..f3c6e3b0192
--- /dev/null
+++ b/.github/actions/setup-chrome/action.yml
@@ -0,0 +1,19 @@
+name: 'Setup Chrome'
+description: 'Install Chrome and set CHROME_BIN environment variable'
+
+inputs:
+ chrome-version:
+ description: 'Chrome version to install'
+ default: '135.0.7049.95'
+
+runs:
+ using: 'composite'
+ steps:
+ - uses: browser-actions/setup-chrome@v2
+ id: setup-chrome
+ with:
+ chrome-version: ${{ inputs.chrome-version }}
+
+ - name: Set Chrome binary path
+ run: echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> $GITHUB_ENV
+ shell: bash
diff --git a/.github/actions/setup-image-env/action.yml b/.github/actions/setup-image-env/action.yml
new file mode 100644
index 00000000000..c4a0af49f24
--- /dev/null
+++ b/.github/actions/setup-image-env/action.yml
@@ -0,0 +1,26 @@
+name: 'Setup Image Environment'
+description: 'Setup Python, uv, and install Kaleido/plotly with required fonts'
+
+inputs:
+ python-version:
+ description: 'Python version to use'
+ default: '3.12'
+ uv-version:
+ description: 'uv version to use'
+ default: '0.11.2'
+
+runs:
+ using: 'composite'
+ steps:
+ - uses: actions/setup-python@v6
+ with:
+ python-version: ${{ inputs.python-version }}
+
+ - name: Install uv
+ uses: astral-sh/setup-uv@v7
+ with:
+ version: ${{ inputs.uv-version }}
+
+ - name: Install Kaleido, plotly.io and required fonts
+ run: .github/scripts/env_image.sh
+ shell: bash
diff --git a/.github/actions/setup-workspace/action.yml b/.github/actions/setup-workspace/action.yml
new file mode 100644
index 00000000000..b21fc046a46
--- /dev/null
+++ b/.github/actions/setup-workspace/action.yml
@@ -0,0 +1,26 @@
+name: 'Setup Workspace'
+description: 'Setup Node.js, install dependencies, and download build artifacts'
+
+inputs:
+ node-version:
+ description: 'Node.js version to use'
+ default: '18.20.4'
+
+runs:
+ using: 'composite'
+ steps:
+ - uses: actions/setup-node@v6
+ with:
+ node-version: ${{ inputs.node-version }}
+ cache: 'npm'
+
+ - name: Install dependencies
+ run: npm ci
+ shell: bash
+ env:
+ NODE_OPTIONS: '--max-old-space-size=4096'
+
+ - uses: actions/download-artifact@v8
+ with:
+ name: build-output
+ path: .
diff --git a/.github/fonts/truetype/googleFonts/GravitasOne_400Regular.ttf b/.github/fonts/truetype/googleFonts/GravitasOne_400Regular.ttf
new file mode 100644
index 00000000000..f964cf264fa
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/GravitasOne_400Regular.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/NotoSans-Bold.ttf b/.github/fonts/truetype/googleFonts/NotoSans-Bold.ttf
new file mode 100644
index 00000000000..aae7546dc19
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/NotoSans-Bold.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/NotoSans-Italic.ttf b/.github/fonts/truetype/googleFonts/NotoSans-Italic.ttf
new file mode 100644
index 00000000000..7f531333438
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/NotoSans-Italic.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/NotoSans-Regular.ttf b/.github/fonts/truetype/googleFonts/NotoSans-Regular.ttf
new file mode 100644
index 00000000000..f27f4ff5956
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/NotoSans-Regular.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/NotoSansMono-Bold.ttf b/.github/fonts/truetype/googleFonts/NotoSansMono-Bold.ttf
new file mode 100644
index 00000000000..9218a79c0cd
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/NotoSansMono-Bold.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/NotoSansMono-Regular.ttf b/.github/fonts/truetype/googleFonts/NotoSansMono-Regular.ttf
new file mode 100644
index 00000000000..159ca4b1d4f
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/NotoSansMono-Regular.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/NotoSerif-Bold.ttf b/.github/fonts/truetype/googleFonts/NotoSerif-Bold.ttf
new file mode 100644
index 00000000000..352b8073581
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/NotoSerif-Bold.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/NotoSerif-BoldItalic.ttf b/.github/fonts/truetype/googleFonts/NotoSerif-BoldItalic.ttf
new file mode 100644
index 00000000000..f0fbb6fb9d6
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/NotoSerif-BoldItalic.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/NotoSerif-Italic.ttf b/.github/fonts/truetype/googleFonts/NotoSerif-Italic.ttf
new file mode 100644
index 00000000000..ee42fc10ee9
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/NotoSerif-Italic.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/NotoSerif-Regular.ttf b/.github/fonts/truetype/googleFonts/NotoSerif-Regular.ttf
new file mode 100644
index 00000000000..123a8c5763e
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/NotoSerif-Regular.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/OldStandard-Bold.ttf b/.github/fonts/truetype/googleFonts/OldStandard-Bold.ttf
new file mode 100644
index 00000000000..4e138db49ea
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/OldStandard-Bold.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/OldStandard-Italic.ttf b/.github/fonts/truetype/googleFonts/OldStandard-Italic.ttf
new file mode 100644
index 00000000000..c6bd25f9dd0
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/OldStandard-Italic.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/OldStandard-Regular.ttf b/.github/fonts/truetype/googleFonts/OldStandard-Regular.ttf
new file mode 100644
index 00000000000..655abd75073
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/OldStandard-Regular.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Bold.ttf b/.github/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Bold.ttf
new file mode 100644
index 00000000000..f0e2068a03c
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Bold.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Regular.ttf b/.github/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Regular.ttf
new file mode 100644
index 00000000000..b881447b368
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/PT_Sans-Narrow-Web-Regular.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/Raleway-Bold-Italic.ttf b/.github/fonts/truetype/googleFonts/Raleway-Bold-Italic.ttf
new file mode 100644
index 00000000000..1d1c6dd6cfe
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/Raleway-Bold-Italic.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/Raleway-Bold.ttf b/.github/fonts/truetype/googleFonts/Raleway-Bold.ttf
new file mode 100644
index 00000000000..7aa37f014fe
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/Raleway-Bold.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/Raleway-Regular-Italic.ttf b/.github/fonts/truetype/googleFonts/Raleway-Regular-Italic.ttf
new file mode 100644
index 00000000000..e46ac30ba02
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/Raleway-Regular-Italic.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/Raleway-Regular.ttf b/.github/fonts/truetype/googleFonts/Raleway-Regular.ttf
new file mode 100644
index 00000000000..c6ec2f0ac1a
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/Raleway-Regular.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/Roboto-Bold.ttf b/.github/fonts/truetype/googleFonts/Roboto-Bold.ttf
new file mode 100644
index 00000000000..8869666f245
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/Roboto-Bold.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/Roboto-BoldItalic.ttf b/.github/fonts/truetype/googleFonts/Roboto-BoldItalic.ttf
new file mode 100644
index 00000000000..f7f845aea4b
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/Roboto-BoldItalic.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/Roboto-Italic.ttf b/.github/fonts/truetype/googleFonts/Roboto-Italic.ttf
new file mode 100644
index 00000000000..a76d286d56f
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/Roboto-Italic.ttf differ
diff --git a/.github/fonts/truetype/googleFonts/Roboto-Regular.ttf b/.github/fonts/truetype/googleFonts/Roboto-Regular.ttf
new file mode 100644
index 00000000000..ddee473e020
Binary files /dev/null and b/.github/fonts/truetype/googleFonts/Roboto-Regular.ttf differ
diff --git a/.github/scripts/env_build.sh b/.github/scripts/env_build.sh
new file mode 100755
index 00000000000..e210cb7a212
--- /dev/null
+++ b/.github/scripts/env_build.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+export NODE_OPTIONS='--max-old-space-size=4096' && \
+echo "node version: $(node --version)" && \
+echo "npm version: $(npm --version)" && \
+npm ci && \
+npm ls --prod --all
diff --git a/.github/scripts/env_image.sh b/.github/scripts/env_image.sh
new file mode 100755
index 00000000000..013090b3c5c
--- /dev/null
+++ b/.github/scripts/env_image.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+set -e
+# install required fonts
+sudo apt-get install fonts-liberation2 fonts-open-sans fonts-noto-cjk fonts-noto-color-emoji
+
+# install additional fonts (committed in .github/fonts/)
+sudo cp -r .github/fonts/ /usr/share/
+sudo apt install fontconfig
+sudo fc-cache -f
+
+# install Kaleido & Plotly
+uv pip install --system kaleido==1.2 plotly==6.6.0 --no-progress
+
+# install numpy i.e. to convert arrays to typed arrays
+uv pip install --system numpy==2.4.3
+
+# verify version of python and versions of installed python packages
+python --version
+uv pip freeze --system
diff --git a/.github/scripts/split_files.mjs b/.github/scripts/split_files.mjs
new file mode 100755
index 00000000000..8841ab33ea8
--- /dev/null
+++ b/.github/scripts/split_files.mjs
@@ -0,0 +1,20 @@
+#!/usr/bin/env node
+
+// Replacement for `circleci tests split`
+// Reads lines from stdin and emits only those where index % SHARD_TOTAL == SHARD_INDEX
+// Environment variables SHARD_INDEX and SHARD_TOTAL must be set.
+
+import { readFileSync } from 'fs';
+
+const lines = readFileSync('/dev/stdin', 'utf8').trim().split('\n').filter(Boolean);
+const index = parseInt(process.env.SHARD_INDEX);
+const total = parseInt(process.env.SHARD_TOTAL);
+
+if (isNaN(index) || isNaN(total) || total <= 0) {
+ console.error('SHARD_INDEX and SHARD_TOTAL environment variables must be set to valid integers');
+ process.exit(1);
+}
+
+lines.forEach((line, i) => {
+ if (i % total === index) console.log(line);
+});
diff --git a/.github/scripts/test.sh b/.github/scripts/test.sh
new file mode 100755
index 00000000000..7bd42ff6feb
--- /dev/null
+++ b/.github/scripts/test.sh
@@ -0,0 +1,154 @@
+#!/bin/bash
+
+# GitHub Actions version of .circleci/test.sh
+# Replaces `circleci tests split` with split_files.mjs
+
+set +e
+set +o pipefail
+
+ROOT=$(dirname $0)/../..
+SPLIT="$ROOT/.github/scripts/split_files.mjs"
+EXIT_STATE=0
+MAX_AUTO_RETRY=0
+
+log () {
+ echo -e "\n$1"
+}
+
+# inspired by https://unix.stackexchange.com/a/82602
+retry () {
+ local n=1
+
+ until [ $n -ge $MAX_AUTO_RETRY ]; do
+ "$@" --failFast && break
+ log "run $n of $MAX_AUTO_RETRY failed, trying again ..."
+ n=$[$n+1]
+ done
+
+ if [ $n -eq $MAX_AUTO_RETRY ]; then
+ log "one last time, w/o failing fast"
+ "$@" && n=0
+ fi
+
+ if [ $n -eq $MAX_AUTO_RETRY ]; then
+ log "all $n runs failed, moving on."
+ EXIT_STATE=1
+ fi
+}
+
+# Ensure output directories exist (not present in fresh GHA checkout)
+mkdir -p build/test_images
+
+case $1 in
+
+ no-gl-jasmine)
+ SUITE=$(ls -1 $ROOT/test/jasmine/tests/* | sort | node "$SPLIT")
+ MAX_AUTO_RETRY=2
+ retry npm run test-jasmine -- $SUITE --skip-tags=gl,noCI,flaky || EXIT_STATE=$?
+
+ exit $EXIT_STATE
+ ;;
+
+ webgl-jasmine)
+ SHARDS=($(node $ROOT/tasks/shard_jasmine_tests.js --limit=5 --tag=gl | node "$SPLIT"))
+ for s in ${SHARDS[@]}; do
+ MAX_AUTO_RETRY=2
+ retry npm run test-jasmine -- "$s" --tags=gl --skip-tags=noCI --doNotFailOnEmptyTestSuite
+ done
+
+ exit $EXIT_STATE
+ ;;
+
+ virtual-webgl-jasmine)
+ SHARDS=($(node $ROOT/tasks/shard_jasmine_tests.js --limit=5 --tag=gl | node "$SPLIT"))
+ for s in ${SHARDS[@]}; do
+ MAX_AUTO_RETRY=2
+ retry ./node_modules/karma/bin/karma start test/jasmine/karma.conf.js --virtualWebgl --tags=gl --skip-tags=noCI,noVirtualWebgl --doNotFailOnEmptyTestSuite -- "$s"
+ done
+
+ exit $EXIT_STATE
+ ;;
+
+ flaky-no-gl-jasmine)
+ SHARDS=($(node $ROOT/tasks/shard_jasmine_tests.js --limit=1 --tag=flaky | node "$SPLIT"))
+
+ for s in ${SHARDS[@]}; do
+ MAX_AUTO_RETRY=5
+ retry npm run test-jasmine -- "$s" --tags=flaky --skip-tags=noCI
+ done
+
+ exit $EXIT_STATE
+ ;;
+
+ bundle-jasmine)
+ npm run test-bundle || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ mathjax-firefox)
+ ./node_modules/karma/bin/karma start test/jasmine/karma.conf.js --FF --bundleTest=mathjax --nowatch || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ mathjax-firefox)
+ ./node_modules/karma/bin/karma start test/jasmine/karma.conf.js --FF --bundleTest=mathjax --nowatch &&
+ ./node_modules/karma/bin/karma start test/jasmine/karma.conf.js --FF --bundleTest=mathjax --mathjax3 --nowatch &&
+ ./node_modules/karma/bin/karma start test/jasmine/karma.conf.js --FF --bundleTest=mathjax_config --mathjax3 --nowatch &&
+ ./node_modules/karma/bin/karma start test/jasmine/karma.conf.js --FF --bundleTest=mathjax_config --nowatch || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ make-baselines-virtual-webgl)
+ SUITE=$({\
+ find $ROOT/test/image/mocks/gl* -type f -printf "%f\n"; \
+ find $ROOT/test/image/mocks/map* -type f -printf "%f\n"; \
+ } | sed 's/\.json$//1' | sort | node "$SPLIT")
+ python test/image/make_baseline.py virtual-webgl $SUITE || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ make-baselines-mathjax3)
+ MATHJAX3_MOCKS=$(jq -r '.compare_mathjax3 | join(" ")' test/image/compare_pixels_collections.json)
+ python test/image/make_baseline.py mathjax3 $MATHJAX3_MOCKS || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ make-baselines-b64)
+ SUITE=$(find $ROOT/test/image/mocks/ -type f -printf "%f\n" | sed 's/\.json$//1' | sort | node "$SPLIT")
+ python test/image/make_baseline.py b64 $SUITE || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ make-baselines)
+ SUITE=$(find $ROOT/test/image/mocks/ -type f -printf "%f\n" | sed 's/\.json$//1' | sort | node "$SPLIT")
+ python test/image/make_baseline.py $SUITE || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ make-exports)
+ python test/image/make_exports.py || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ test-image)
+ node test/image/compare_pixels_test.mjs || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ test-image-mathjax3)
+ node test/image/compare_pixels_test.mjs mathjax3 || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ test-image-virtual-webgl)
+ node test/image/compare_pixels_test.mjs virtual-webgl || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+ source-syntax)
+ npm run lint || EXIT_STATE=$?
+ npm run test-syntax || EXIT_STATE=$?
+ exit $EXIT_STATE
+ ;;
+
+esac
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 00000000000..22e967be7fa
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,710 @@
+name: CI
+
+on:
+ push:
+ branches: [master]
+ pull_request:
+ workflow_dispatch:
+
+concurrency:
+ group: ci-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+env:
+ # TODO: Update this version to match library
+ NODE_VERSION: '18.20.4'
+
+jobs:
+ # ============================================================
+ # Root build job - all dependent jobs fan out from here
+ # ============================================================
+ install-and-cibuild:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: actions/setup-node@v6
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ cache: 'npm'
+
+ - name: Install dependencies
+ run: npm ci
+ env:
+ NODE_OPTIONS: '--max-old-space-size=4096'
+
+ - name: Pretest
+ run: npm run pretest
+
+ - name: CI-Build
+ run: npm run cibuild
+
+ - uses: actions/upload-artifact@v7
+ with:
+ name: build-output
+ retention-days: 3
+ path: |
+ build/
+ lib/
+ src/version.js
+
+ # ============================================================
+ # Jasmine browser tests
+ # ============================================================
+ timezone-jasmine:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+ - uses: ./.github/actions/setup-chrome
+
+ - name: Run hover_label test in UTC timezone
+ uses: ./.github/actions/run-xvfb
+ env:
+ TZ: 'UTC'
+ with:
+ run: npm run test-jasmine hover_label
+
+ - name: Run hover_label test in Europe/Berlin timezone
+ uses: ./.github/actions/run-xvfb
+ env:
+ TZ: 'Europe/Berlin'
+ with:
+ run: npm run test-jasmine hover_label
+
+ - name: Run hover_label test in Asia/Tokyo timezone
+ uses: ./.github/actions/run-xvfb
+ env:
+ TZ: 'Asia/Tokyo'
+ with:
+ run: npm run test-jasmine hover_label
+
+ - name: Run hover_label test in America/Toronto timezone
+ uses: ./.github/actions/run-xvfb
+ env:
+ TZ: 'America/Toronto'
+ with:
+ run: npm run test-jasmine hover_label
+
+ no-gl-jasmine:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ shard: [0, 1, 2, 3]
+ env:
+ TZ: 'America/Anchorage'
+ SHARD_INDEX: ${{ matrix.shard }}
+ SHARD_TOTAL: 4
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+ - uses: ./.github/actions/setup-chrome
+
+ - name: Run jasmine tests (no-gl, shard ${{ matrix.shard }})
+ uses: ./.github/actions/run-xvfb
+ with:
+ run: .github/scripts/test.sh no-gl-jasmine
+
+ webgl-jasmine:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ shard: [0, 1, 2, 3, 4, 5, 6, 7]
+ env:
+ TZ: 'America/Anchorage'
+ SHARD_INDEX: ${{ matrix.shard }}
+ SHARD_TOTAL: 8
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+ - uses: ./.github/actions/setup-chrome
+
+ - name: Run jasmine tests (webgl, shard ${{ matrix.shard }})
+ uses: ./.github/actions/run-xvfb
+ with:
+ run: .github/scripts/test.sh webgl-jasmine
+
+ virtual-webgl-jasmine:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ shard: [0, 1, 2, 3, 4, 5, 6, 7]
+ env:
+ TZ: 'America/Anchorage'
+ SHARD_INDEX: ${{ matrix.shard }}
+ SHARD_TOTAL: 8
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+ - uses: ./.github/actions/setup-chrome
+
+ - name: Run jasmine tests (virtual-webgl, shard ${{ matrix.shard }})
+ uses: ./.github/actions/run-xvfb
+ with:
+ run: .github/scripts/test.sh virtual-webgl-jasmine
+
+ webgl-jasmine-chromeLatest:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ shard: [0, 1, 2, 3, 4, 5, 6, 7]
+ env:
+ TZ: 'America/Anchorage'
+ SHARD_INDEX: ${{ matrix.shard }}
+ SHARD_TOTAL: 8
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+ - uses: ./.github/actions/setup-chrome
+ with:
+ chrome-version: '143.0.7499.192'
+
+ - name: Run jasmine tests (webgl chromeLatest, shard ${{ matrix.shard }})
+ uses: ./.github/actions/run-xvfb
+ with:
+ run: .github/scripts/test.sh webgl-jasmine
+
+ flaky-no-gl-jasmine:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ env:
+ TZ: 'America/Anchorage'
+ SHARD_INDEX: 0
+ SHARD_TOTAL: 1
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+ - uses: ./.github/actions/setup-chrome
+
+ - name: Run flaky jasmine tests
+ uses: ./.github/actions/run-xvfb
+ with:
+ run: .github/scripts/test.sh flaky-no-gl-jasmine
+
+ bundle-jasmine:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ env:
+ TZ: 'America/Anchorage'
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+ - uses: ./.github/actions/setup-chrome
+
+ - name: Run bundle jasmine tests
+ uses: ./.github/actions/run-xvfb
+ with:
+ run: .github/scripts/test.sh bundle-jasmine
+
+ mathjax-firefoxLatest:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ env:
+ TZ: 'America/Anchorage'
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: browser-actions/setup-firefox@v1
+
+ - name: Test MathJax on firefox-latest
+ uses: ./.github/actions/run-xvfb
+ with:
+ run: .github/scripts/test.sh mathjax-firefox
+
+ # ============================================================
+ # noCI tests
+ # ============================================================
+ noci-jasmine:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+ - uses: ./.github/actions/setup-chrome
+
+ - name: Run noCI tests
+ uses: ./.github/actions/run-xvfb
+ with:
+ run: ./tasks/noci_test.sh jasmine
+
+ # ============================================================
+ # Image baseline generation and comparison
+ # ============================================================
+ make-baselines:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ shard: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
+ env:
+ SHARD_INDEX: ${{ matrix.shard }}
+ SHARD_TOTAL: 12
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: ./.github/actions/setup-image-env
+
+ - name: Create all png files
+ run: .github/scripts/test.sh make-baselines
+
+ - uses: actions/upload-artifact@v7
+ with:
+ name: baselines-default-${{ matrix.shard }}
+ retention-days: 3
+ path: build/test_images/
+
+ test-baselines:
+ needs: make-baselines
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: actions/download-artifact@v8
+ with:
+ pattern: baselines-default-*
+ path: build/test_images/
+ merge-multiple: true
+
+ - name: Compare pixels
+ run: .github/scripts/test.sh test-image
+ - name: List diff folder contents
+ if: failure()
+ run: |
+ echo "=== build/test_images/ ==="
+ ls -la build/test_images/ 2>/dev/null || echo "(empty or missing)"
+ echo "=== build/test_images_diff/ ==="
+ ls -la build/test_images_diff/ 2>/dev/null || echo "(empty or missing)"
+ - name: IMAGE DIFF DETECTED
+ if: failure()
+ run: |
+ echo "::warning::Image Diff Detected: baseline images may need to be updated."
+ echo "Download the baseline images from the artifacts of this workflow run."
+ echo "Add the new images to 'test/image/baselines/' and commit them to this pull request."
+
+ - uses: actions/upload-artifact@v7
+ if: failure()
+ with:
+ name: baselines-default-diff
+ retention-days: 7
+ path: |
+ build/test_images/
+ build/test_images_diff/
+
+ make-baselines-b64:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ shard: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
+ env:
+ SHARD_INDEX: ${{ matrix.shard }}
+ SHARD_TOTAL: 12
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: ./.github/actions/setup-image-env
+
+ - name: Create all png files (b64)
+ run: .github/scripts/test.sh make-baselines-b64
+
+ - uses: actions/upload-artifact@v7
+ with:
+ name: baselines-b64-${{ matrix.shard }}
+ retention-days: 3
+ path: build/test_images/
+
+ test-baselines-b64:
+ needs: make-baselines-b64
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: actions/download-artifact@v8
+ with:
+ pattern: baselines-b64-*
+ path: build/test_images/
+ merge-multiple: true
+
+ - name: Compare pixels
+ run: .github/scripts/test.sh test-image
+ - name: IMAGE DIFF DETECTED
+ if: failure()
+ run: |
+ echo "::warning::Image Diff Detected: baseline images may need to be updated."
+ echo "Download the baseline images from the artifacts of this workflow run."
+ echo "Add the new images to 'test/image/baselines/' and commit them to this pull request."
+
+ - uses: actions/upload-artifact@v7
+ if: failure()
+ with:
+ name: baselines-b64-diff
+ retention-days: 7
+ path: |
+ build/test_images/
+ build/test_images_diff/
+
+ make-baselines-virtual-webgl:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ shard: [0, 1, 2, 3, 4, 5, 6, 7]
+ env:
+ SHARD_INDEX: ${{ matrix.shard }}
+ SHARD_TOTAL: 8
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: ./.github/actions/setup-image-env
+
+ - name: Create png files (virtual-webgl)
+ run: .github/scripts/test.sh make-baselines-virtual-webgl
+
+ - uses: actions/upload-artifact@v7
+ with:
+ name: baselines-virtual-webgl-${{ matrix.shard }}
+ retention-days: 3
+ path: build/test_images/
+
+ test-baselines-virtual-webgl:
+ needs: make-baselines-virtual-webgl
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: actions/download-artifact@v8
+ with:
+ pattern: baselines-virtual-webgl-*
+ path: build/test_images/
+ merge-multiple: true
+
+ - name: Compare pixels
+ run: .github/scripts/test.sh test-image-virtual-webgl
+ - name: IMAGE DIFF DETECTED
+ if: failure()
+ run: |
+ echo "::warning::Image Diff Detected: baseline images may need to be updated."
+ echo "Download the baseline images from the artifacts of this workflow run."
+ echo "Add the new images to 'test/image/baselines/' and commit them to this pull request."
+
+ - uses: actions/upload-artifact@v7
+ if: failure()
+ with:
+ name: baselines-virtual-webgl-diff
+ retention-days: 7
+ path: |
+ build/test_images/
+ build/test_images_diff/
+
+ make-baselines-mathjax3:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: ./.github/actions/setup-image-env
+
+ - name: Create mathjax v3 png files
+ run: .github/scripts/test.sh make-baselines-mathjax3
+
+ - uses: actions/upload-artifact@v7
+ with:
+ name: baselines-mathjax3
+ retention-days: 3
+ path: build/test_images/
+
+ test-baselines-mathjax3:
+ needs: make-baselines-mathjax3
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: actions/download-artifact@v8
+ with:
+ name: baselines-mathjax3
+ path: build/test_images/
+
+ - name: Compare pixels of mathjax v3 baselines
+ run: .github/scripts/test.sh test-image-mathjax3
+
+ - name: IMAGE DIFF DETECTED
+ if: failure()
+ run: |
+ echo "::warning::Image Diff Detected: baseline images may need to be updated."
+ echo "Download the baseline images from the artifacts of this workflow run."
+ echo "Add the new images to 'test/image/baselines/' and commit them to this pull request."
+
+ - uses: actions/upload-artifact@v7
+ if: failure()
+ with:
+ name: baselines-mathjax3-diff
+ retention-days: 7
+ path: |
+ build/test_images/
+ build/test_images_diff/
+
+ # ============================================================
+ # Export generation and testing
+ # ============================================================
+ make-exports:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: ./.github/actions/setup-image-env
+
+ - name: Install poppler-utils for eps export
+ run: |
+ sudo apt-get update --allow-releaseinfo-change
+ sudo apt-get install poppler-utils
+
+ - name: Create svg, jpg, jpeg, webp, pdf and eps files
+ run: .github/scripts/test.sh make-exports
+
+ - uses: actions/upload-artifact@v7
+ with:
+ name: exports
+ retention-days: 3
+ path: build/
+
+ test-exports:
+ needs: make-exports
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - uses: actions/download-artifact@v8
+ with:
+ name: exports
+ path: build/
+
+ - name: Test export sizes
+ run: node test/image/export_test.js
+ - uses: actions/upload-artifact@v7
+ if: failure()
+ with:
+ name: exports-diff
+ retention-days: 7
+ path: build/
+
+ # ============================================================
+ # Validation jobs
+ # ============================================================
+ mock-validation:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - name: Test validation using node.js and jsdom
+ run: npm run test-plain-obj
+
+ - name: Validate mocks
+ run: npm run test-mock
+
+ source-syntax:
+ needs: install-and-cibuild
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: ./.github/actions/setup-workspace
+
+ - name: Run syntax tests on source files
+ run: .github/scripts/test.sh source-syntax
+
+ # ============================================================
+ # Standalone jobs (no dependencies on install-and-cibuild)
+ # ============================================================
+ publish-dist:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ fetch-tags: true
+
+ - uses: actions/setup-node@v6
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ cache: 'npm'
+
+ - name: Set up build environment
+ run: .github/scripts/env_build.sh
+
+ - name: Preview CHANGELOG for next release (only on master)
+ if: github.ref == 'refs/heads/master'
+ run: npm run use-draftlogs && git --no-pager diff --color-words CHANGELOG.md || true
+
+ - name: Set draft version in package.json
+ run: |
+ node --eval "var fs = require('fs'); var inOut = './package.json'; var data = JSON.parse(fs.readFileSync(inOut)); var a = process.argv; data.version = a[a.length - 1].replace('v', ''); fs.writeFileSync(inOut, JSON.stringify(data, null, 2) + '\n');" $(git describe)
+
+ - name: View package.json diff between previous and next releases
+ run: git --no-pager diff --color-words tags/$(git describe --tags --abbrev=0) package.json || true
+
+ - name: Build dist/
+ run: npm run build
+
+ - uses: actions/upload-artifact@v7
+ with:
+ name: dist-node18
+ retention-days: 7
+ path: dist/
+
+ - name: View dist/README.md diff between previous and next releases
+ run: git --no-pager diff --color-words tags/$(git describe --tags --abbrev=0) dist/README.md || true
+
+ - name: Preview plot-schema diff (only on master)
+ if: github.ref == 'refs/heads/master'
+ run: git --no-pager diff tags/$(git describe --tags --abbrev=0) dist/plot-schema.json || true
+
+ - name: Pack tarball
+ run: |
+ npm pack
+ version=$(node --eval "console.log(require('./package.json').version)")
+ mv plotly.js-$version.tgz plotly.js.tgz
+
+ - uses: actions/upload-artifact@v7
+ with:
+ name: tarball-node18
+ retention-days: 7
+ path: plotly.js.tgz
+
+ - name: Test plot-schema.json diff
+ run: diff --unified --color dist/plot-schema.json test/plot-schema.json
+
+ publish-dist-node-v22:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ fetch-tags: true
+
+ - uses: actions/setup-node@v6
+ with:
+ node-version: '22.14.0'
+ cache: 'npm'
+
+ - name: Set up build environment
+ run: .github/scripts/env_build.sh
+
+ - name: Preview CHANGELOG for next release (only on master)
+ if: github.ref == 'refs/heads/master'
+ run: npm run use-draftlogs && git --no-pager diff --color-words CHANGELOG.md || true
+
+ - name: Set draft version in package.json
+ run: |
+ node --eval "var fs = require('fs'); var inOut = './package.json'; var data = JSON.parse(fs.readFileSync(inOut)); var a = process.argv; data.version = a[a.length - 1].replace('v', ''); fs.writeFileSync(inOut, JSON.stringify(data, null, 2) + '\n');" $(git describe)
+
+ - name: View package.json diff between previous and next releases
+ run: git --no-pager diff --color-words tags/$(git describe --tags --abbrev=0) package.json || true
+
+ - name: Build dist/
+ run: npm run build
+
+ - uses: actions/upload-artifact@v7
+ with:
+ name: dist-node22
+ retention-days: 7
+ path: dist/
+
+ - name: View dist/README.md diff between previous and next releases
+ run: git --no-pager diff --color-words tags/$(git describe --tags --abbrev=0) dist/README.md || true
+
+ - name: Preview plot-schema diff (only on master)
+ if: github.ref == 'refs/heads/master'
+ run: git --no-pager diff tags/$(git describe --tags --abbrev=0) dist/plot-schema.json || true
+
+ - name: Pack tarball
+ run: |
+ npm pack
+ version=$(node --eval "console.log(require('./package.json').version)")
+ mv plotly.js-$version.tgz plotly.js.tgz
+
+ - uses: actions/upload-artifact@v7
+ with:
+ name: tarball-node22
+ retention-days: 7
+ path: plotly.js.tgz
+
+ - name: Test plot-schema.json diff
+ run: diff --unified --color dist/plot-schema.json test/plot-schema.json
+
+ test-stackgl-bundle:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: actions/setup-node@v6
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ cache: 'npm'
+
+ - name: Set up build environment
+ run: cd stackgl_modules && npm ci
+
+ - name: Bundle bundle-stackgl/index.js
+ run: cd stackgl_modules && cp index.js INDEX.js && npm run bundle-stackgl
+
+ - name: Test stackgl_modules/index.js diff
+ run: diff --unified --color stackgl_modules/INDEX.js stackgl_modules/index.js
+
+ - uses: actions/upload-artifact@v7
+ if: failure()
+ with:
+ name: stackgl-bundle
+ retention-days: 7
+ path: stackgl_modules/index.js
+
+ test-topojson-build:
+ if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: actions/setup-node@v6
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+ cache: 'npm'
+
+ - name: Set up build environment
+ run: cd topojson && npm ci
+
+ - name: Build topojson
+ run: cd topojson && mv dist dist_backup && npm run build
+
+ - name: Compare existing files with newly built files
+ run: diff -qr topojson/dist topojson/dist_backup
+
+ - uses: actions/upload-artifact@v7
+ if: failure()
+ with:
+ name: topojson-dist
+ retention-days: 7
+ path: topojson/dist/
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644
index 93caad4a454..00000000000
--- a/.github/workflows/test.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
-# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
-
-name: No CI Test
-
-on: push
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- strategy:
- matrix:
- node-version: [18.x]
-
- steps:
- - uses: browser-actions/setup-chrome@v2
- id: setup-chrome
- - uses: actions/checkout@v4
- - name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node-version }}
- cache: 'npm'
- - name: Set Chrome binary path
- run: echo "CHROME_BIN=${{ steps.setup-chrome.outputs.chrome-path }}" >> $GITHUB_ENV
- - name: Verify Chrome version
- run: |
- echo "Chrome path: $CHROME_BIN"
- $CHROME_BIN --version
- - run: ls
- - run: npm run pretest
- - run: npm ci
- - run: npm run cibuild
- - name: Run noCI tests
- uses: coactions/setup-xvfb@v1
- with:
- run: ./tasks/noci_test.sh jasmine
diff --git a/biome.json b/biome.json
index 24635690072..b176cb37767 100644
--- a/biome.json
+++ b/biome.json
@@ -11,6 +11,7 @@
"**/tasks/**",
"**/devtools/**",
"**/topojson/**",
+ "**/.github/**",
"!**/test/plot-schema.json",
"!**/dist",
"!**/stackgl_modules",
diff --git a/package-lock.json b/package-lock.json
index 02fc4416104..dcb50905f38 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -104,7 +104,7 @@
"minify-stream": "^2.1.0",
"npm-link-check": "^5.0.1",
"open": "^8.4.2",
- "pixelmatch": "^5.3.0",
+ "pixelmatch": "^7.1.0",
"prepend-file": "^2.0.1",
"prettysize": "^2.0.0",
"raw-loader": "^4.0.2",
@@ -8208,12 +8208,13 @@
}
},
"node_modules/pixelmatch": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.3.0.tgz",
- "integrity": "sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-7.1.0.tgz",
+ "integrity": "sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "pngjs": "^6.0.0"
+ "pngjs": "^7.0.0"
},
"bin": {
"pixelmatch": "bin/pixelmatch"
@@ -8229,12 +8230,13 @@
}
},
"node_modules/pngjs": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz",
- "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz",
+ "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12.13.0"
+ "node": ">=14.19.0"
}
},
"node_modules/point-in-polygon": {
diff --git a/package.json b/package.json
index 04f32177e6e..1c8e1ed6fab 100644
--- a/package.json
+++ b/package.json
@@ -43,7 +43,7 @@
"pretest": "node tasks/pretest.js",
"test-jasmine": "karma start test/jasmine/karma.conf.js",
"test-mock": "node tasks/test_mock.mjs",
- "test-image": "node test/image/compare_pixels_test.js",
+ "test-image": "node test/image/compare_pixels_test.mjs",
"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",
@@ -162,7 +162,7 @@
"minify-stream": "^2.1.0",
"npm-link-check": "^5.0.1",
"open": "^8.4.2",
- "pixelmatch": "^5.3.0",
+ "pixelmatch": "^7.1.0",
"prepend-file": "^2.0.1",
"prettysize": "^2.0.0",
"raw-loader": "^4.0.2",
diff --git a/tasks/test_mock.mjs b/tasks/test_mock.mjs
index ae9bef8fcdd..2a69eaf7276 100644
--- a/tasks/test_mock.mjs
+++ b/tasks/test_mock.mjs
@@ -1,240 +1,246 @@
+import fs from 'fs';
import minimist from 'minimist';
+import os from 'os';
import path from 'path';
-import fs from 'fs';
+import { fileURLToPath } from 'url';
+import { isMainThread, parentPort, Worker, workerData } from 'worker_threads';
-import plotlyNode from './util/plotly_node.mjs';
-var Plotly = plotlyNode('build/plotly.js');
+const __dirname = path.dirname(fileURLToPath(import.meta.url));
+const pathToRoot = path.join(__dirname, '..');
+const pathToMocks = path.join(pathToRoot, 'test', 'image', 'mocks');
-import { fileURLToPath } from 'url';
-var __dirname = path.dirname(fileURLToPath(import.meta.url));
+const disallowList = new Set([
+ // has contourcarpet See https://github.com/plotly/plotly.js/issues/5669
+ 'airfoil',
+ 'h-colorbar_airfoil',
+ 'cheater',
+ 'cheater_constraint_greater_than',
+ 'cheater_constraint_greater_than_with_hill',
+ 'cheater_constraint_greater_than_with_valley',
+ 'cheater_constraint_inner_range',
+ 'cheater_constraint_inner_range_hi_top',
+ 'cheater_constraint_inner_range_hi_top_with_hill',
+ 'cheater_constraint_inner_range_hi_top_with_valley',
+ 'cheater_constraint_inner_range_lo_top',
+ 'cheater_constraint_inner_range_lo_top_with_hill',
+ 'cheater_constraint_inner_range_lo_top_with_valley',
+ 'cheater_constraint_inner_range_with_hill',
+ 'cheater_constraint_inner_range_with_valley',
+ 'cheater_constraint_less_than',
+ 'cheater_constraint_less_than_with_hill',
+ 'cheater_constraint_less_than_with_valley',
+ 'cheater_constraint_outer_range',
+ 'cheater_constraint_outer_range_hi_top',
+ 'cheater_constraint_outer_range_hi_top_with_hill',
+ 'cheater_constraint_outer_range_hi_top_with_valley',
+ 'cheater_constraint_outer_range_lo_top',
+ 'cheater_constraint_outer_range_lo_top_with_hill',
+ 'cheater_constraint_outer_range_lo_top_with_valley',
+ 'cheater_constraint_outer_range_with_hill',
+ 'cheater_constraint_outer_range_with_valley',
+ 'cheater_constraints',
+ 'cheater_contour',
+ 'cheater_fully_filled',
+ 'cheater_smooth',
-var pathToRoot = path.join(__dirname, '..');
-var pathToMocks = path.join(pathToRoot, 'test', 'image', 'mocks');
+ // other
+ '1',
+ '11',
+ '12',
+ '13',
+ '14',
+ '15',
+ '16',
+ '17',
+ '18',
+ '19',
+ '21',
+ '22',
+ '23',
+ '24',
+ '25',
+ '26',
+ '27',
+ '28',
+ '29',
+ '30',
+ '31',
+ '32',
+ 'annotations',
+ 'annotations-autorange',
+ 'axes_labels',
+ 'candlestick_double-y-axis',
+ 'candlestick_rangeslider_thai',
+ 'category-autorange',
+ 'contour_match_edges',
+ 'dendrogram',
+ 'error_bar_style',
+ 'fake_violins',
+ 'fonts',
+ 'font-variant-bar',
+ 'font-weight-bar',
+ 'geo_africa-insets',
+ 'gl2d_10',
+ 'gl2d_12',
+ 'gl2d_14',
+ 'gl2d_17',
+ 'gl2d_annotations',
+ 'gl2d_axes_labels',
+ 'gl2d_fill_trace_tozero_order',
+ 'gl2d_fonts',
+ 'gl2d_layout_image',
+ 'gl2d_marker_coloraxis',
+ 'gl2d_rgb_dont_accept_alpha_scattergl',
+ 'gl2d_scatter-marker-line-colorscales',
+ 'gl2d_scatter-subplot-panel',
+ 'gl2d_shape_line',
+ 'gl2d_text_chart_basic',
+ 'gl2d_text_chart_single-string',
+ 'gl2d_text_chart_styling',
+ 'gl2d_texttemplate',
+ 'gl3d_bunny',
+ 'gl3d_bunny-hull',
+ 'gl3d_coloraxes',
+ 'gl3d_contour-lines',
+ 'gl3d_contour-lines2',
+ 'gl3d_convex-hull',
+ 'gl3d_cufflinks',
+ 'gl3d_directions-volume1',
+ 'gl3d_ibm-plot',
+ 'gl3d_line-colorscale-with-markers',
+ 'gl3d_opacity-surface',
+ 'gl3d_scatter-colorscale-marker',
+ 'gl3d_scatter3d-align-texts',
+ 'gl3d_surface_opacity-and-opacityscale',
+ 'gl3d_surface_opacityscale_contour',
+ 'gl3d_surface-heatmap-treemap_transparent-colorscale',
+ 'gl3d_surface-lighting',
+ 'gl3d_traces-with-legend',
+ 'gl3d_traces-with-opacity',
+ 'gl3d_volume_multiple-traces',
+ 'gl3d_z-range',
+ 'glpolar_scatter',
+ 'heatmap_small_aspect-ratio',
+ 'histogram_errorbars_inherit_color',
+ 'indicator_attrs',
+ 'indicator_bignumber',
+ 'indicator_bullet',
+ 'indicator_datacard',
+ 'indicator_datacard2',
+ 'indicator_gauge',
+ 'indicator_scatter',
+ 'japanese',
+ 'layout_image',
+ 'layout_metatext',
+ 'legend_horizontal',
+ 'legend_horizontal_autowrap',
+ 'legend-constant-itemsizing',
+ 'matching-missing-axes',
+ 'mathjax',
+ 'ohlc_first',
+ 'pattern_bars',
+ 'pattern_fgcolor_overlay_fillmode',
+ 'pattern_with_colorscale',
+ 'petrophysics',
+ 'plot_types',
+ 'polar_blank',
+ 'polar_dates',
+ 'range_slider_box',
+ 'shapes_fixed_size',
+ 'splom_ragged-via-axes',
+ 'stacked_area_duplicates',
+ 'table_plain_birds',
+ 'table_wrapped_birds',
+ 'text_chart_basic',
+ 'text_chart_single-string',
+ 'text_chart_styling',
+ 'texttemplate',
+ 'texttemplate_scatter',
+ 'titles-avoid-labels',
+ 'trace_metatext',
+ 'updatemenus',
+ 'violin_non-linear',
+ 'violin_ridgeplot',
+ 'violin_style',
+ 'waterfall_funnel_texttemplate_date',
+ 'yaxis-over-yaxis2',
+ 'yignbu_heatmap',
+ 'yiorrd_heatmap'
+]);
-var list = [];
+function validate(Plotly, name) {
+ const filename = path.join(pathToMocks, `${name}.json`);
+ const fig = JSON.parse(fs.readFileSync(filename));
+ const out = Plotly.validate(fig.data, fig.layout);
-// command line options
-var args = minimist(process.argv.slice(2), {});
-if(args._.length) {
- // test listed mock(s)
- list = args._;
-} else {
- // no mock listed, test all excluding the black list
- list = fs.readdirSync(pathToMocks)
- .filter(function(e) { return e.indexOf('.json') !== -1; })
- .map(function(e) { return e.replace('.json', ''); })
- .filter(notBlackListed);
+ if (!out) {
+ if (out !== undefined) {
+ console.error(`Expected ${out} to be undefined`);
+ return false;
+ }
+ return true;
+ }
+
+ for (const e of out) {
+ if (!['dynamic', 'invisible'].includes(e.code) && e.path.at(-1) !== 'coloraxis') {
+ console.error('Expected false to be true');
+ console.log('file:', name);
+ console.log(JSON.stringify(out, null, 2));
+ return false;
+ }
+ }
+ return true;
}
-var fail;
-var failedMocks = [];
+if (isMainThread) {
+ const args = minimist(process.argv.slice(2), {});
+ const list = args._.length
+ ? args._
+ : fs
+ .readdirSync(pathToMocks)
+ .filter((e) => e.endsWith('.json'))
+ .map((e) => e.replace('.json', ''))
+ .filter((e) => !disallowList.has(e));
-for(var i = 0; i < list.length; i++) {
- var name = list[i];
- console.log('validating ' + name);
+ const numWorkers = Math.min(args.workers || os.cpus().length, list.length);
+ const chunkSize = Math.ceil(list.length / numWorkers);
+ const promises = [];
- var filename = path.join(pathToMocks, name + '.json');
- var fig = JSON.parse(fs.readFileSync(filename));
- var out = Plotly.validate(fig.data, fig.layout);
+ console.log(`Validating ${list.length} mocks across ${numWorkers} workers...`);
- fail = false;
- assert(name, out);
- if(fail) failedMocks.push(name);
-}
+ for (let i = 0; i < numWorkers; i++) {
+ const chunk = list.slice(i * chunkSize, (i + 1) * chunkSize);
+ if (chunk.length === 0) continue;
-if(failedMocks.length) {
- var error = 'Failed at ' + JSON.stringify({mocks: failedMocks}, null, 2);
- throw error;
-}
+ promises.push(
+ new Promise((resolve, reject) => {
+ const worker = new Worker(new URL(import.meta.url), {
+ workerData: { mocks: chunk }
+ });
+ worker.on('message', resolve);
+ worker.on('error', reject);
+ })
+ );
+ }
+
+ const results = await Promise.all(promises);
+ const failedMocks = results.flat();
-function expectToBe(actual, expected) {
- if(actual !== expected) {
- console.error('Expected ' + actual + ' to be ' + expected);
- fail = true;
+ if (failedMocks.length) {
+ throw `Failed at ${JSON.stringify({ mocks: failedMocks }, null, 2)}`;
}
-}
-function assert(name, v) {
- var success = true;
- if(!v) {
- expectToBe(v, undefined);
- if(v !== undefined) success = false;
- } else {
- v.forEach(function(e) {
- var condition = (
- e.code === 'invisible' ||
- e.code === 'dynamic' ||
- e.path[e.path.length - 1] === 'coloraxis'
- );
- expectToBe(condition, true); // we accept invisible, dynamic and coloraxis for now
- if(!condition) {
- console.log('file:', name);
- console.log(JSON.stringify(v, null, 2));
- success = false;
- return success;
- }
- });
+ console.log('All mocks validated successfully.');
+} else {
+ const { default: plotlyNode } = await import('./util/plotly_node.mjs');
+ const Plotly = plotlyNode('build/plotly.js');
+ const { mocks } = workerData;
+ const failedMocks = [];
+
+ for (const name of mocks) {
+ console.log(`validating ${name}`);
+ if (!validate(Plotly, name)) failedMocks.push(name);
}
- return success;
-}
-function notBlackListed(name) {
- return [
- // has contourcarpet See https://github.com/plotly/plotly.js/issues/5669
- 'airfoil',
- 'h-colorbar_airfoil',
- 'cheater',
- 'cheater_constraint_greater_than',
- 'cheater_constraint_greater_than_with_hill',
- 'cheater_constraint_greater_than_with_valley',
- 'cheater_constraint_inner_range',
- 'cheater_constraint_inner_range_hi_top',
- 'cheater_constraint_inner_range_hi_top_with_hill',
- 'cheater_constraint_inner_range_hi_top_with_valley',
- 'cheater_constraint_inner_range_lo_top',
- 'cheater_constraint_inner_range_lo_top_with_hill',
- 'cheater_constraint_inner_range_lo_top_with_valley',
- 'cheater_constraint_inner_range_with_hill',
- 'cheater_constraint_inner_range_with_valley',
- 'cheater_constraint_less_than',
- 'cheater_constraint_less_than_with_hill',
- 'cheater_constraint_less_than_with_valley',
- 'cheater_constraint_outer_range',
- 'cheater_constraint_outer_range_hi_top',
- 'cheater_constraint_outer_range_hi_top_with_hill',
- 'cheater_constraint_outer_range_hi_top_with_valley',
- 'cheater_constraint_outer_range_lo_top',
- 'cheater_constraint_outer_range_lo_top_with_hill',
- 'cheater_constraint_outer_range_lo_top_with_valley',
- 'cheater_constraint_outer_range_with_hill',
- 'cheater_constraint_outer_range_with_valley',
- 'cheater_constraints',
- 'cheater_contour',
- 'cheater_fully_filled',
- 'cheater_smooth',
-
- // other
- '1',
- '11',
- '12',
- '13',
- '14',
- '15',
- '16',
- '17',
- '18',
- '19',
- '21',
- '22',
- '23',
- '24',
- '25',
- '26',
- '27',
- '28',
- '29',
- '30',
- '31',
- '32',
- 'annotations',
- 'annotations-autorange',
- 'axes_labels',
- 'candlestick_double-y-axis',
- 'candlestick_rangeslider_thai',
- 'category-autorange',
- 'contour_match_edges',
- 'dendrogram',
- 'error_bar_style',
- 'fake_violins',
- 'fonts',
- 'font-variant-bar',
- 'font-weight-bar',
- 'geo_africa-insets',
- 'gl2d_10',
- 'gl2d_12',
- 'gl2d_14',
- 'gl2d_17',
- 'gl2d_annotations',
- 'gl2d_axes_labels',
- 'gl2d_fill_trace_tozero_order',
- 'gl2d_fonts',
- 'gl2d_layout_image',
- 'gl2d_marker_coloraxis',
- 'gl2d_rgb_dont_accept_alpha_scattergl',
- 'gl2d_scatter-marker-line-colorscales',
- 'gl2d_scatter-subplot-panel',
- 'gl2d_shape_line',
- 'gl2d_text_chart_basic',
- 'gl2d_text_chart_single-string',
- 'gl2d_text_chart_styling',
- 'gl2d_texttemplate',
- 'gl3d_bunny',
- 'gl3d_bunny-hull',
- 'gl3d_coloraxes',
- 'gl3d_contour-lines',
- 'gl3d_contour-lines2',
- 'gl3d_convex-hull',
- 'gl3d_cufflinks',
- 'gl3d_directions-volume1',
- 'gl3d_ibm-plot',
- 'gl3d_line-colorscale-with-markers',
- 'gl3d_opacity-surface',
- 'gl3d_scatter-colorscale-marker',
- 'gl3d_scatter3d-align-texts',
- 'gl3d_surface_opacity-and-opacityscale',
- 'gl3d_surface_opacityscale_contour',
- 'gl3d_surface-heatmap-treemap_transparent-colorscale',
- 'gl3d_surface-lighting',
- 'gl3d_traces-with-legend',
- 'gl3d_traces-with-opacity',
- 'gl3d_volume_multiple-traces',
- 'gl3d_z-range',
- 'glpolar_scatter',
- 'heatmap_small_aspect-ratio',
- 'histogram_errorbars_inherit_color',
- 'indicator_attrs',
- 'indicator_bignumber',
- 'indicator_bullet',
- 'indicator_datacard',
- 'indicator_datacard2',
- 'indicator_gauge',
- 'indicator_scatter',
- 'japanese',
- 'layout_image',
- 'layout_metatext',
- 'legend_horizontal',
- 'legend_horizontal_autowrap',
- 'legend-constant-itemsizing',
- 'matching-missing-axes',
- 'mathjax',
- 'ohlc_first',
- 'pattern_bars',
- 'pattern_fgcolor_overlay_fillmode',
- 'pattern_with_colorscale',
- 'petrophysics',
- 'plot_types',
- 'polar_blank',
- 'polar_dates',
- 'range_slider_box',
- 'shapes_fixed_size',
- 'splom_ragged-via-axes',
- 'stacked_area_duplicates',
- 'table_plain_birds',
- 'table_wrapped_birds',
- 'text_chart_basic',
- 'text_chart_single-string',
- 'text_chart_styling',
- 'texttemplate',
- 'texttemplate_scatter',
- 'titles-avoid-labels',
- 'trace_metatext',
- 'updatemenus',
- 'violin_non-linear',
- 'violin_ridgeplot',
- 'violin_style',
- 'waterfall_funnel_texttemplate_date',
- 'yaxis-over-yaxis2',
- 'yignbu_heatmap',
- 'yiorrd_heatmap'
- ].indexOf(name) === -1;
+ parentPort.postMessage(failedMocks);
}
diff --git a/test/image/baselines/0.png b/test/image/baselines/0.png
index 82187eecd31..c8113140eac 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 c38f100641f..216dfdbc0a1 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 0a2f8398405..57afbcf395a 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 5f238ccfffd..19c19b34c8e 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 44d62f500a4..692f1c71967 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 69eefd31f1e..82f37d577c7 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 f7359f8310e..9ad9a37e978 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 126d8d74c85..35dfccda3ce 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 4180adfc062..49265cda943 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 7ada2d9cc3e..9869eae0ea8 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 812bc2195e6..886f3455b67 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 1baf427a06c..96be7f62ac2 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 99c40ea0507..230a6baf8b7 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 088b378a5e2..96a18dde044 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 fd9c8bd810c..7a0f007f1e6 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 094be50482c..f3bbceb0592 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 664db11f2c4..ac98ac84286 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 58d6eebf76f..e37f9e416cc 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 de7b0cb52cf..c21dbf80693 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 402c7127e76..9ba7529168d 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 0e12130bb3b..cb171596e77 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 79583f2d6a7..a5ee90153c8 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 b5b077186aa..9c6de1dce06 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 25150454b33..83cd89c93e5 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 27d9383dbab..9bb8203c10a 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 42b5ccdc38c..4658aabae7a 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 73c3ea4fdab..600d4e0751f 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 c9ab612a66f..95deeefdd0b 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 88a0d042789..41167777658 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 fc54f8d49c7..994778cfce1 100644
Binary files a/test/image/baselines/airfoil.png and b/test/image/baselines/airfoil.png differ
diff --git a/test/image/baselines/allowed-range-small.png b/test/image/baselines/allowed-range-small.png
index 22e662ea4cd..8814768fcdc 100644
Binary files a/test/image/baselines/allowed-range-small.png and b/test/image/baselines/allowed-range-small.png differ
diff --git a/test/image/baselines/allowed-range.png b/test/image/baselines/allowed-range.png
index 05c73586d37..a14b2495b44 100644
Binary files a/test/image/baselines/allowed-range.png and b/test/image/baselines/allowed-range.png differ
diff --git a/test/image/baselines/animation.png b/test/image/baselines/animation.png
index 1571ea5535d..2db6a1e16d7 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 cdb42adc8ea..d005ced3730 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 dc61fec59d4..fb3e381838f 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 f0e6a1cb346..74f7bc9fa5e 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 b7ec230bfaf..9c071848345 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 1ad38cc9d26..a8aaa8fa094 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 3eb526e396d..991917392f7 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 6514c198a8b..f6e3fb5d2a7 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-minreducedheight.png b/test/image/baselines/automargin-minreducedheight.png
index af407e59e68..2e309663a98 100644
Binary files a/test/image/baselines/automargin-minreducedheight.png and b/test/image/baselines/automargin-minreducedheight.png differ
diff --git a/test/image/baselines/automargin-minreducedwidth.png b/test/image/baselines/automargin-minreducedwidth.png
index a4ea346f052..2af1fb6bc89 100644
Binary files a/test/image/baselines/automargin-minreducedwidth.png and b/test/image/baselines/automargin-minreducedwidth.png differ
diff --git a/test/image/baselines/automargin-mirror-all.png b/test/image/baselines/automargin-mirror-all.png
index 69ad268fa4a..6ecd4ab7a14 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 fc374d33f02..21782b98829 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 743079d0217..94242502871 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 efb69637f9c..9553314f994 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 ceb0b39adae..b3ecbeddc3f 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 3436fe6f52c..6ad34de4434 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 379ea115acd..734765e38bd 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 74b1da7c2db..481c974d19d 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 786afe1f54c..49013b40269 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-container-bottom.png b/test/image/baselines/automargin-title-container-bottom.png
index 7e78abf8fb1..9a46daf2f46 100644
Binary files a/test/image/baselines/automargin-title-container-bottom.png and b/test/image/baselines/automargin-title-container-bottom.png differ
diff --git a/test/image/baselines/automargin-title-container.png b/test/image/baselines/automargin-title-container.png
index 94d999b0004..b88b076caa8 100644
Binary files a/test/image/baselines/automargin-title-container.png and b/test/image/baselines/automargin-title-container.png differ
diff --git a/test/image/baselines/automargin-title-paper-bottom.png b/test/image/baselines/automargin-title-paper-bottom.png
index b7599df7665..fc65433c11c 100644
Binary files a/test/image/baselines/automargin-title-paper-bottom.png and b/test/image/baselines/automargin-title-paper-bottom.png differ
diff --git a/test/image/baselines/automargin-title-paper-multiline-bottom.png b/test/image/baselines/automargin-title-paper-multiline-bottom.png
index 3f0fea847aa..f8127eacedb 100644
Binary files a/test/image/baselines/automargin-title-paper-multiline-bottom.png and b/test/image/baselines/automargin-title-paper-multiline-bottom.png differ
diff --git a/test/image/baselines/automargin-title-paper-multiline.png b/test/image/baselines/automargin-title-paper-multiline.png
index 94b0a4a6971..b624fbb9ee6 100644
Binary files a/test/image/baselines/automargin-title-paper-multiline.png and b/test/image/baselines/automargin-title-paper-multiline.png differ
diff --git a/test/image/baselines/automargin-title-paper.png b/test/image/baselines/automargin-title-paper.png
index 5a9e78bdd84..47018becd2e 100644
Binary files a/test/image/baselines/automargin-title-paper.png and b/test/image/baselines/automargin-title-paper.png differ
diff --git a/test/image/baselines/automargin-title-standoff.png b/test/image/baselines/automargin-title-standoff.png
index 4cb9bb6d2ed..3dff179f64c 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/automargin-zoom.png b/test/image/baselines/automargin-zoom.png
index 4fb44a68f7a..936d0bbc806 100644
Binary files a/test/image/baselines/automargin-zoom.png and b/test/image/baselines/automargin-zoom.png differ
diff --git a/test/image/baselines/autorange-tozero-rangemode.png b/test/image/baselines/autorange-tozero-rangemode.png
index 6683c611baf..ebc57f4d8d2 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 c346f1b5b1a..0c23cf2fb9b 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 36fb61c642d..fd68d40d508 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 7abd62faa49..772532a3fbc 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 b2779d30326..5c1141c4f09 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 a8e9cb50d36..997ee21d8a9 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 bca25228582..5bcb92558c0 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 2f47465c593..54b3bdc77eb 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 22c74b90115..07277ca3d41 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 24e74f60e62..fdf3c63dfa4 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 4e334fcde39..83623063428 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 1dc58ff58ef..419e1d5678c 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 f150a35a015..e6d982dec89 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 0c350caa113..92211277ae6 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 071ea28ea36..8725939d371 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 bab93363a9f..3557ef39411 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 40b4e1b0d50..b7cd759c8d4 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 f6bb3ecaa8e..e5810451d6e 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 65e245b3481..ad1897727b5 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 4c823b95749..3c1369ba82b 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 4f3c57d9c27..7e6956c45a5 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 d57d0ac768c..734db54cd3d 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 40770ef044f..2abf93a4da4 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 a7d09b3c29f..78c51b98682 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 c687a4e0407..ecaa3e9fb8b 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 725832f71e6..49e77e2b799 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 ea09cbb38c5..21284fcc102 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 a1df7dc2221..d1f67413e4b 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 f6613f3e456..a8ff8c4daf3 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 1bb740edbd3..bd194fd9d63 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 06d92f7342d..3633969f162 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 d0df71ca34d..ee8e67eca7a 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 9c6935799e3..35923ece9d6 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 cb888b0a45e..f810935bc94 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 1493e82aadb..4859eeb45e5 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 fe520de8b18..c22d8a1e3f1 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 dd3d8d0ecea..1098fec0fc3 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 8a2d896f3d8..8d137794da4 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 3070a3ca9c9..906fc79aa7a 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 13511c0ccea..43c4aa1c528 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 3560a104165..99e47628fbd 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 6d9a3b590c3..8d913decdc3 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 dd80d673805..254b3acca2b 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 7401b05a7d6..c47a99e4e66 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 51513fe0f50..dd58b8e29ab 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 160ccef54d8..cdf8b837968 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 1710df8aaf9..ea2a0d50ed7 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 2fd5dca2c7e..30a4ca3d08a 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 796eb193732..feff3d91205 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 3fdcad59d3a..8dc91886456 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 02e52fcbb5c..d7828ae1f02 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 69acc9e1661..1c6f1dada53 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 0a38ce34440..f8a8db80d9d 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 59fdbec4127..faa987c64dc 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 53bc3bd2eb7..376a5f87694 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/axis_title_standoff0.png b/test/image/baselines/axis_title_standoff0.png
index 4f6f3609cfe..b9da96ca7ef 100644
Binary files a/test/image/baselines/axis_title_standoff0.png and b/test/image/baselines/axis_title_standoff0.png differ
diff --git a/test/image/baselines/axislabel_separatethousands.png b/test/image/baselines/axislabel_separatethousands.png
index e7208efb26c..f88d10aa8cc 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 1526fd6c61d..1ecf99a1d4a 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 ba1b4b37d6d..5e1b7396987 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 5fcac01a948..ab5761e095c 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 0962f5d34c1..1603eb73807 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 f0809c4db56..24ea6ea2f4a 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 58fc28b2028..f116dbf9db0 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 d6170d831ec..91eaa7e1248 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 1aa0df86689..9f1743aa9a0 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 b5c71ac17ff..2a6980acd34 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 c9c6a642509..6be69306125 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 8b46347e6e2..67ff3bbf6b7 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 6d2a21252bf..940616d99a0 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 86cf700d258..473f2e3c6ea 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-rounded-corners.png b/test/image/baselines/bar-rounded-corners.png
index 22403ce8aa0..a194c1748b6 100644
Binary files a/test/image/baselines/bar-rounded-corners.png and b/test/image/baselines/bar-rounded-corners.png differ
diff --git a/test/image/baselines/bar-with-milliseconds.png b/test/image/baselines/bar-with-milliseconds.png
index ed72fc545bb..66c417fbf3d 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 fd14e4501e8..526c1e71dc1 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 1344de0baab..baf91441438 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 3afcea20847..aa668115d5f 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 c6d9d8b6619..89cc50b568b 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 b8e10a0c0b6..c0ce8646636 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 0647f2daf2e..a616fdec729 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 8c8cafc1cbd..319f88288f2 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 13a3bf3924f..ab66bff387b 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 78273a14763..ed9c1278811 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 213b63070be..41fbfe81e27 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 20555a850c5..98680b9b8f2 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 a82f4c9f278..84dbe669a51 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 2e766cfb434..e6964526332 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 71ea03bb595..909ba837184 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 7a120ea2dc2..60a508a1378 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 fdc063c0b1c..a6e0c1f1af0 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 49842af5394..f87a05dd134 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 9c8ee84366e..a96543f43c4 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 c88e7131f9a..82e96f22bd4 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 6bd20bcaa0c..b6da055e975 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 104562ceeff..39e0a5781ad 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 c236ace50fe..634fad85308 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_relative_offsetgroup.png b/test/image/baselines/bar_relative_offsetgroup.png
index a95edace642..b181aa9276f 100644
Binary files a/test/image/baselines/bar_relative_offsetgroup.png and b/test/image/baselines/bar_relative_offsetgroup.png differ
diff --git a/test/image/baselines/bar_show_narrow.png b/test/image/baselines/bar_show_narrow.png
index 1051efefca0..75681b5ccff 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 4eaf572e4ff..0164132315d 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 3f25ff7e29b..92e393b6d2d 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 3fe2dce39fc..f912fac599d 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 b47bcdb18df..7ae07e4cfd0 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 47b57f37a62..23f407ef4b4 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 81d090f0718..cf93a93f6b9 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 850de8e57d0..5fb03434049 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 f3a239abd04..c087317df22 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 a38ac7cabc8..c1108f29ff7 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 5a3b1450be0..688e034e798 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 bff59672abd..2de30cedbaf 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 099fdee7e17..7d07b26009f 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 e30b9eebb5d..43a1a028bef 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 97a477c8d0f..6d45f89ebf5 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 222fc2a7a12..1f8e9d496b7 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 794c2d80f65..8b9d9c5fe88 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 7e0cb700737..12486f09336 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 6034395f8f8..add1d1eabb3 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 674aada673c..e9ef5f287f1 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 590910b5ec7..e07ec00e2a7 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 85dc888a248..10cbf055df3 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 f904a3757cb..9435a24aa8d 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 fdaab098e22..3b5fdbb0bb6 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 c86a9cf631f..4ed1c237413 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 b88917a468c..f478ca693d0 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 9c57773814a..31e5162bf68 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 5513064616b..d11c6a7374b 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 81ceddf8ff5..8bb72096454 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 04dc05fb424..46482b07e1f 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 7bdede6fc39..c50ca8183c7 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 80bdd6d814a..7ab9eb916dd 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 b6a41cb10f4..98eeef4b377 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_sizemode_sd.png b/test/image/baselines/box_sizemode_sd.png
index 38f0999a4ca..a56ae1895eb 100644
Binary files a/test/image/baselines/box_sizemode_sd.png and b/test/image/baselines/box_sizemode_sd.png differ
diff --git a/test/image/baselines/box_violin_just_pts.png b/test/image/baselines/box_violin_just_pts.png
index 3341caaedb6..e836e363871 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 cd81842d3fd..76b7950942e 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 7ee8ec50c59..f9257113e26 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 66da97ef481..37c8c0a28e0 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 d2040b52a99..a73d975cd8a 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 5523f7fef56..71489bfbfa1 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 96cb582a367..0f17c64b2c5 100644
Binary files a/test/image/baselines/bubblechart.png and b/test/image/baselines/bubblechart.png differ
diff --git a/test/image/baselines/canada_geo_projections.png b/test/image/baselines/canada_geo_projections.png
index ae076c3d8f7..c33cf2161ec 100644
Binary files a/test/image/baselines/canada_geo_projections.png and b/test/image/baselines/canada_geo_projections.png differ
diff --git a/test/image/baselines/candlestick_double-y-axis.png b/test/image/baselines/candlestick_double-y-axis.png
index 64c125658a2..077f3b8fab0 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 9014dd2dbc0..f40e1cdd0ef 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 e5b9ca14de2..ec2663b8932 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_grid_dash.png b/test/image/baselines/carpet_grid_dash.png
index 0a667649715..7972ca4d98f 100644
Binary files a/test/image/baselines/carpet_grid_dash.png and b/test/image/baselines/carpet_grid_dash.png differ
diff --git a/test/image/baselines/carpet_ordering-labeling.png b/test/image/baselines/carpet_ordering-labeling.png
index acd003386c1..132a66cae40 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 b33731c97e2..5e7d6fe3bbf 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 6fa5fc0609b..1a84e4e1648 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 69699809a62..5bb61da05c6 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 369c363fc3a..8a7231cc0ea 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 2b363a156d8..55fa82f451b 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 d423321f316..11c547f196c 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 8f6f1ad96e2..f208a157173 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 df7ee46beec..71ce02a3c11 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 34944183804..1001f183750 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 872940f399d..895b967b196 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 495813fb9ad..ef75b558164 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 6952685308b..a8c21203e92 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 450cf5690f4..7b1cd2b536a 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 c9b72abf435..a72b918c5fe 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 13c4711401b..4246b8a1f29 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 ee9e1c8d35e..303a06d4744 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 3c75dd85423..e51d457fea2 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 bb3b7dd45f7..6dc1c4acdbc 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 219566cf303..07f14cd30c9 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 d198f5e9005..4ef5d440d25 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 1bbcf00d72a..bd68939e169 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 7547ae32d00..9285f1c6801 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 633aadcbc06..7def2bdf35e 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 b4c8b8eefa3..3b1b3ec878d 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 6149d317b6e..97c0ab3ad8e 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 609500429be..f276e102b7e 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 b8c014ab910..883c4d6d55e 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 676f7bf8da8..918382e1d4b 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 7b0dabc3a74..a5056372a75 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 05834eaf5c5..d194fa19c78 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 b608965562d..cb0c2b8e059 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 594356ad918..18f3702c07f 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 47145b31256..37228eea779 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 36827c2eb31..5f1cdff1fd3 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 09f4564634d..b77b1711739 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 7a9126bf5fd..79ae5b39b6d 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 792a8f97517..fd21a78b275 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 435c98cd5ae..8abd8e26e32 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 caa198c39b3..5ea07890b39 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 f7cb04c4f5b..eb82e399b1d 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 3f43339b815..4642349b88a 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 bfe4d35e90a..b1877f2db78 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 b3c554cc744..b4297e0b0c0 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 bade0882381..b1ae3dae571 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 5e82c2a239a..4b28caa404d 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 ae24116449f..ea04e534389 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 963a76a78bf..3a2a1711aec 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 28bdec42598..d7073f45438 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/container-colorbar-horizontal.png b/test/image/baselines/container-colorbar-horizontal.png
index f8f09764d95..8569fd6369e 100644
Binary files a/test/image/baselines/container-colorbar-horizontal.png and b/test/image/baselines/container-colorbar-horizontal.png differ
diff --git a/test/image/baselines/container-colorbar-vertical-w-margin.png b/test/image/baselines/container-colorbar-vertical-w-margin.png
index 96027fc5e9d..691ce20ffc6 100644
Binary files a/test/image/baselines/container-colorbar-vertical-w-margin.png and b/test/image/baselines/container-colorbar-vertical-w-margin.png differ
diff --git a/test/image/baselines/container-colorbar-vertical.png b/test/image/baselines/container-colorbar-vertical.png
index 1202a228663..fa1e9e6b95e 100644
Binary files a/test/image/baselines/container-colorbar-vertical.png and b/test/image/baselines/container-colorbar-vertical.png differ
diff --git a/test/image/baselines/container-legend.png b/test/image/baselines/container-legend.png
index d5a802e32ea..ddede66c827 100644
Binary files a/test/image/baselines/container-legend.png and b/test/image/baselines/container-legend.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 3faf7d43526..e21e263afab 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 40f3984ccf7..eb712f24117 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 d029824c5e8..37e42eac041 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 af572ed980f..32e9600d7bc 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 8c94ffae8fa..96f6650abfa 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 f795ca2c803..9adb3a3685e 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 41c229a4cad..687db90dac8 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 b14417224c9..b8567f3e574 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 40808b3edbc..8c7b231cb83 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 18cc961a474..4173a9d75a2 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 acaf039d097..79484fb0192 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 44833462949..290ed7ddb16 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 57095db3fe4..5859688db71 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 4a2d25c2a6a..d4272f3480d 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 6aea01c694d..e1a3d2b5bf1 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 4f1185ab7a7..8ef8ff66515 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 e21c91daeaf..284acd0c681 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 6f3dea9aaa9..d48e427eb8f 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 c450a0058ad..f8885d72175 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 0f3afcb3e9c..3551b3963f6 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_nonlinear_interpolation.png b/test/image/baselines/contour_nonlinear_interpolation.png
index 482696505db..2ac9e410ea1 100644
Binary files a/test/image/baselines/contour_nonlinear_interpolation.png and b/test/image/baselines/contour_nonlinear_interpolation.png differ
diff --git a/test/image/baselines/contour_scatter.png b/test/image/baselines/contour_scatter.png
index f3a753834d8..298b8939541 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 a12900b9028..26869426caf 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 fe5e3894aac..d7dbefb1eb5 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 84abddb11fe..cfedcd02e66 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 017b24f5aec..2db8fbd0269 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 1665d06e0a1..3c9038189f7 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 32d3f4f3d7f..c850b8d75e9 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-ticklabelstep-ticklabelindex.png b/test/image/baselines/date_axes-ticklabelstep-ticklabelindex.png
index 42e95c0a2b3..4bac7c7083b 100644
Binary files a/test/image/baselines/date_axes-ticklabelstep-ticklabelindex.png and b/test/image/baselines/date_axes-ticklabelstep-ticklabelindex.png differ
diff --git a/test/image/baselines/date_axes-ticklabelstep.png b/test/image/baselines/date_axes-ticklabelstep.png
index 995f504caa0..16040143c15 100644
Binary files a/test/image/baselines/date_axes-ticklabelstep.png and b/test/image/baselines/date_axes-ticklabelstep.png differ
diff --git a/test/image/baselines/date_axes.png b/test/image/baselines/date_axes.png
index cc9cfb2ba15..d148b575a76 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 aa710b7cf3f..b31d7ef30c4 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 1606f5d87e5..988b88c1540 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_period2_ticklabelindex.png b/test/image/baselines/date_axes_period2_ticklabelindex.png
index 493508bb782..302f62e1dc0 100644
Binary files a/test/image/baselines/date_axes_period2_ticklabelindex.png and b/test/image/baselines/date_axes_period2_ticklabelindex.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 da265249411..0dfb3d0cbb4 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_period_ticklabelindex.png b/test/image/baselines/date_axes_period_ticklabelindex.png
index f891c89a761..9bd6b296cc6 100644
Binary files a/test/image/baselines/date_axes_period_ticklabelindex.png and b/test/image/baselines/date_axes_period_ticklabelindex.png differ
diff --git a/test/image/baselines/date_axes_side_top.png b/test/image/baselines/date_axes_side_top.png
index 215bf5f63f7..307b25995d0 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_axes_ticklabelindex.png b/test/image/baselines/date_axes_ticklabelindex.png
index 5aff9c14a01..a130860932d 100644
Binary files a/test/image/baselines/date_axes_ticklabelindex.png and b/test/image/baselines/date_axes_ticklabelindex.png differ
diff --git a/test/image/baselines/date_histogram.png b/test/image/baselines/date_histogram.png
index 284e61ad3a9..9711e6ec7ff 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 fdb42f84549..8cf97fe05b1 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 508ca937acd..9c75f2ba312 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/distance_satellite.png b/test/image/baselines/distance_satellite.png
index 4566de8b8bb..4a9b9a6b054 100644
Binary files a/test/image/baselines/distance_satellite.png and b/test/image/baselines/distance_satellite.png differ
diff --git a/test/image/baselines/domain_ref_axis_types.png b/test/image/baselines/domain_ref_axis_types.png
index 7109ada651c..c5240037142 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 431d251c23c..dcc9059ed75 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 918a34a70e2..07ca0dd85c5 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 b7c88cda46b..063b5ffc731 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 658ea6e9403..0e8a7be4719 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 cf4880f406a..4f5fdb15013 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 da5b9f1133e..434331dc226 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 c59e5f41244..80e0eecb28f 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 9aa07d0e961..0d6f522433a 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 37bb3e148f3..90909206488 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 d2bc460bd6c..e918c0abf1a 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 16d49afd5aa..38358db49d1 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 d347e2baa9b..a675f69a748 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 24fa989bf04..1f7eb5b758b 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 0085a067f0f..a89f393b93c 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 75d916e7171..ad6d8fdfaf1 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 bc7364cffa5..2e01cb1b639 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-decorline-scatter.png b/test/image/baselines/font-decorline-scatter.png
index a90b231b04e..50ac1b23208 100644
Binary files a/test/image/baselines/font-decorline-scatter.png and b/test/image/baselines/font-decorline-scatter.png differ
diff --git a/test/image/baselines/font-textcase-scatter.png b/test/image/baselines/font-textcase-scatter.png
index 603ff92239e..4c687f60f14 100644
Binary files a/test/image/baselines/font-textcase-scatter.png and b/test/image/baselines/font-textcase-scatter.png differ
diff --git a/test/image/baselines/font-textshadow-scatter.png b/test/image/baselines/font-textshadow-scatter.png
index 9ec07cb80b5..8997cc16d56 100644
Binary files a/test/image/baselines/font-textshadow-scatter.png and b/test/image/baselines/font-textshadow-scatter.png differ
diff --git a/test/image/baselines/font-variant-bar.png b/test/image/baselines/font-variant-bar.png
index 017fb89e8c8..9ef05d6682e 100644
Binary files a/test/image/baselines/font-variant-bar.png and b/test/image/baselines/font-variant-bar.png differ
diff --git a/test/image/baselines/font-variant-scatter.png b/test/image/baselines/font-variant-scatter.png
index 6556e2f4efb..bf33a4789af 100644
Binary files a/test/image/baselines/font-variant-scatter.png and b/test/image/baselines/font-variant-scatter.png differ
diff --git a/test/image/baselines/font-weight-bar.png b/test/image/baselines/font-weight-bar.png
index b3e54386a97..620837c4f4f 100644
Binary files a/test/image/baselines/font-weight-bar.png and b/test/image/baselines/font-weight-bar.png differ
diff --git a/test/image/baselines/font-weight-scatter.png b/test/image/baselines/font-weight-scatter.png
index 99314dc0292..43fcf4d10e5 100644
Binary files a/test/image/baselines/font-weight-scatter.png and b/test/image/baselines/font-weight-scatter.png differ
diff --git a/test/image/baselines/font-wishlist.png b/test/image/baselines/font-wishlist.png
index 774042c19a6..9075a19e2bb 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 0f50d8dd60a..a4ee5d1b96c 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 f899f88703b..9095333a431 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 8dcba4d48b9..f0eaea40a34 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 1ad5ba6bbf9..e0a294f61ad 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 80e74a1ab55..277246ee304 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 728281eccea..bbe03373bf3 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 18bfe11222f..bc0a5731abf 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 07b78b52b79..dcf77a14424 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 bd422a96bcc..3de830f4944 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 5b57abd3ede..11943d280e5 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 73350d6a63f..70345ae195c 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 f8f476bfb82..535b8d36440 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 263f8ec4001..2f96edb0ad2 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 6d82d2a66e6..745effc5b6b 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 4e1376720bc..d465e2de9a9 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 8b854c3a7e0..2f45d39aaf0 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 f58a06883e1..01e4d1c8a4e 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 c6fd2fa5b2a..b4bc0ded96c 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 ab50b6b3c10..9b291e2c8b5 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 7ccc1a8adea..1b06b3c8737 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 6050f91de56..fcd9141281c 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 6188febbb2b..ab37f0923dc 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 ba6ce97d98f..2bdefbfdb46 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 d1e2d5e8116..a23c7613212 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 2ced9af0203..c6a7d02368d 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 55a38d7a2df..2b1be918d23 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 a02690673bb..4409051f23b 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 19e42718388..4b4f186f495 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 af9ed182b45..0e66073c996 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 92dba7ae119..cc282cdf312 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 b6e41291177..0d12a5cacde 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 878d6b0876e..4b8f953ee77 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 9a1259b494f..8be5c14d9f1 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 8a76900a9a0..1f37aa368c8 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 d74edcd62d0..2706b813c99 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 5dd61a8c47e..1151540845a 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 8f2b8192739..865641012f0 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 731dfb13af8..7ba7cd9e639 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 f15de9281dd..532146b9c79 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 93677c0d111..eee915d1950 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 8fcbaf4e739..23f8416da96 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 e3ba286815d..086ba319578 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 91afeb7f29c..7a88909d4a9 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 eb08becd420..c988cd80b9f 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 6e071cc0443..57786ab58f4 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-egypt-sudan.png b/test/image/baselines/geo_choropleth-egypt-sudan.png
new file mode 100644
index 00000000000..dcaa4478041
Binary files /dev/null and b/test/image/baselines/geo_choropleth-egypt-sudan.png differ
diff --git a/test/image/baselines/geo_choropleth-legend.png b/test/image/baselines/geo_choropleth-legend.png
index 19e134e1497..d401f601179 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 a99aea3bbf6..3c292770060 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-location-names.png b/test/image/baselines/geo_choropleth-usa-location-names.png
new file mode 100644
index 00000000000..eeeadd84555
Binary files /dev/null and b/test/image/baselines/geo_choropleth-usa-location-names.png differ
diff --git a/test/image/baselines/geo_choropleth-usa.png b/test/image/baselines/geo_choropleth-usa.png
index 16716b556bf..65585d5155d 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 792297077a2..d91a46bad53 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 7694ddecab8..860cef1256f 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 c2e28ef6b77..a08dc479820 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 162ea2744ff..9c0430c0bc3 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 90c487f9f54..40a1421f198 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 62c9ff737fb..a5574748fef 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 123e45b249c..8585c4ecc9b 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 55321960183..bc8e729285b 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 ab0735a6b76..90c33eaefa1 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 f8a8bde7f7e..d89caf102a4 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 7dfa37ca716..45b60270a50 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 4dddb9b17da..249a7ad3bcd 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 3e624f20f73..ebf410cb1a6 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 3d5beee82cb..3788222a9f7 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 0ddb942d151..5b86febbe91 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 086076e9f31..63d91ba7b5c 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 456846a9770..5dfc10c3e9e 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 81afe3efa85..0d7ca13dc0b 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 442e3d1ee4a..b87364f51a1 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 ee4c332187d..06b751de9a8 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 c1039e70a03..2cfa2ec783a 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 3fc19324d04..e69f9607038 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 e90eb7e4724..ab081b387b9 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 a419f0e0940..d1244ed0b3b 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 e31b71b3274..abbb35eae73 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 7e0e8f04159..d07c946705d 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 0cf43376dbe..84945ea78cb 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 3f083c647fe..1c41604d615 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 e5e353885d9..cbcdb22c4e2 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 03618a73043..a3b53eda63a 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 191d7690470..f23c29da86e 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 4403f2861c9..634b8f31bda 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 ba03f596dbf..a359ca234b8 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-case-insenstive-colors.png b/test/image/baselines/gl2d-case-insenstive-colors.png
index 8577cf027d5..f47d5f0206f 100644
Binary files a/test/image/baselines/gl2d-case-insenstive-colors.png and b/test/image/baselines/gl2d-case-insenstive-colors.png differ
diff --git a/test/image/baselines/gl2d_10.png b/test/image/baselines/gl2d_10.png
index 12c4c2d29c0..7057943e050 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 4da1a0f6d4a..0709639d11b 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 f6ede234635..574dc3db449 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 58dd7ef8bf8..6a164089497 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 05308aef8ca..a7ae0078574 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 48dfac6e23e..82755592c37 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 8e720fcb6b0..56a0ba66ee2 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 22365738435..70a546ea484 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 4ff57dd1859..8cd7a751319 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 05ada129916..da242a897ea 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 c3932edb872..ed7d8bedf5b 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 ff6aeb8e8be..45a3f60d14d 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 b2e2f736f18..e15a7450515 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 e24a214452f..eefd2a6215b 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 5a0d2d9bf00..d84930909d9 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 5c81447939d..c263c8972f0 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 871bd40844e..5d36cd19f60 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 007ec26b84a..16011172f7a 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 720156e8ad7..68f1b030402 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 b8ada0c6013..894c434ea50 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_font-variant-scatter.png b/test/image/baselines/gl2d_font-variant-scatter.png
index 422d3e16949..0aa6e097f68 100644
Binary files a/test/image/baselines/gl2d_font-variant-scatter.png and b/test/image/baselines/gl2d_font-variant-scatter.png differ
diff --git a/test/image/baselines/gl2d_font-weight-scatter.png b/test/image/baselines/gl2d_font-weight-scatter.png
index 0b43b328509..083027bf0b6 100644
Binary files a/test/image/baselines/gl2d_font-weight-scatter.png and b/test/image/baselines/gl2d_font-weight-scatter.png differ
diff --git a/test/image/baselines/gl2d_fonts.png b/test/image/baselines/gl2d_fonts.png
index 880de8b6f02..bd380e42f4e 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_horiz-lines.png b/test/image/baselines/gl2d_horiz-lines.png
index 4459525be8d..27d9afda858 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 8259eca3e50..aa76820eb1f 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 0ba1160e5b5..069f1296308 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 868fabf1793..28733beee6b 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 3b51b46a260..085e9e8c5d4 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 44efdd998d8..b140d38ede6 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 d11d5b77898..256b2b36f44 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 a04920de219..03bfab991ff 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 887967078a9..029e66f78ef 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 71f9dc3c454..82db256331d 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-angle.png b/test/image/baselines/gl2d_marker_symbols-angle.png
index 001d27f695f..8b5d2c455cd 100644
Binary files a/test/image/baselines/gl2d_marker_symbols-angle.png and b/test/image/baselines/gl2d_marker_symbols-angle.png differ
diff --git a/test/image/baselines/gl2d_marker_symbols.png b/test/image/baselines/gl2d_marker_symbols.png
index c25f6b7fe13..633e17acb7d 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 de2281013cf..d5b2a9916a7 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 f6510334441..5cc1e900321 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 1c6f45b6b3a..46a082d229b 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 6439cfdfeba..618775004e6 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 5088111b46b..5179f768763 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 510ea544c49..8f45ab48b6b 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 3667dc86ef0..f7f831ef256 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 6c76d0dc7de..633b5d8124c 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 65b4701419c..ed5890fa45c 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 96f14b7e1d5..8ef6c5c7436 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 a1d44ef9348..45473bcba85 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 088eb90b4a3..b3aadcd13d1 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 e88f03f5461..95ddeb9e81c 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 7dc70d9c0b1..cd1b134dd10 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 bfb79bf9c49..0515b1d799f 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 c913d1f39af..f3a719f709d 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 ee5c7067c41..7ade1db9936 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 c5a1d259220..6d57b7260da 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 1cdc53b3e5a..cf0040741e0 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 b629e1026b1..377f8bd089a 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 6337c56b29d..4a8c9799633 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 30c53d0931e..b13a1b27f33 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 9af6193453e..ed11ec336af 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 aa9311b951d..0c829c04bd1 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 8124d08956d..ce1f4603f45 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 ad4ca0a1ae7..21ef43e7c73 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 c8695c33b61..57af3154ff3 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_rgb_dont_accept_alpha_scattergl.png b/test/image/baselines/gl2d_rgb_dont_accept_alpha_scattergl.png
index 794f63340b6..c39698b8d3c 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 52dd3097416..ee2ce37a0dc 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 6c5f1854d57..91b4180c507 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 a273c4dd2b4..1e954ea5f45 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 8acf5b756b9..f9e64dd9140 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 265877a7485..9b5c0eaf686 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 a414ea74224..24e460545b3 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 d127739814f..6c08c7712d3 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 900d97df5be..b7d28706a90 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 70f91541191..f01701270d4 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 3fbd658462e..46df21a2be0 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 30e622de78a..bf35a79ab82 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 08a6f385ffe..dccf730089a 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 fab87d05772..384974f0e87 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 b2f59c90a14..b51e8978dcb 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 c748d168a46..99cd2ca72bb 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 dd7ba8f3a20..d56baeab006 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 9f174b7db2d..517b5a5106c 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 a76d5e1489b..42c484cfb63 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 abee69584e5..ec144bddbbc 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 cd8786e7023..e0eec4225c6 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 67c31206969..bd2cbad04ac 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 7fe2cbb56c6..66598aba146 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 9077c9f9728..77323824b9c 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 3921ff23328..57fe40aa628 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 f6c2395b38e..7ef2ad53d1a 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 cf26d7d828b..d3390358a6d 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 cf0d1594665..b2a59aec5d4 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 545b7b76357..073ea3c636a 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_ultra_zoom.png b/test/image/baselines/gl2d_ultra_zoom.png
index fd96e28e3a4..d1fefc0ea1f 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_alphahull5.png b/test/image/baselines/gl3d_alphahull5.png
index a4eaf098e3c..65eb34b340e 100644
Binary files a/test/image/baselines/gl3d_alphahull5.png and b/test/image/baselines/gl3d_alphahull5.png differ
diff --git a/test/image/baselines/gl3d_annotations.png b/test/image/baselines/gl3d_annotations.png
index 35d79517701..db3ab5aa3ad 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 22a7ae9b93f..19b9d98332f 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 be125a30d0a..56da94297aa 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 3546e27bb61..d439be8a696 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 9946d37696e..4cced63b157 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 9cce1bd0cc0..51feae6c54f 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 34ab5de5c26..e527f5c4ec9 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 6c5af437ce8..4fb0b50c406 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 c67a1029bae..32943af8b5c 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 094efe89d6f..920c954627c 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 1320b374254..e98a2497d34 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 6b7ca7b6b97..5c70b6efdcf 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 32450d746ef..72682c6daa7 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 bdf6d8541cc..eaec5114c22 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 76d0d80033d..e91414f1d6b 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 47e1812ff9c..3c5c90d5e2a 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 3d2364d5b16..48430427f86 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 9cb87affc9f..37041e058b1 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-sizemode.png b/test/image/baselines/gl3d_cone-sizemode.png
index a576e90953c..c6636335e6f 100644
Binary files a/test/image/baselines/gl3d_cone-sizemode.png and b/test/image/baselines/gl3d_cone-sizemode.png differ
diff --git a/test/image/baselines/gl3d_cone-sizemode_vector.png b/test/image/baselines/gl3d_cone-sizemode_vector.png
index 8db680c242b..8eea2e0da7a 100644
Binary files a/test/image/baselines/gl3d_cone-sizemode_vector.png and b/test/image/baselines/gl3d_cone-sizemode_vector.png differ
diff --git a/test/image/baselines/gl3d_cone-sizemode_vector2.png b/test/image/baselines/gl3d_cone-sizemode_vector2.png
index 54ffc6fbc75..8d0090f4ca0 100644
Binary files a/test/image/baselines/gl3d_cone-sizemode_vector2.png and b/test/image/baselines/gl3d_cone-sizemode_vector2.png differ
diff --git a/test/image/baselines/gl3d_cone-sizemode_vector3.png b/test/image/baselines/gl3d_cone-sizemode_vector3.png
index 73fcf488409..5af40707fb8 100644
Binary files a/test/image/baselines/gl3d_cone-sizemode_vector3.png and b/test/image/baselines/gl3d_cone-sizemode_vector3.png differ
diff --git a/test/image/baselines/gl3d_cone-wind.png b/test/image/baselines/gl3d_cone-wind.png
index 50840693f9c..549e92d1b80 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 f3982e49ec1..05badc71a23 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 6e95afcd7f6..8ccda947138 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 14dd5efd083..add2da553c4 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 34ab5de5c26..e527f5c4ec9 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 4f8466e62f2..2133c74d676 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 fa3f7e1e0cf..9e7fc6d07b8 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 a82043b528c..6033f73ffe6 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 cd9c0b41f49..95dd4204bf8 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 bc8c0c66259..7af807de8a8 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 e45624afb96..d873607caf1 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 c781880f037..689afdcd2bd 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 8b59160cba6..e65817cf048 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 16b0bafcfb1..3265b7a32de 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 f7dfd0d6ad5..940f59dd1aa 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 4348a0c2d45..eedd086e1e7 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 3bd5886e6cb..d37e29103a0 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 b248b897a22..9d7f98828d8 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 f3e3ffb6a56..f5af473239c 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_font-variant-scatter.png b/test/image/baselines/gl3d_font-variant-scatter.png
index 927b4a14657..ff6ece67859 100644
Binary files a/test/image/baselines/gl3d_font-variant-scatter.png and b/test/image/baselines/gl3d_font-variant-scatter.png differ
diff --git a/test/image/baselines/gl3d_font-weight-scatter.png b/test/image/baselines/gl3d_font-weight-scatter.png
index 2e7b4e41d46..2cf461f801c 100644
Binary files a/test/image/baselines/gl3d_font-weight-scatter.png and b/test/image/baselines/gl3d_font-weight-scatter.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 a0074cb3c73..f25837515c4 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 1b5a7094851..703dc78638b 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 392641a1821..3d529281023 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 5f3c57e18fa..51e28cdf5a9 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 efe49b99c39..6a8fb92433f 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 49c61e298b5..584cc49e3f3 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 b7cf1e59b7d..0d88e1fc9b4 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 ec48d5e5529..32e6fbaed2d 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 165ecb743f2..5a599009c4b 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 7bfd2b8506c..04976fd7fcd 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 6d4c87dead0..213523eac15 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 3e2cd4cfcc8..1fcf37ee971 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 45406cf423e..8778d54c053 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 80c4fb87ed9..dda816ebe78 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 006e9e39c53..ea5cc2fb08b 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 b68fccf2135..14904320d93 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 2a498e8f6e8..2effd6498ca 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 43a4291ab81..42aa96c05e8 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 f07e9136496..f916091e90a 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 6e7148fdf60..58dd729e1e2 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 15eb45d725e..45f049ac6c8 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 d201a3356bb..ab6802d2f5d 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 d3e60109a28..6ab6674a9a0 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 7784595081b..164da3a1508 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 be17ab83bd9..5cecccee48f 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 917318405f5..8d99c2fc69e 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 2e921b3b4dd..43adb7b03a8 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 f2e541b7646..fe84d115884 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 c820dc8a0df..923c0fd0612 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 eae1531aff0..2051fd74411 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 8ed5c87fa8f..86e18995a5d 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 60c25a9b90c..6349410b125 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 d453be7e85c..eda0563dca3 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 c257835b197..018e59620ed 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 803e3b871fe..2f5050b4f1f 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 3d406f8230f..566400bc4a1 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 021cf8aaa55..fe904f3328d 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 3a6dce138be..7f59fe6262b 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 698f2b59855..55f82b759e3 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 157d7382f32..0ee5f9a1c67 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 8b253a59077..9e24c6b4470 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 d000cb1c434..dd3cc0fe962 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 d15d82e288c..a0daf09cdee 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 7a7632d3962..e3f6ffbbdbe 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 968554f105d..db6a1170052 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 fa07288828d..002df5c6c5b 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 ff02d886989..54cbdf85aad 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 5b091e4dfe7..8711500aeed 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 a4d10edc737..989f4a3af94 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 33ef9549e73..4837588998f 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 e343e74b150..c41bcae1319 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 e16fdaca052..2f19c98eb84 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 1a09e54dc92..26adf69a884 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 e7620253b9a..bf4c8827a28 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 9825d81e86f..94522a1348f 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 05d5faa5efb..189c6702ed4 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 5048075bd52..7196183014d 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 a554aed3db2..2f8d92b1431 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 52e3d25a941..fc9f6c2fe5d 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 36596f19479..b275b1aaeb7 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 caa7b45559b..ae95f8d6ac7 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 e301315f85c..29359176f87 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 2848eb62f89..5fa044e2d60 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 8d829a3ce8a..bb13e44b413 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 31f87c32977..028132eceed 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 0eafdf64460..d39a6d8b5b3 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 b0d457e5c7b..f090fbb5a85 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 84398c8ea8d..229fbacd4d6 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 ba040751861..5322c99472c 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 f0f9cf435eb..a066d141fe5 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 5e8a1d26cdb..150534ae8f3 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 d290be13200..95ef3620925 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 d06c87edbf1..e4c1f8d4379 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 b8e92a724ca..60a08b00c3e 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 40ff817b307..fc5592a7b30 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 7f8efa9ac5e..a352090c8d6 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 fd948434536..9f64ec982f3 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 36f7dfe67b9..394e0939b1f 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_small_timerange.png b/test/image/baselines/gl3d_surface_small_timerange.png
index c19db15554c..ff75d25dd2f 100644
Binary files a/test/image/baselines/gl3d_surface_small_timerange.png and b/test/image/baselines/gl3d_surface_small_timerange.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 5a26572cc4b..700ac1c8252 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 07973272876..827b1a1aba6 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 0ed85ef775e..058b199a01f 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 dde5a20d6d5..5221fd80e02 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 a6624957cd1..26fd205af45 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 617726bb247..912f4cced99 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 ad512c1b0f5..a1f09155bec 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 e4d3a7ad821..8c3704f5cb2 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 5f7eacbd212..c23043ea13f 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 78e6a2afedc..59e1cc1cb2c 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 602641f5bf1..3da228c579a 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 be761fc8eb8..6e3454198e0 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 d4a9bdca275..0479d0ef6fb 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 55e980e8ea3..71409191f23 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 435151aa701..62eff4acd59 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 f29e97c7b8c..5be9b915085 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 9c98ade7a14..a10ff45c258 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 8cca9139ba1..0683978f1fd 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 b2e438f884e..0b38978119c 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 e25d4eb6913..28ae6023775 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 b44bcb2538c..980d60a0132 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 770d45ab1ae..872916c4046 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 b88b70f3606..2899cacd885 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 6fb0a61f0f2..89cd033c32f 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/grouped_scatter-linear.png b/test/image/baselines/grouped_scatter-linear.png
index 55e0666acaa..03a46928027 100644
Binary files a/test/image/baselines/grouped_scatter-linear.png and b/test/image/baselines/grouped_scatter-linear.png differ
diff --git a/test/image/baselines/grouped_scatter.png b/test/image/baselines/grouped_scatter.png
index 7d19f1a20d9..237f414d114 100644
Binary files a/test/image/baselines/grouped_scatter.png and b/test/image/baselines/grouped_scatter.png differ
diff --git a/test/image/baselines/groups-over-matching-axes.png b/test/image/baselines/groups-over-matching-axes.png
index 13a53a34ed9..49dcde460f3 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/h-colorbar01.png b/test/image/baselines/h-colorbar01.png
index 3d19cb619ed..f27cde971c1 100644
Binary files a/test/image/baselines/h-colorbar01.png and b/test/image/baselines/h-colorbar01.png differ
diff --git a/test/image/baselines/h-colorbar01_no-border.png b/test/image/baselines/h-colorbar01_no-border.png
index 7de79b24094..2ce07c56297 100644
Binary files a/test/image/baselines/h-colorbar01_no-border.png and b/test/image/baselines/h-colorbar01_no-border.png differ
diff --git a/test/image/baselines/h-colorbar02.png b/test/image/baselines/h-colorbar02.png
index 12109468a8d..880e8fcb26d 100644
Binary files a/test/image/baselines/h-colorbar02.png and b/test/image/baselines/h-colorbar02.png differ
diff --git a/test/image/baselines/h-colorbar03.png b/test/image/baselines/h-colorbar03.png
index f77a098f2a3..402cf007084 100644
Binary files a/test/image/baselines/h-colorbar03.png and b/test/image/baselines/h-colorbar03.png differ
diff --git a/test/image/baselines/h-colorbar04.png b/test/image/baselines/h-colorbar04.png
index cb960586896..f88d0d640e0 100644
Binary files a/test/image/baselines/h-colorbar04.png and b/test/image/baselines/h-colorbar04.png differ
diff --git a/test/image/baselines/h-colorbar05.png b/test/image/baselines/h-colorbar05.png
index d7cec44d390..8db81de8a81 100644
Binary files a/test/image/baselines/h-colorbar05.png and b/test/image/baselines/h-colorbar05.png differ
diff --git a/test/image/baselines/h-colorbar06.png b/test/image/baselines/h-colorbar06.png
index 9f01a89b2f2..ba123614390 100644
Binary files a/test/image/baselines/h-colorbar06.png and b/test/image/baselines/h-colorbar06.png differ
diff --git a/test/image/baselines/h-colorbar07.png b/test/image/baselines/h-colorbar07.png
index d9eda1a3dab..eaf2ac1f8ac 100644
Binary files a/test/image/baselines/h-colorbar07.png and b/test/image/baselines/h-colorbar07.png differ
diff --git a/test/image/baselines/h-colorbar08.png b/test/image/baselines/h-colorbar08.png
index 0d73e364eee..adcce4935ce 100644
Binary files a/test/image/baselines/h-colorbar08.png and b/test/image/baselines/h-colorbar08.png differ
diff --git a/test/image/baselines/h-colorbar09.png b/test/image/baselines/h-colorbar09.png
index bcf0ad37f82..f1cde853f87 100644
Binary files a/test/image/baselines/h-colorbar09.png and b/test/image/baselines/h-colorbar09.png differ
diff --git a/test/image/baselines/h-colorbar10.png b/test/image/baselines/h-colorbar10.png
index 0f2ec648e0c..368565c7353 100644
Binary files a/test/image/baselines/h-colorbar10.png and b/test/image/baselines/h-colorbar10.png differ
diff --git a/test/image/baselines/h-colorbar11.png b/test/image/baselines/h-colorbar11.png
index 8215bb6b21b..5b2829e6cf7 100644
Binary files a/test/image/baselines/h-colorbar11.png and b/test/image/baselines/h-colorbar11.png differ
diff --git a/test/image/baselines/h-colorbar12.png b/test/image/baselines/h-colorbar12.png
index d2ffab10c68..9c7d4e23f9d 100644
Binary files a/test/image/baselines/h-colorbar12.png and b/test/image/baselines/h-colorbar12.png differ
diff --git a/test/image/baselines/h-colorbar12_no-border.png b/test/image/baselines/h-colorbar12_no-border.png
index b210788b11b..14cb158ac65 100644
Binary files a/test/image/baselines/h-colorbar12_no-border.png and b/test/image/baselines/h-colorbar12_no-border.png differ
diff --git a/test/image/baselines/h-colorbar_airfoil.png b/test/image/baselines/h-colorbar_airfoil.png
index 2d914afe645..1fbb9f4a0a7 100644
Binary files a/test/image/baselines/h-colorbar_airfoil.png and b/test/image/baselines/h-colorbar_airfoil.png differ
diff --git a/test/image/baselines/h-colorbar_contour_xyz-gaps-on-sides.png b/test/image/baselines/h-colorbar_contour_xyz-gaps-on-sides.png
index 31855cc95b3..efca72c09e5 100644
Binary files a/test/image/baselines/h-colorbar_contour_xyz-gaps-on-sides.png and b/test/image/baselines/h-colorbar_contour_xyz-gaps-on-sides.png differ
diff --git a/test/image/baselines/h-colorbar_geo_multiple-usa-choropleths.png b/test/image/baselines/h-colorbar_geo_multiple-usa-choropleths.png
index 5990f347774..e73eda530ce 100644
Binary files a/test/image/baselines/h-colorbar_geo_multiple-usa-choropleths.png and b/test/image/baselines/h-colorbar_geo_multiple-usa-choropleths.png differ
diff --git a/test/image/baselines/h-colorbar_geo_multiple-usa-choropleths_with-border.png b/test/image/baselines/h-colorbar_geo_multiple-usa-choropleths_with-border.png
index a8c8c1b7519..85d7ace2d05 100644
Binary files a/test/image/baselines/h-colorbar_geo_multiple-usa-choropleths_with-border.png and b/test/image/baselines/h-colorbar_geo_multiple-usa-choropleths_with-border.png differ
diff --git a/test/image/baselines/h-colorbar_tickformat.png b/test/image/baselines/h-colorbar_tickformat.png
index 5c61b93e7dd..10ffd5dad10 100644
Binary files a/test/image/baselines/h-colorbar_tickformat.png and b/test/image/baselines/h-colorbar_tickformat.png differ
diff --git a/test/image/baselines/h-colorbar_tickformat_with-border.png b/test/image/baselines/h-colorbar_tickformat_with-border.png
index 6ba06d30518..c6675ad9840 100644
Binary files a/test/image/baselines/h-colorbar_tickformat_with-border.png and b/test/image/baselines/h-colorbar_tickformat_with-border.png differ
diff --git a/test/image/baselines/heatmap-log-scale.png b/test/image/baselines/heatmap-log-scale.png
index cfebfb6a999..141dbddaf58 100644
Binary files a/test/image/baselines/heatmap-log-scale.png and b/test/image/baselines/heatmap-log-scale.png differ
diff --git a/test/image/baselines/heatmap-reverse-autocolorscale.png b/test/image/baselines/heatmap-reverse-autocolorscale.png
index a0b7766ff4f..364cdbc7ce6 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-text-color-on-missing-data.png b/test/image/baselines/heatmap-text-color-on-missing-data.png
index b9918ad050a..f44d9048d3c 100644
Binary files a/test/image/baselines/heatmap-text-color-on-missing-data.png and b/test/image/baselines/heatmap-text-color-on-missing-data.png differ
diff --git a/test/image/baselines/heatmap-with-zero-category.png b/test/image/baselines/heatmap-with-zero-category.png
index f3ab3f53eac..224bc7b7d05 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 170b27202ec..2dda199f862 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 a3e88f3fe17..69c920a5b5e 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 d74f4afb0ad..9ade56c7e45 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 ced6e1875ca..486a02a0807 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 14be707733a..43e8302db8b 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 ea0879699f4..8b6acb6fb83 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 f657b52cf17..daa283e0bbc 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 86c2c78ccf3..a76b10ec1eb 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 5c8de53afe6..a4d634e2827 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 4e19597cd28..74e2297f191 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 85127ac70c7..374141ca542 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_small_layout_zsmooth_fast.png b/test/image/baselines/heatmap_small_layout_zsmooth_fast.png
index f0d13d6e109..b3545548250 100644
Binary files a/test/image/baselines/heatmap_small_layout_zsmooth_fast.png and b/test/image/baselines/heatmap_small_layout_zsmooth_fast.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 8b0f24b5de9..0bc88adb4a9 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 3754c04d3dd..303bbcb8cf6 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 6d7e8eda766..81aec8ad1b8 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 71c27b6d80c..1d6ce52b698 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 1035ae975f2..892d4fabfe9 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 61bb1ec8f26..cd550784ee2 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 bdde807524c..9fd2dcfe2ae 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 1ff41fcd34b..b170bf5ea93 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 2f059f337e7..472c20009e6 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 8a20fa9553e..60c1fa87329 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 24b2379fc46..5a31d02e05b 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 371470a4b33..675167ade6b 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 54dce8a6544..454362d07a8 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 a2d052bd0e2..229474f70bd 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 c597f5d0906..6b4d1135f7c 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 ace44eef128..b85873fc2b0 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 84791981d46..ea1a412dbad 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 92c843c3fc8..75d9c3bfb74 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 c9a3dd3fd4a..3bab9da77d4 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 15a8d865ecd..c978350e575 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 038f7f463ed..2a9198a289a 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 e8b0be607a8..78f8f2427cb 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 a8fb137dc98..2ce5a37642a 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 2d00c636643..90f94fa3e4b 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 9d69e5b39b0..9798c346734 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 760657620fd..2d1414eb14f 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 86e129a2d46..c433f89773d 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 3adf7271a19..de43ed8ca0a 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 1317b3794eb..31b49fb698f 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-1point-date.png b/test/image/baselines/histogram_overlay-1point-date.png
index 3a72ebf390f..b77040529fb 100644
Binary files a/test/image/baselines/histogram_overlay-1point-date.png and b/test/image/baselines/histogram_overlay-1point-date.png differ
diff --git a/test/image/baselines/histogram_overlay-bingroup.png b/test/image/baselines/histogram_overlay-bingroup.png
index 732fb24cdf3..1c24461ce4f 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 330cca01c36..4522e9c32c6 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 d9193d926d0..211b66e67a7 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 3668ec5eafc..1327b6fda0f 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 d64b3e3cb49..efd41b9565c 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 aa6f3cad9da..eed9acf52b9 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 c54143c8ddd..043984f65f4 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 08b33762e96..f0da4f7d668 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 a0fb508c8ab..0960cdaf630 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 542fee898b3..c0896958601 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 f6db29407a2..84ed0105730 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 1456648c70f..800c14de0bf 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 1c1fbfc12a8..3913f96ed07 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 14274686fe9..c0112c025c6 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 1dca4bcfad0..7a4086d4df8 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 1b1411e6772..cde128ed14b 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 dc239941e2e..d267f7d9335 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 025c76eceec..19e2f86ec64 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 81395225dbb..6a472846321 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 12d641a6474..f2528d85c0c 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 f8af0f25641..e0dd7ea7fbc 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 dafd235c384..b4b04b11b54 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 ecc368fecdf..63093ebfae9 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 aab64e1ac58..eb2c95d36b1 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 5693782e785..386556fff9f 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 076c6839db5..9313f1af960 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 d64f5103541..a81fadadf88 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 2c0079f4444..317a39a529f 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 5cf8677c724..3980e09dfd3 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 266de8dcfe6..999a14b02c0 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 3d0a7c7513f..3ac3de82846 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 ed31eb19f1c..451ed42befa 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 18850319fb7..b338e8cdff1 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 97bea4e1ad8..d2953f8f9fa 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 4e142538ba2..30b32da878b 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 a5c3071cd3f..e3d2973507a 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 5c7694f5616..59d35ed6462 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 f43e7a8a24e..c7b83a1aa13 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/insiderange-category.png b/test/image/baselines/insiderange-category.png
index 2964d7b2e8e..25768b673f5 100644
Binary files a/test/image/baselines/insiderange-category.png and b/test/image/baselines/insiderange-category.png differ
diff --git a/test/image/baselines/insiderange-x-multi-y.png b/test/image/baselines/insiderange-x-multi-y.png
index 3c457a23318..dc98d742652 100644
Binary files a/test/image/baselines/insiderange-x-multi-y.png and b/test/image/baselines/insiderange-x-multi-y.png differ
diff --git a/test/image/baselines/insiderange-x-narrow.png b/test/image/baselines/insiderange-x-narrow.png
index 38280ba02a2..e785f4c2030 100644
Binary files a/test/image/baselines/insiderange-x-narrow.png and b/test/image/baselines/insiderange-x-narrow.png differ
diff --git a/test/image/baselines/insiderange-x.png b/test/image/baselines/insiderange-x.png
index fb804bbbc26..bfb72742c9e 100644
Binary files a/test/image/baselines/insiderange-x.png and b/test/image/baselines/insiderange-x.png differ
diff --git a/test/image/baselines/insiderange-y-multi-x.png b/test/image/baselines/insiderange-y-multi-x.png
index c4cb5b52eb2..6a2614a2fe9 100644
Binary files a/test/image/baselines/insiderange-y-multi-x.png and b/test/image/baselines/insiderange-y-multi-x.png differ
diff --git a/test/image/baselines/insiderange-y-narrow.png b/test/image/baselines/insiderange-y-narrow.png
index b963f0928f2..7e6cbaa8b95 100644
Binary files a/test/image/baselines/insiderange-y-narrow.png and b/test/image/baselines/insiderange-y-narrow.png differ
diff --git a/test/image/baselines/insiderange-y.png b/test/image/baselines/insiderange-y.png
index 71fdcb33ad0..5456386609f 100644
Binary files a/test/image/baselines/insiderange-y.png and b/test/image/baselines/insiderange-y.png differ
diff --git a/test/image/baselines/japanese.png b/test/image/baselines/japanese.png
index 651c8d4b1a4..33dc45c8570 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 b4cb63d723b..48bba90b7b9 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/label-spacing.png b/test/image/baselines/label-spacing.png
new file mode 100644
index 00000000000..0062cff262f
Binary files /dev/null and b/test/image/baselines/label-spacing.png differ
diff --git a/test/image/baselines/labelled_heatmap.png b/test/image/baselines/labelled_heatmap.png
index ae4669bf614..35b66504bdb 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 9e7b3c56494..845a383b41c 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 51556010c0f..05877ab22d7 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 b6ade852549..daa1c806c51 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 c8de39075a1..9538b3f2fce 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-row-group-height.png b/test/image/baselines/legend-row-group-height.png
index 56db7a5adee..137b7543dac 100644
Binary files a/test/image/baselines/legend-row-group-height.png and b/test/image/baselines/legend-row-group-height.png differ
diff --git a/test/image/baselines/legend-vertical-maxheight.png b/test/image/baselines/legend-vertical-maxheight.png
new file mode 100644
index 00000000000..fe6a409d000
Binary files /dev/null and b/test/image/baselines/legend-vertical-maxheight.png differ
diff --git a/test/image/baselines/legend_horizontal.png b/test/image/baselines/legend_horizontal.png
index 8aa33dd0ec7..bba473cbecb 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 f1b757ac783..5455ee49975 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 cd981d5db11..fafcc3dea8f 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 5b829036d2d..ec91914fd03 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 3888f600654..f355c040fab 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 01acbfe2fc6..1596572e496 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 ee4a1e35fc5..c1f007e1ba5 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_indentation.png b/test/image/baselines/legend_indentation.png
index 3e311b5cc06..58d9caae82f 100644
Binary files a/test/image/baselines/legend_indentation.png and b/test/image/baselines/legend_indentation.png differ
diff --git a/test/image/baselines/legend_inside.png b/test/image/baselines/legend_inside.png
index 0ce3a093c91..a09530f3be8 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 47b679ee59c..2f81f4aac7b 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 d11a0efae9e..5edf66da849 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 f228241cce0..a6c0964cbab 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 2c4f7b5202e..35a487ef4fb 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 39db29193b3..0b3181e088d 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 55634950845..3671dbcf0a2 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 9b28930d980..d5907491847 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 0e24020fd32..417addb8078 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 712c85e8ecb..c05486b7c45 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 f109846d734..5486b48af4a 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 393c0b5aa79..677421dd0ff 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 7ef13b50b7a..fdfc6855f78 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 2c416a92fb5..597f7142e75 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 4d2e815466f..8492920d871 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 e32c34b2f00..9476bc4f60e 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 416850f281f..a320306fdc5 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 f9ddb33fba2..e18fb2f687a 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 8065bd8478e..e80069a9c02 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 5a6a39dcf78..2132d665e64 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 0df80eda914..5a6378b525f 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 4500347a171..68f4910dc62 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 d4e16ab8547..a63ca234817 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 6fad6a2b8a2..a2e24e8bd58 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 0a577fc3387..c450fbdfc19 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 3679321b91e..917f2f14b2d 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 08971ed4ccb..bc81894e14e 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 a7ee6402317..9259a25f188 100644
Binary files a/test/image/baselines/legendrank2.png and b/test/image/baselines/legendrank2.png differ
diff --git a/test/image/baselines/line-shape-arrow.png b/test/image/baselines/line-shape-arrow.png
index 8037c4d4625..e817fdae418 100644
Binary files a/test/image/baselines/line-shape-arrow.png and b/test/image/baselines/line-shape-arrow.png differ
diff --git a/test/image/baselines/line-shape-arrow_backoff-auto.png b/test/image/baselines/line-shape-arrow_backoff-auto.png
index ac2811e4d84..09ebb390fd7 100644
Binary files a/test/image/baselines/line-shape-arrow_backoff-auto.png and b/test/image/baselines/line-shape-arrow_backoff-auto.png differ
diff --git a/test/image/baselines/line-shape-arrow_backoff.png b/test/image/baselines/line-shape-arrow_backoff.png
index bcab37977e9..31c69ec5502 100644
Binary files a/test/image/baselines/line-shape-arrow_backoff.png and b/test/image/baselines/line-shape-arrow_backoff.png differ
diff --git a/test/image/baselines/line_grid_color.png b/test/image/baselines/line_grid_color.png
index b9c8a2937c9..c6fa2e964a1 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 82604ce0cd4..33325e3e71c 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 95b08021ecf..4574c1ceb6d 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_scatter_change_side.png b/test/image/baselines/line_scatter_change_side.png
index ea9e7d6e1c5..c7bdaa66aaf 100644
Binary files a/test/image/baselines/line_scatter_change_side.png and b/test/image/baselines/line_scatter_change_side.png differ
diff --git a/test/image/baselines/line_scatter_change_side_shrunk.png b/test/image/baselines/line_scatter_change_side_shrunk.png
index 9a4eee7a117..041c7200d51 100644
Binary files a/test/image/baselines/line_scatter_change_side_shrunk.png and b/test/image/baselines/line_scatter_change_side_shrunk.png differ
diff --git a/test/image/baselines/line_scatter_regular_side.png b/test/image/baselines/line_scatter_regular_side.png
index cac503c85d4..c5afd36167c 100644
Binary files a/test/image/baselines/line_scatter_regular_side.png and b/test/image/baselines/line_scatter_regular_side.png differ
diff --git a/test/image/baselines/line_scatter_regular_side_shrunk.png b/test/image/baselines/line_scatter_regular_side_shrunk.png
index 422c0160080..d61951b80e0 100644
Binary files a/test/image/baselines/line_scatter_regular_side_shrunk.png and b/test/image/baselines/line_scatter_regular_side_shrunk.png differ
diff --git a/test/image/baselines/line_style.png b/test/image/baselines/line_style.png
index a2cced15ef5..2d77fe352f0 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 7e92e27a442..559fd517115 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 ef5137b261b..64318bd9463 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 8af4b4c1c6c..c0ef8067599 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/map_0.png b/test/image/baselines/map_0.png
index d7d5618c8fb..225d4469857 100644
Binary files a/test/image/baselines/map_0.png and b/test/image/baselines/map_0.png differ
diff --git a/test/image/baselines/map_bubbles-text.png b/test/image/baselines/map_bubbles-text.png
index ce7a38cc794..798c7d6060b 100644
Binary files a/test/image/baselines/map_bubbles-text.png and b/test/image/baselines/map_bubbles-text.png differ
diff --git a/test/image/baselines/map_bubbles.png b/test/image/baselines/map_bubbles.png
index 811241f7ad1..a5a9cd6c785 100644
Binary files a/test/image/baselines/map_bubbles.png and b/test/image/baselines/map_bubbles.png differ
diff --git a/test/image/baselines/map_carto-style.png b/test/image/baselines/map_carto-style.png
index e0257bf482d..8498b509292 100644
Binary files a/test/image/baselines/map_carto-style.png and b/test/image/baselines/map_carto-style.png differ
diff --git a/test/image/baselines/map_carto-text.png b/test/image/baselines/map_carto-text.png
index 9d234b9433a..8a752ba0245 100644
Binary files a/test/image/baselines/map_carto-text.png and b/test/image/baselines/map_carto-text.png differ
diff --git a/test/image/baselines/map_choropleth-multiple.png b/test/image/baselines/map_choropleth-multiple.png
index 5aa665317d8..7e973ce9718 100644
Binary files a/test/image/baselines/map_choropleth-multiple.png and b/test/image/baselines/map_choropleth-multiple.png differ
diff --git a/test/image/baselines/map_choropleth-raw-geojson.png b/test/image/baselines/map_choropleth-raw-geojson.png
index 5d390f47756..2b01bc17c7e 100644
Binary files a/test/image/baselines/map_choropleth-raw-geojson.png and b/test/image/baselines/map_choropleth-raw-geojson.png differ
diff --git a/test/image/baselines/map_choropleth0-legend.png b/test/image/baselines/map_choropleth0-legend.png
index a8467c4f741..eb153871eda 100644
Binary files a/test/image/baselines/map_choropleth0-legend.png and b/test/image/baselines/map_choropleth0-legend.png differ
diff --git a/test/image/baselines/map_choropleth0.png b/test/image/baselines/map_choropleth0.png
index 1301d5ea9fd..028009fb102 100644
Binary files a/test/image/baselines/map_choropleth0.png and b/test/image/baselines/map_choropleth0.png differ
diff --git a/test/image/baselines/map_connectgaps.png b/test/image/baselines/map_connectgaps.png
index 6cdcf06d617..f84d9ced6a0 100644
Binary files a/test/image/baselines/map_connectgaps.png and b/test/image/baselines/map_connectgaps.png differ
diff --git a/test/image/baselines/map_custom-style.png b/test/image/baselines/map_custom-style.png
index 6db20064a00..a482f4b96f4 100644
Binary files a/test/image/baselines/map_custom-style.png and b/test/image/baselines/map_custom-style.png differ
diff --git a/test/image/baselines/map_density-multiple.png b/test/image/baselines/map_density-multiple.png
index dd86a2e1986..439f0def531 100644
Binary files a/test/image/baselines/map_density-multiple.png and b/test/image/baselines/map_density-multiple.png differ
diff --git a/test/image/baselines/map_density-multiple_legend.png b/test/image/baselines/map_density-multiple_legend.png
index 028107681ba..362bcca504d 100644
Binary files a/test/image/baselines/map_density-multiple_legend.png and b/test/image/baselines/map_density-multiple_legend.png differ
diff --git a/test/image/baselines/map_density0.png b/test/image/baselines/map_density0.png
index 038a2395ae6..5cad2b749fc 100644
Binary files a/test/image/baselines/map_density0.png and b/test/image/baselines/map_density0.png differ
diff --git a/test/image/baselines/map_earthquake-density.png b/test/image/baselines/map_earthquake-density.png
index 8df3af12987..f23bbfd6811 100644
Binary files a/test/image/baselines/map_earthquake-density.png and b/test/image/baselines/map_earthquake-density.png differ
diff --git a/test/image/baselines/map_fill.png b/test/image/baselines/map_fill.png
index f5447772458..0f5dfedd2c1 100644
Binary files a/test/image/baselines/map_fill.png and b/test/image/baselines/map_fill.png differ
diff --git a/test/image/baselines/map_fonts-supported-metropolis-italic.png b/test/image/baselines/map_fonts-supported-metropolis-italic.png
index 2b51bfc6cdd..666a55957de 100644
Binary files a/test/image/baselines/map_fonts-supported-metropolis-italic.png and b/test/image/baselines/map_fonts-supported-metropolis-italic.png differ
diff --git a/test/image/baselines/map_fonts-supported-metropolis-weight.png b/test/image/baselines/map_fonts-supported-metropolis-weight.png
index a239b749370..cf8ce35a1c4 100644
Binary files a/test/image/baselines/map_fonts-supported-metropolis-weight.png and b/test/image/baselines/map_fonts-supported-metropolis-weight.png differ
diff --git a/test/image/baselines/map_fonts-supported-metropolis.png b/test/image/baselines/map_fonts-supported-metropolis.png
index a239b749370..cf8ce35a1c4 100644
Binary files a/test/image/baselines/map_fonts-supported-metropolis.png and b/test/image/baselines/map_fonts-supported-metropolis.png differ
diff --git a/test/image/baselines/map_geojson-attributes.png b/test/image/baselines/map_geojson-attributes.png
index 2a5a70fefba..38fc9277ed5 100644
Binary files a/test/image/baselines/map_geojson-attributes.png and b/test/image/baselines/map_geojson-attributes.png differ
diff --git a/test/image/baselines/map_symbol-text.png b/test/image/baselines/map_symbol-text.png
index 5b3a919b251..9b8d497ae32 100644
Binary files a/test/image/baselines/map_symbol-text.png and b/test/image/baselines/map_symbol-text.png differ
diff --git a/test/image/baselines/map_texttemplate.png b/test/image/baselines/map_texttemplate.png
index 245acd67c13..464b1df6aaf 100644
Binary files a/test/image/baselines/map_texttemplate.png and b/test/image/baselines/map_texttemplate.png differ
diff --git a/test/image/baselines/marker-standoff.png b/test/image/baselines/marker-standoff.png
index b7587d6f665..021c7be3447 100644
Binary files a/test/image/baselines/marker-standoff.png and b/test/image/baselines/marker-standoff.png differ
diff --git a/test/image/baselines/marker-standoff_auto-backoff.png b/test/image/baselines/marker-standoff_auto-backoff.png
index b4b29c1e05a..fc6584d90f3 100644
Binary files a/test/image/baselines/marker-standoff_auto-backoff.png and b/test/image/baselines/marker-standoff_auto-backoff.png differ
diff --git a/test/image/baselines/marker-standoff_auto-backoff2.png b/test/image/baselines/marker-standoff_auto-backoff2.png
index 89369bd984f..9c8affe364a 100644
Binary files a/test/image/baselines/marker-standoff_auto-backoff2.png and b/test/image/baselines/marker-standoff_auto-backoff2.png differ
diff --git a/test/image/baselines/marker_colorscale_template.png b/test/image/baselines/marker_colorscale_template.png
index eebc8d1958a..7a88fc01c34 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 2be21c5f78e..93f6fc90e4b 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-angle.png b/test/image/baselines/marker_symbols-angle.png
index cac234aabbb..a82b9b30ba7 100644
Binary files a/test/image/baselines/marker_symbols-angle.png and b/test/image/baselines/marker_symbols-angle.png differ
diff --git a/test/image/baselines/marker_symbols.png b/test/image/baselines/marker_symbols.png
index f7ceb938ac2..7125bfc643e 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 67fe5238880..ec0811e4cab 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 12b13bdc748..8775c342e01 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 b3a18ba4b65..dc454c412b8 100644
Binary files a/test/image/baselines/mathjax.png and b/test/image/baselines/mathjax.png differ
diff --git a/test/image/baselines/mathjax3___legend_mathjax_title_and_items.png b/test/image/baselines/mathjax3___legend_mathjax_title_and_items.png
index a74028ff2b8..e1c024f8e8c 100644
Binary files a/test/image/baselines/mathjax3___legend_mathjax_title_and_items.png and b/test/image/baselines/mathjax3___legend_mathjax_title_and_items.png differ
diff --git a/test/image/baselines/mathjax3___mathjax.png b/test/image/baselines/mathjax3___mathjax.png
index 1fd8e8b4108..d8c6aafc1ed 100644
Binary files a/test/image/baselines/mathjax3___mathjax.png and b/test/image/baselines/mathjax3___mathjax.png differ
diff --git a/test/image/baselines/mathjax3___parcats_grid_subplots.png b/test/image/baselines/mathjax3___parcats_grid_subplots.png
index 0d485e0b574..ed71a889060 100644
Binary files a/test/image/baselines/mathjax3___parcats_grid_subplots.png and b/test/image/baselines/mathjax3___parcats_grid_subplots.png differ
diff --git a/test/image/baselines/mathjax3___table_latex_multitrace_scatter.png b/test/image/baselines/mathjax3___table_latex_multitrace_scatter.png
index 3e59e955334..c45a197734c 100644
Binary files a/test/image/baselines/mathjax3___table_latex_multitrace_scatter.png and b/test/image/baselines/mathjax3___table_latex_multitrace_scatter.png differ
diff --git a/test/image/baselines/mathjax3___table_plain_birds.png b/test/image/baselines/mathjax3___table_plain_birds.png
index c99b4ea88b1..58364ec1f1f 100644
Binary files a/test/image/baselines/mathjax3___table_plain_birds.png and b/test/image/baselines/mathjax3___table_plain_birds.png differ
diff --git a/test/image/baselines/mathjax3___table_wrapped_birds.png b/test/image/baselines/mathjax3___table_wrapped_birds.png
index 26387cd297f..350a1d5e7d8 100644
Binary files a/test/image/baselines/mathjax3___table_wrapped_birds.png and b/test/image/baselines/mathjax3___table_wrapped_birds.png differ
diff --git a/test/image/baselines/mathjax3___ternary-mathjax-title-place-subtitle.png b/test/image/baselines/mathjax3___ternary-mathjax-title-place-subtitle.png
index eef6c4e317b..3d06239168e 100644
Binary files a/test/image/baselines/mathjax3___ternary-mathjax-title-place-subtitle.png and b/test/image/baselines/mathjax3___ternary-mathjax-title-place-subtitle.png differ
diff --git a/test/image/baselines/mathjax3___ternary-mathjax.png b/test/image/baselines/mathjax3___ternary-mathjax.png
index 43ab8bf8133..a145da8021b 100644
Binary files a/test/image/baselines/mathjax3___ternary-mathjax.png and b/test/image/baselines/mathjax3___ternary-mathjax.png differ
diff --git a/test/image/baselines/minorloglabels.png b/test/image/baselines/minorloglabels.png
new file mode 100644
index 00000000000..7bae39e0ae7
Binary files /dev/null and b/test/image/baselines/minorloglabels.png differ
diff --git a/test/image/baselines/mirror-all-vs-allticks.png b/test/image/baselines/mirror-all-vs-allticks.png
index 6b5a48acde4..7b9c30ba63e 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 46d6a0d1545..0461c1c7283 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/mult-yaxes-manual-shift.png b/test/image/baselines/mult-yaxes-manual-shift.png
index b29c78f3cff..179ef17c95f 100644
Binary files a/test/image/baselines/mult-yaxes-manual-shift.png and b/test/image/baselines/mult-yaxes-manual-shift.png differ
diff --git a/test/image/baselines/mult-yaxes-redraw.png b/test/image/baselines/mult-yaxes-redraw.png
index c7c575f8c81..6b31c231823 100644
Binary files a/test/image/baselines/mult-yaxes-redraw.png and b/test/image/baselines/mult-yaxes-redraw.png differ
diff --git a/test/image/baselines/mult-yaxes-simple.png b/test/image/baselines/mult-yaxes-simple.png
index 549917d680a..3d9486ef40e 100644
Binary files a/test/image/baselines/mult-yaxes-simple.png and b/test/image/baselines/mult-yaxes-simple.png differ
diff --git a/test/image/baselines/mult-yaxes-subplots-stacked.png b/test/image/baselines/mult-yaxes-subplots-stacked.png
index 32de1b96d8b..5aac4b389cd 100644
Binary files a/test/image/baselines/mult-yaxes-subplots-stacked.png and b/test/image/baselines/mult-yaxes-subplots-stacked.png differ
diff --git a/test/image/baselines/multi-legends.png b/test/image/baselines/multi-legends.png
index e7078b921dd..d33cecbf4ec 100644
Binary files a/test/image/baselines/multi-legends.png and b/test/image/baselines/multi-legends.png differ
diff --git a/test/image/baselines/multi_axis_shapes.png b/test/image/baselines/multi_axis_shapes.png
index 475658f57c0..d9edd2d5ad3 100644
Binary files a/test/image/baselines/multi_axis_shapes.png and b/test/image/baselines/multi_axis_shapes.png differ
diff --git a/test/image/baselines/multicategory-inside-ticks.png b/test/image/baselines/multicategory-inside-ticks.png
index b80e02f4aa8..dccd240ce99 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 02a50321de7..10e11a9ef98 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 a414d5120d2..c7b3ff4ef83 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 bb714a819f5..5c5bbe309ef 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 c81db88d446..6b2d6f1bab8 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 099371260da..34de9eb9cd3 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 88def1eb978..9d7d1914899 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/multicategory_series.png b/test/image/baselines/multicategory_series.png
index 929a6e99e07..dfbe24abe2e 100644
Binary files a/test/image/baselines/multicategory_series.png and b/test/image/baselines/multicategory_series.png differ
diff --git a/test/image/baselines/multiple_axes_double.png b/test/image/baselines/multiple_axes_double.png
index 5b564459925..c9d37f2d5a0 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 9e6113fb9c3..f2e24264b57 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 62b5b225b67..6112d5ce1a6 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/new_tickmode_sync.png b/test/image/baselines/new_tickmode_sync.png
index e4db19d05c0..eabb057d4c4 100644
Binary files a/test/image/baselines/new_tickmode_sync.png and b/test/image/baselines/new_tickmode_sync.png differ
diff --git a/test/image/baselines/ohlc_first.png b/test/image/baselines/ohlc_first.png
index 4516bbdf9c9..2f9adfe4175 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 71aede7c553..614f77162e0 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 0d8ef20b4b3..b7244947987 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 e57c98d76b6..bf51a69aafb 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 8e27c5db8ed..32a84fb43be 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 859f0a98341..e3e6ecfb701 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 377d7d63a1f..266299bc16b 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 9671eba0312..ed29b536448 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 79359ee6950..822abd20643 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 7bfc47557dd..0925b959212 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 fbfb674583c..ed1d6d421b2 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 c745b6c4a53..554e547d8a3 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 dda96c2d63c..196f6ada8d9 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 ed2dd3e06df..c0c3894e776 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 994a8f94414..495b0cdf797 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 a60ab00cdad..838388f223d 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/partial-autorange-matching-axes.png b/test/image/baselines/partial-autorange-matching-axes.png
index 90b855d9a32..f08df73acfe 100644
Binary files a/test/image/baselines/partial-autorange-matching-axes.png and b/test/image/baselines/partial-autorange-matching-axes.png differ
diff --git a/test/image/baselines/pattern_bars-path.png b/test/image/baselines/pattern_bars-path.png
new file mode 100644
index 00000000000..47fe07e7d71
Binary files /dev/null and b/test/image/baselines/pattern_bars-path.png differ
diff --git a/test/image/baselines/pattern_bars.png b/test/image/baselines/pattern_bars.png
index 077c05cf164..c56091831dd 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 6c6b5fbb821..205dd8e35f5 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 8c3e0b9a740..bb86489cdb4 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 2c1a545997c..683fb547dff 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 d2825c09000..e7535c97944 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 e1f5a1003f3..0ecd73dffe9 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 f4d0b2b90a6..96f4fb0df50 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 acf1b899c2b..c43f089537c 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 4c7b7f9af53..41e81d223ba 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 d34286f3bb8..6dad22096a1 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 79f9a5436df..026b7a2124b 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 26631ea4366..7f557032103 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 6a1e4fd2d41..4f83c03debb 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 e4571743820..86a2d7f1e47 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/petrophysics.png b/test/image/baselines/petrophysics.png
index aba9c94bad0..3ec934d4270 100644
Binary files a/test/image/baselines/petrophysics.png and b/test/image/baselines/petrophysics.png differ
diff --git a/test/image/baselines/picnic_heatmap.png b/test/image/baselines/picnic_heatmap.png
index a5835a21af3..1421cfecaf6 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-slice-legend.png b/test/image/baselines/pie-slice-legend.png
new file mode 100644
index 00000000000..de10d4cefc3
Binary files /dev/null and b/test/image/baselines/pie-slice-legend.png differ
diff --git a/test/image/baselines/pie-slice-legend2.png b/test/image/baselines/pie-slice-legend2.png
new file mode 100644
index 00000000000..f5a2beef2e5
Binary files /dev/null and b/test/image/baselines/pie-slice-legend2.png differ
diff --git a/test/image/baselines/pie-slice-legend3.png b/test/image/baselines/pie-slice-legend3.png
new file mode 100644
index 00000000000..172dfe39882
Binary files /dev/null and b/test/image/baselines/pie-slice-legend3.png differ
diff --git a/test/image/baselines/pie_aggregated.png b/test/image/baselines/pie_aggregated.png
index 84ca2783621..4d2b8bfbba8 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 08b11eb6755..0f724a919b4 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 d58ffa10bb6..2d01a2ceb50 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 d20c42394e4..0ee1ba8b16f 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 1ccf61c91fd..d369623aeb2 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 7e8b6ab5168..8d2b87de687 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 a423ad88131..e03f42eb947 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 620684ff778..1628702523e 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_negative_values.png b/test/image/baselines/pie_negative_values.png
old mode 100755
new mode 100644
index ce445c84dc7..f92a70311df
Binary files a/test/image/baselines/pie_negative_values.png and b/test/image/baselines/pie_negative_values.png differ
diff --git a/test/image/baselines/pie_pattern.png b/test/image/baselines/pie_pattern.png
index eb81ee34c30..1d7b2198ab1 100644
Binary files a/test/image/baselines/pie_pattern.png and b/test/image/baselines/pie_pattern.png differ
diff --git a/test/image/baselines/pie_scale_textpos_hideslices.png b/test/image/baselines/pie_scale_textpos_hideslices.png
index 5ff341e9601..5a42191fa71 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 5a737f77212..7c26e235641 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 a34ade96e91..881b52b193e 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 952ae5c2cda..4287391dfb6 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 4722dc5d5ce..90431b7d1a0 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 20733b24acc..5e89c56d2c0 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 66b96d2ed40..bb72f033a8d 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 d9ae577c773..c2e5d9c8753 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 88dec57178d..11a9fd1ab99 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 7e0b0e799e4..9be9421a2fa 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 2d5cf0234d2..c21c49dfe39 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 e26230453d0..ff418205b06 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 f3dc00704d5..496e03fc6cd 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 7fe49d1569e..3d0e7d04049 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 ca20b52609c..e4a0a45245c 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/plot_types_grid_dash.png b/test/image/baselines/plot_types_grid_dash.png
index b912549bb3d..87c266ae76e 100644
Binary files a/test/image/baselines/plot_types_grid_dash.png and b/test/image/baselines/plot_types_grid_dash.png differ
diff --git a/test/image/baselines/point-selection.png b/test/image/baselines/point-selection.png
index 4164d472d86..cf7db915827 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 706916de272..05afea36b80 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 a09e839ffce..ccd23db5124 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 363a9785e1b..9b549ebeb1f 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 8344c0f03f8..b33db1da85f 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 dab6d76b4ef..7a1a5aa955e 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 1725ac3d1ba..3d2c380a40f 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 3c90e449f47..e5c3bfce69c 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 abb99d44401..ebaa58d62c7 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 7b4e0ac3a37..63c55aef81a 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 34f29320ce9..458cb71b17d 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 8eb516ba193..59bbfaa5f4e 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 f3a3e7acf6c..e910dc0e4cb 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 c3c869f77fe..53856002340 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 7d16c25b468..bc3c6df55b7 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 d9d59a24b85..ccfe19d387a 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 1ac5026caa7..c18a48b96e9 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 90e426181c1..c3c152c1474 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 b44588fa284..3fd7641b730 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 2f93b249c2f..fb9fe80115c 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 c0aaea7ac56..4cb6a999605 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 de96ab4afac..e6ecb1d34ca 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 04994239b60..bd52d1c9b3f 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_wind-rose.png b/test/image/baselines/polar_wind-rose.png
index 61e2574f2c0..22bfb170b21 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 f5cabd63234..e146c7d2686 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 9679fcdca04..8907528affd 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 3f99fcce8ce..e8ac983ba94 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 577cf32d7f5..2353ae8fa92 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 c191ed23bf9..9a12222f345 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 1f3e61e90c2..e627bbb8391 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 b50161d3615..5e51d001f25 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 29ff22ff583..2b36ed1e02f 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 c828353487a..01abfe29425 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 19c0669a7ae..47becd96a32 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 c9fa0f176a3..9eb5c4457ff 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 9bac47761d6..1ded4c2fd65 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 961b0514e0f..c3df7e1587d 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 bfe9518b02a..f68a4dcb261 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 d9e2b9c59d1..165d469c4ba 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 f4757cdc7bd..032f81b85fc 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 903985e4dbd..9a3d95db424 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/round-bar_attrs_relative.png b/test/image/baselines/round-bar_attrs_relative.png
index f7c41079410..3d668ce0cd0 100644
Binary files a/test/image/baselines/round-bar_attrs_relative.png and b/test/image/baselines/round-bar_attrs_relative.png differ
diff --git a/test/image/baselines/round-bar_stackto100_negative.png b/test/image/baselines/round-bar_stackto100_negative.png
index f83fcf666f1..3bf5c56e829 100644
Binary files a/test/image/baselines/round-bar_stackto100_negative.png and b/test/image/baselines/round-bar_stackto100_negative.png differ
diff --git a/test/image/baselines/round-worldcup.png b/test/image/baselines/round-worldcup.png
index 784f8553528..306d294a981 100644
Binary files a/test/image/baselines/round-worldcup.png and b/test/image/baselines/round-worldcup.png differ
diff --git a/test/image/baselines/rounded-bar_display_height_zero_no_line_width.png b/test/image/baselines/rounded-bar_display_height_zero_no_line_width.png
index f8774543e42..d9a0ff1b89d 100644
Binary files a/test/image/baselines/rounded-bar_display_height_zero_no_line_width.png and b/test/image/baselines/rounded-bar_display_height_zero_no_line_width.png differ
diff --git a/test/image/baselines/sankey_align_center.png b/test/image/baselines/sankey_align_center.png
index ec1cdc2e74d..1030c724c9d 100644
Binary files a/test/image/baselines/sankey_align_center.png and b/test/image/baselines/sankey_align_center.png differ
diff --git a/test/image/baselines/sankey_align_justify.png b/test/image/baselines/sankey_align_justify.png
index 9113df3b924..3e57f5d79b7 100644
Binary files a/test/image/baselines/sankey_align_justify.png and b/test/image/baselines/sankey_align_justify.png differ
diff --git a/test/image/baselines/sankey_align_left.png b/test/image/baselines/sankey_align_left.png
index 0022c7589cc..3bbf53881f8 100644
Binary files a/test/image/baselines/sankey_align_left.png and b/test/image/baselines/sankey_align_left.png differ
diff --git a/test/image/baselines/sankey_align_right.png b/test/image/baselines/sankey_align_right.png
index ae0552ddedf..437f18c130b 100644
Binary files a/test/image/baselines/sankey_align_right.png and b/test/image/baselines/sankey_align_right.png differ
diff --git a/test/image/baselines/sankey_circular.png b/test/image/baselines/sankey_circular.png
index 83a9c5e091d..035057a261e 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_align_right.png b/test/image/baselines/sankey_circular_align_right.png
index 39edbe3c98f..183b1fc9b14 100644
Binary files a/test/image/baselines/sankey_circular_align_right.png and b/test/image/baselines/sankey_circular_align_right.png differ
diff --git a/test/image/baselines/sankey_circular_large.png b/test/image/baselines/sankey_circular_large.png
index 14a956a1814..0dc7ea712e0 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 aaa1deb4faf..f3ccea1b13c 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 555e2daba2b..738d9e977ca 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 25f60439928..90517330e6b 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_circular_with_arrows.png b/test/image/baselines/sankey_circular_with_arrows.png
index c5472216a5d..0b6bda3a22f 100644
Binary files a/test/image/baselines/sankey_circular_with_arrows.png and b/test/image/baselines/sankey_circular_with_arrows.png differ
diff --git a/test/image/baselines/sankey_circular_with_arrows_vertical.png b/test/image/baselines/sankey_circular_with_arrows_vertical.png
index b02740c62ed..5e5f35c372e 100644
Binary files a/test/image/baselines/sankey_circular_with_arrows_vertical.png and b/test/image/baselines/sankey_circular_with_arrows_vertical.png differ
diff --git a/test/image/baselines/sankey_energy.png b/test/image/baselines/sankey_energy.png
index ffe9b26f1de..5e6214ab0b6 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 fd154477e96..d1e6b3bb4de 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 90b6b312653..df8309fb420 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 dd4c3de97af..a8de80ef0c8 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 0c7fe6eeca4..82173030118 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 e1d33a5f004..7025123e48d 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 0643f1f3271..ad4b9318157 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 91a470ae1f1..9fa07de449d 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 b734021f9d5..6ae79735076 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/sankey_x_y_with_arrows.png b/test/image/baselines/sankey_x_y_with_arrows.png
index 86a28335878..54ae12a6b24 100644
Binary files a/test/image/baselines/sankey_x_y_with_arrows.png and b/test/image/baselines/sankey_x_y_with_arrows.png differ
diff --git a/test/image/baselines/scatter-colorscale-colorbar.png b/test/image/baselines/scatter-colorscale-colorbar.png
index a2ed7b47dad..00d7aadd994 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-grouping-vs-defaults.png b/test/image/baselines/scatter-grouping-vs-defaults.png
index 42e135f6824..ce024eaf47e 100644
Binary files a/test/image/baselines/scatter-grouping-vs-defaults.png and b/test/image/baselines/scatter-grouping-vs-defaults.png differ
diff --git a/test/image/baselines/scatter-marker-line-colorscales.png b/test/image/baselines/scatter-marker-line-colorscales.png
index d9836b67646..96f95e89aeb 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 af2a3d04bd2..a6ed7313a10 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 4f56f973bd9..a702ecfc3fb 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 bd99f2d71fe..51a7f95df3d 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_gradient_tonext.png b/test/image/baselines/scatter_fill_gradient_tonext.png
index 9e6939e28a0..4ab05c24f3a 100644
Binary files a/test/image/baselines/scatter_fill_gradient_tonext.png and b/test/image/baselines/scatter_fill_gradient_tonext.png differ
diff --git a/test/image/baselines/scatter_fill_gradient_tonexty_toself.png b/test/image/baselines/scatter_fill_gradient_tonexty_toself.png
index 54d176b74b5..08bb190b4ed 100644
Binary files a/test/image/baselines/scatter_fill_gradient_tonexty_toself.png and b/test/image/baselines/scatter_fill_gradient_tonexty_toself.png differ
diff --git a/test/image/baselines/scatter_fill_no_opacity.png b/test/image/baselines/scatter_fill_no_opacity.png
index dbea1288c01..92dc2723076 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_pattern.png b/test/image/baselines/scatter_fill_pattern.png
index 0845c51ce60..ccae2be3562 100644
Binary files a/test/image/baselines/scatter_fill_pattern.png and b/test/image/baselines/scatter_fill_pattern.png differ
diff --git a/test/image/baselines/scatter_fill_self_next.png b/test/image/baselines/scatter_fill_self_next.png
index b102899ef89..a126f3721fa 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 5fd480183a2..3b71a66a797 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/scatter_marker_line_dash.png b/test/image/baselines/scatter_marker_line_dash.png
new file mode 100644
index 00000000000..fd3bce3fb41
Binary files /dev/null and b/test/image/baselines/scatter_marker_line_dash.png differ
diff --git a/test/image/baselines/scattercarpet-on-two-carpets.png b/test/image/baselines/scattercarpet-on-two-carpets.png
index c86c3857cb9..e263f7a6d11 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 696f36c25d0..a075ea638ff 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 db30a73c148..fa6112da20c 100644
Binary files a/test/image/baselines/scattercarpet.png and b/test/image/baselines/scattercarpet.png differ
diff --git a/test/image/baselines/shape_shift_horizontal.png b/test/image/baselines/shape_shift_horizontal.png
index 427911e789b..e045c21e989 100644
Binary files a/test/image/baselines/shape_shift_horizontal.png and b/test/image/baselines/shape_shift_horizontal.png differ
diff --git a/test/image/baselines/shape_shift_vertical.png b/test/image/baselines/shape_shift_vertical.png
index 9e5bc4162c9..9f88bf13fea 100644
Binary files a/test/image/baselines/shape_shift_vertical.png and b/test/image/baselines/shape_shift_vertical.png differ
diff --git a/test/image/baselines/shapes.png b/test/image/baselines/shapes.png
index 6596c28d7ba..c6581c92563 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 c40a1a893d8..ff5d1c9d111 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_clipping_double_digit_subplots.png b/test/image/baselines/shapes_clipping_double_digit_subplots.png
new file mode 100644
index 00000000000..7cc166d2981
Binary files /dev/null and b/test/image/baselines/shapes_clipping_double_digit_subplots.png differ
diff --git a/test/image/baselines/shapes_fixed_size.png b/test/image/baselines/shapes_fixed_size.png
index a7081408968..1e8e8131bbd 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_layer_below_traces.png b/test/image/baselines/shapes_layer_below_traces.png
index d6e05eb6f0f..6ae813539f9 100644
Binary files a/test/image/baselines/shapes_layer_below_traces.png and b/test/image/baselines/shapes_layer_below_traces.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 908f19e72e1..4aae8adc5b5 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 ce6c0aa5aa9..6e1be342dd7 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 cdea4428b2c..6a051010010 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 06e03a9c943..d568fe35aef 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 b6dc082f274..5f60c912a1c 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 871fdc78b00..beecc9de237 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 a0003eedec5..532490c22b2 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 6325afa746d..7a4f2477a12 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 66306605af4..62e655694bf 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 38a208f03f9..6415fd146a2 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 74e4c3693f9..2c25a882952 100644
Binary files a/test/image/baselines/sliders.png and b/test/image/baselines/sliders.png differ
diff --git a/test/image/baselines/smith_basic.png b/test/image/baselines/smith_basic.png
index c6c147affa0..30b28b99b03 100644
Binary files a/test/image/baselines/smith_basic.png and b/test/image/baselines/smith_basic.png differ
diff --git a/test/image/baselines/smith_blank.png b/test/image/baselines/smith_blank.png
index d1f0782e18f..82dcee2a6fb 100644
Binary files a/test/image/baselines/smith_blank.png and b/test/image/baselines/smith_blank.png differ
diff --git a/test/image/baselines/smith_fills.png b/test/image/baselines/smith_fills.png
index de41124d90b..37c781b62b3 100644
Binary files a/test/image/baselines/smith_fills.png and b/test/image/baselines/smith_fills.png differ
diff --git a/test/image/baselines/smith_gaps.png b/test/image/baselines/smith_gaps.png
index 25eaa1f3f80..5569dd3ce1d 100644
Binary files a/test/image/baselines/smith_gaps.png and b/test/image/baselines/smith_gaps.png differ
diff --git a/test/image/baselines/smith_modes.png b/test/image/baselines/smith_modes.png
index 386a6b6eef3..5c3c8543b12 100644
Binary files a/test/image/baselines/smith_modes.png and b/test/image/baselines/smith_modes.png differ
diff --git a/test/image/baselines/smith_subplots.png b/test/image/baselines/smith_subplots.png
index 4add0337fc3..048d0f6b06c 100644
Binary files a/test/image/baselines/smith_subplots.png and b/test/image/baselines/smith_subplots.png differ
diff --git a/test/image/baselines/smith_template.png b/test/image/baselines/smith_template.png
index fad15bfe01d..c78354235fa 100644
Binary files a/test/image/baselines/smith_template.png and b/test/image/baselines/smith_template.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 204d7dc6c88..f056df42bb1 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 a5d865cbb85..64cb6360c33 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 1150111efe4..58506263771 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 8540579a604..830bd0fd863 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 79e2d19dc35..d596d203ef8 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 8858dfca29f..c6f01108f3f 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 1fddf55c719..2596809d59e 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 d12325b9700..9f022f5212f 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 86d35f7e85c..1625f0e897a 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 b821e3de147..754cae3eac3 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 57dd1c585db..d19eb8f1ae5 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 4b660daf549..f45cda7aa60 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 90796d6149e..45066de6fb9 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 ceb6abcb9f2..7988f84e9b4 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 e6b108f4eba..e82fb0e8382 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 10a6c93d51b..549fc147f9b 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 9345bb47188..23d5d703129 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 daecbec646c..77c7b48acc6 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 348afb7f425..22524ac06ef 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 df7468c3877..c40495a487d 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 c5ec28de2a1..1c44a0458b1 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 24d3b8c69d4..560677d2662 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_groups.png b/test/image/baselines/stacked_area_groups.png
index 61913e5228d..eecc381fac0 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 133f8ccc29d..e6717bf1505 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 a00addf1a1f..4a613f0c18d 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 d45f4df8f3d..94c39154342 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 63c88adaf34..a6825a6136e 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 c5123e0f571..e0c49795276 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 c1fd45ed099..f6951f2455b 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 7b3deec96dd..7cde53a11a9 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 883e4e28557..a4420fbac2f 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/subtitle-font-styling.png b/test/image/baselines/subtitle-font-styling.png
index 780e187bd49..12aa1c913a8 100644
Binary files a/test/image/baselines/subtitle-font-styling.png and b/test/image/baselines/subtitle-font-styling.png differ
diff --git a/test/image/baselines/subtitle.png b/test/image/baselines/subtitle.png
index aee496a8fe0..d3dc77d41ff 100644
Binary files a/test/image/baselines/subtitle.png and b/test/image/baselines/subtitle.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 3d30fc20240..340322414d5 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 73182567b13..ab0564ae0ca 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 590edb08ba9..ad00e3bc457 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 edc0592b59a..b79b7b4780b 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 deb5c6e5ced..01e08b406cf 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 26d55ac5306..585dac5b521 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 034028f2e4c..4efddceee86 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 41f4450f159..0f87386e923 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 086331fe0cb..92f763674cf 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 2f09e9246aa..cf5010d997b 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_pattern.png b/test/image/baselines/sunburst_pattern.png
index 61aada3e563..7c22950e974 100644
Binary files a/test/image/baselines/sunburst_pattern.png and b/test/image/baselines/sunburst_pattern.png differ
diff --git a/test/image/baselines/sunburst_textfit.png b/test/image/baselines/sunburst_textfit.png
index 5bedbb0ae79..64191bbf6f9 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 0dc8e4db49c..6326f4f8035 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 4fcff6c7843..dd90439d382 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 94f914a5bf0..6a164fc8468 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 6d5f86ef984..8cd4408a36c 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 6cfc8dd3e45..361c7e3a84a 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 31b1fae2b34..259c86fd4bc 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 86f827310b1..d62348bee29 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 5959e91696a..973dba8886c 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 0a0be251b1d..37a4a5533a5 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 6f0726d5dd7..3d30ce4a020 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 c9736e7308d..fc53fb898f5 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 4e59debb5d7..2c4fd5ed6d2 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-title-place-subtitle.png b/test/image/baselines/ternary-mathjax-title-place-subtitle.png
index bc884352869..980a5beb679 100644
Binary files a/test/image/baselines/ternary-mathjax-title-place-subtitle.png and b/test/image/baselines/ternary-mathjax-title-place-subtitle.png differ
diff --git a/test/image/baselines/ternary-mathjax.png b/test/image/baselines/ternary-mathjax.png
index b416e5dd00a..0eb463e26eb 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 51e848c5f06..275f76c8973 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 b707851d3ea..e1996d2f1af 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 b7179a52b1e..0b09a83ebf6 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 b53c96f56d2..91c1a514410 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 aeed01798be..09dc0cbdc02 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 9525e2a967e..82b900644b8 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 ba1888f044f..355f976d517 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 1b9b9d030db..dcf3c4f2fcd 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 fe44679070c..6776c9754a8 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 9ec2fbd039f..1e23aed06c6 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 b4a9b1789d5..02888fb5499 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 f48c79c4f8f..d3da7648163 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 ab7ea50bb12..3c2845b9d04 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 2de01d13fae..14cb79a3486 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/text_on_shapes_basic.png b/test/image/baselines/text_on_shapes_basic.png
index ec1e63dd288..b5aa71b6a21 100644
Binary files a/test/image/baselines/text_on_shapes_basic.png and b/test/image/baselines/text_on_shapes_basic.png differ
diff --git a/test/image/baselines/text_on_shapes_position.png b/test/image/baselines/text_on_shapes_position.png
index d0e81973cfc..7eac353212b 100644
Binary files a/test/image/baselines/text_on_shapes_position.png and b/test/image/baselines/text_on_shapes_position.png differ
diff --git a/test/image/baselines/text_on_shapes_reversed_axes.png b/test/image/baselines/text_on_shapes_reversed_axes.png
index 19ce714ea8a..9892404058b 100644
Binary files a/test/image/baselines/text_on_shapes_reversed_axes.png and b/test/image/baselines/text_on_shapes_reversed_axes.png differ
diff --git a/test/image/baselines/text_on_shapes_texttemplate.png b/test/image/baselines/text_on_shapes_texttemplate.png
index d40dbd309c9..b6ef0e66cda 100644
Binary files a/test/image/baselines/text_on_shapes_texttemplate.png and b/test/image/baselines/text_on_shapes_texttemplate.png differ
diff --git a/test/image/baselines/texttemplate.png b/test/image/baselines/texttemplate.png
index 357435f8223..cab575d81e2 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 5c2a91a21d2..36fc034367f 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 fec7cccc92e..b61f61d108f 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 8778a6c50c5..5186ced0b88 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 8ce0fcfecc6..182c05cc0b4 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 004fc972100..24c04f9a595 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 365c07ce3ae..8864a6f5746 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 6be9c7d021c..b3a06ff2338 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 d9121df12c6..bc653531f94 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 b985ad47bc0..d6101e65e86 100644
Binary files a/test/image/baselines/tickformatstops.png and b/test/image/baselines/tickformatstops.png differ
diff --git a/test/image/baselines/ticklabelindex.png b/test/image/baselines/ticklabelindex.png
index 6ba30bf59e3..5cf10b8ec07 100644
Binary files a/test/image/baselines/ticklabelindex.png and b/test/image/baselines/ticklabelindex.png differ
diff --git a/test/image/baselines/ticklabeloverflow-0.png b/test/image/baselines/ticklabeloverflow-0.png
index acd1a138985..b4a742f1928 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 bfe41a5f047..c265ea32c29 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 bb4f871e587..559b34114c6 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 e791b9d82e6..8e8999d4994 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 8e72f19456c..11be956cb58 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 c067b34cc9b..f07369c3340 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 d1caded77d2..69352313b31 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 60747200880..ac6b98cc387 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 d8192ec8e82..5fa73393a04 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 55c240c0e63..a8ce7b90689 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 6cb66d89c9f..dfe76288010 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 07cea800fa6..6d01ad57a71 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 9d4d31e39c7..57c924e8406 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 f355e8a6e34..62dd444dade 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 24bbd590503..a268eceaa23 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 c0b1353f292..b4e45e58b31 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 5349e28e0d5..be742011ef7 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 cb9b3695201..f1c589dee04 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 f4eb1ca155c..e4657026c6e 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 94f5016ad7d..a96c0e27255 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/ticklabelshift_ticklabelstandoff.png b/test/image/baselines/ticklabelshift_ticklabelstandoff.png
index 67316c0fed7..3563ee748ad 100644
Binary files a/test/image/baselines/ticklabelshift_ticklabelstandoff.png and b/test/image/baselines/ticklabelshift_ticklabelstandoff.png differ
diff --git a/test/image/baselines/tickson_boundaries.png b/test/image/baselines/tickson_boundaries.png
index 4c96e37006f..2ffe1d52f65 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/tickson_boundaries_showgrid_categorical.png b/test/image/baselines/tickson_boundaries_showgrid_categorical.png
index 6f32be16bf8..f26cd6a35a5 100644
Binary files a/test/image/baselines/tickson_boundaries_showgrid_categorical.png and b/test/image/baselines/tickson_boundaries_showgrid_categorical.png differ
diff --git a/test/image/baselines/tickson_boundaries_ticklabelposition.png b/test/image/baselines/tickson_boundaries_ticklabelposition.png
new file mode 100644
index 00000000000..64f0c0d8e81
Binary files /dev/null and b/test/image/baselines/tickson_boundaries_ticklabelposition.png differ
diff --git a/test/image/baselines/titles-avoid-labels.png b/test/image/baselines/titles-avoid-labels.png
index 12f63059327..ca60b20ef58 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 43a81416e40..e79dd233825 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/treemap_coffee-maxdepth3.png b/test/image/baselines/treemap_coffee-maxdepth3.png
index 7c6fb5042ff..46e6f8c5823 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 06714fd3f3c..01f03a546fd 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 01297fd7530..0bac4fba501 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 781fbbf0e81..e08667ff295 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 4e2900efde0..409faf430d9 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 e16817fda93..f24af3c11cd 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 0467c0a0b32..c5e57a669d3 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_multi-line_headers.png b/test/image/baselines/treemap_multi-line_headers.png
index f870ab7f6b3..2b7355533bd 100644
Binary files a/test/image/baselines/treemap_multi-line_headers.png and b/test/image/baselines/treemap_multi-line_headers.png differ
diff --git a/test/image/baselines/treemap_packages_colorscale_allone.png b/test/image/baselines/treemap_packages_colorscale_allone.png
index 3921086370e..05739d7b7cc 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 0ec48aa585b..5b1049417f1 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 ca81803a102..c4e51d357ed 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 7b32a62f2f0..106dca95c74 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 4e02609dbfa..3c1d5670c40 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 9817255f846..b8156d922ba 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 69498f90eb1..0ba5c1f72fc 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 209427c1b2a..6a3823cf45d 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 c5822e62271..69db8266cf1 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 6959e66b90e..0f1378e9bc4 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 ac8d2d3a0ed..56eb8accff2 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 1846bc0ebc9..68e4b091814 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 c78efac1986..71486fde4a7 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 ad8a8f1e8d7..a8527c8b3bd 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 332c97f5b42..664e8bcac37 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 ccb5f5f9ec6..070db582dba 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 db110d4dada..f3b4a7dd796 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 29ec95c442a..c762c6ca00d 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 909c53e4eb8..39d7db04a1c 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 2204e04d55f..2bc7e3e2ec4 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 47761bd579f..e07fc43b066 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 654ccdb1669..6577481e4cb 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 896083320c1..a01deb8b490 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 4beaa6bba51..4331c50dba8 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 8afe05dd122..a03580c34b5 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 23ae910ff21..4e050a853d0 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 1a94488beef..af5a29eb643 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 3bda73e0eba..14723996481 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 0bb849fe51b..be95349fed1 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 8383371e2de..b2eb0cf5e29 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 ac95a299c45..291364e2318 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 b23d273fa87..9e6022bbd58 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 32ba1711c56..f35e9b3d698 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 2a944784dde..5cf4ee25abf 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 e6c07495989..88cb17eb6f2 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 dde0fb18964..bcc2572674c 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 9a3ceb12946..7461648070b 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 c6276184e8a..5fa7c93c7ba 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 ed0b3d5557d..615fdb9461e 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 ddf6ed68f84..62cc42a125b 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 eaf3fe8cd28..d351a94c488 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 6c73a981c2d..fda64cc1741 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 31adc8ab71e..b2ae4ba0366 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 8c03912aae8..8f04e35024c 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 ebbfb312b95..0969d9d4892 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 26297477298..f910781ed55 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 828f2e5cabf..11412b7efe3 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 5cf85886f5e..7124378e13e 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/various_geo_projections.png b/test/image/baselines/various_geo_projections.png
index eaee0a4c68b..4f2aa6e1ac4 100644
Binary files a/test/image/baselines/various_geo_projections.png and b/test/image/baselines/various_geo_projections.png differ
diff --git a/test/image/baselines/vertical-tickangles.png b/test/image/baselines/vertical-tickangles.png
index 87a4a97b253..69bf6b01bbc 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 5c36218b280..0595701ccf8 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 35a0ee8c2e8..0da9dae2ec3 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 f2fd9f6a165..1addd511152 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 d03af33ebb6..859e69cd2e5 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 53a0c04842b..b180dcef26c 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 b6cdb5ea622..9ae4f2a5ed1 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 6f0d682c859..df806384a72 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 23c71791171..9df8ac83688 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 79d0eb4c103..9ede578171e 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 f1e091bf58c..281e629a9ac 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 a9a26d6a6f4..3a733fdbcb2 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 4e51d7147f7..ee8400e0656 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 2c5cc6bd469..d93ca709308 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 8c18aef019f..768167925c8 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 cb1de0b284c..f9c9a7121ae 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 972a767978f..f2b449b1f81 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 b88c7a50e9e..fa0a48b462c 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 e10eaec4a98..439da7ce806 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 cf943012692..2af26f052e5 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/virtual-webgl___gl2d-case-insenstive-colors.png b/test/image/baselines/virtual-webgl___gl2d-case-insenstive-colors.png
new file mode 100644
index 00000000000..5a8a87abb4f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d-case-insenstive-colors.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_10.png b/test/image/baselines/virtual-webgl___gl2d_10.png
new file mode 100644
index 00000000000..9efc6a0ee1e
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_10.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_12.png b/test/image/baselines/virtual-webgl___gl2d_12.png
new file mode 100644
index 00000000000..594d49527e0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_12.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_14.png b/test/image/baselines/virtual-webgl___gl2d_14.png
new file mode 100644
index 00000000000..d983d1b8dc0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_14.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_17.png b/test/image/baselines/virtual-webgl___gl2d_17.png
new file mode 100644
index 00000000000..c30e57dbde1
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_17.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_annotations.png b/test/image/baselines/virtual-webgl___gl2d_annotations.png
new file mode 100644
index 00000000000..e5278bfe8a9
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_annotations.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_axes_booleans.png b/test/image/baselines/virtual-webgl___gl2d_axes_booleans.png
new file mode 100644
index 00000000000..aa66d192c79
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_axes_booleans.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_axes_labels.png b/test/image/baselines/virtual-webgl___gl2d_axes_labels.png
new file mode 100644
index 00000000000..a9671515f3c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_axes_labels.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_axes_labels2.png b/test/image/baselines/virtual-webgl___gl2d_axes_labels2.png
new file mode 100644
index 00000000000..a8e67d67e97
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_axes_labels2.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_axes_lines.png b/test/image/baselines/virtual-webgl___gl2d_axes_lines.png
new file mode 100644
index 00000000000..d3ad42e25d8
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_axes_lines.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_axes_range_manual.png b/test/image/baselines/virtual-webgl___gl2d_axes_range_manual.png
new file mode 100644
index 00000000000..48014b3cc73
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_axes_range_manual.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_axes_range_mode.png b/test/image/baselines/virtual-webgl___gl2d_axes_range_mode.png
new file mode 100644
index 00000000000..aeef25df15f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_axes_range_mode.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_axes_range_type.png b/test/image/baselines/virtual-webgl___gl2d_axes_range_type.png
new file mode 100644
index 00000000000..b9c10c1f55e
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_axes_range_type.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_clean-number.png b/test/image/baselines/virtual-webgl___gl2d_clean-number.png
new file mode 100644
index 00000000000..5a0dfd8b239
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_clean-number.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_clustering.png b/test/image/baselines/virtual-webgl___gl2d_clustering.png
new file mode 100644
index 00000000000..bc1413a95ac
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_clustering.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_connect_gaps.png b/test/image/baselines/virtual-webgl___gl2d_connect_gaps.png
new file mode 100644
index 00000000000..49a59df5088
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_connect_gaps.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_date_axes.png b/test/image/baselines/virtual-webgl___gl2d_date_axes.png
new file mode 100644
index 00000000000..ce32703d778
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_date_axes.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_error_bars.png b/test/image/baselines/virtual-webgl___gl2d_error_bars.png
new file mode 100644
index 00000000000..ed5f7e06bf9
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_error_bars.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_error_bars_log.png b/test/image/baselines/virtual-webgl___gl2d_error_bars_log.png
new file mode 100644
index 00000000000..ed2bdde2a01
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_error_bars_log.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_fill-ordering.png b/test/image/baselines/virtual-webgl___gl2d_fill-ordering.png
new file mode 100644
index 00000000000..87830978759
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_fill-ordering.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_fill_trace_tozero_order.png b/test/image/baselines/virtual-webgl___gl2d_fill_trace_tozero_order.png
new file mode 100644
index 00000000000..dca05f0d448
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_fill_trace_tozero_order.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_font-variant-scatter.png b/test/image/baselines/virtual-webgl___gl2d_font-variant-scatter.png
new file mode 100644
index 00000000000..0aa6e097f68
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_font-variant-scatter.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_font-weight-scatter.png b/test/image/baselines/virtual-webgl___gl2d_font-weight-scatter.png
new file mode 100644
index 00000000000..083027bf0b6
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_font-weight-scatter.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_fonts.png b/test/image/baselines/virtual-webgl___gl2d_fonts.png
new file mode 100644
index 00000000000..bd380e42f4e
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_fonts.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_horiz-lines.png b/test/image/baselines/virtual-webgl___gl2d_horiz-lines.png
new file mode 100644
index 00000000000..92716a60599
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_horiz-lines.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_layout_image.png b/test/image/baselines/virtual-webgl___gl2d_layout_image.png
new file mode 100644
index 00000000000..91929369468
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_layout_image.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_line_aligned.png b/test/image/baselines/virtual-webgl___gl2d_line_aligned.png
new file mode 100644
index 00000000000..8e0e14383e6
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_line_aligned.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_line_dash.png b/test/image/baselines/virtual-webgl___gl2d_line_dash.png
new file mode 100644
index 00000000000..381b877cf07
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_line_dash.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_line_limit.png b/test/image/baselines/virtual-webgl___gl2d_line_limit.png
new file mode 100644
index 00000000000..b07da360f0c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_line_limit.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_line_select.png b/test/image/baselines/virtual-webgl___gl2d_line_select.png
new file mode 100644
index 00000000000..75cf12615be
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_line_select.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_lines_almost_horizontal_vertical.png b/test/image/baselines/virtual-webgl___gl2d_lines_almost_horizontal_vertical.png
new file mode 100644
index 00000000000..256b2b36f44
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_lines_almost_horizontal_vertical.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_marker_coloraxis.png b/test/image/baselines/virtual-webgl___gl2d_marker_coloraxis.png
new file mode 100644
index 00000000000..bf57077e646
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_marker_coloraxis.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_marker_line_width.png b/test/image/baselines/virtual-webgl___gl2d_marker_line_width.png
new file mode 100644
index 00000000000..5a9cf980de4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_marker_line_width.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_marker_size.png b/test/image/baselines/virtual-webgl___gl2d_marker_size.png
new file mode 100644
index 00000000000..300429f0784
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_marker_size.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_marker_symbols-angle.png b/test/image/baselines/virtual-webgl___gl2d_marker_symbols-angle.png
new file mode 100644
index 00000000000..9faaee329de
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_marker_symbols-angle.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_marker_symbols.png b/test/image/baselines/virtual-webgl___gl2d_marker_symbols.png
new file mode 100644
index 00000000000..f19a47eedb4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_marker_symbols.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_multiple-traces-axes-labels.png b/test/image/baselines/virtual-webgl___gl2d_multiple-traces-axes-labels.png
new file mode 100644
index 00000000000..a60aafff62b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_multiple-traces-axes-labels.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_multiple-traces-axes.png b/test/image/baselines/virtual-webgl___gl2d_multiple-traces-axes.png
new file mode 100644
index 00000000000..a6e9a7f86f4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_multiple-traces-axes.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_multiple_subplots.png b/test/image/baselines/virtual-webgl___gl2d_multiple_subplots.png
new file mode 100644
index 00000000000..7a35f61f069
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_multiple_subplots.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_no-clustering.png b/test/image/baselines/virtual-webgl___gl2d_no-clustering.png
new file mode 100644
index 00000000000..b27499d991b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_no-clustering.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_no-clustering2.png b/test/image/baselines/virtual-webgl___gl2d_no-clustering2.png
new file mode 100644
index 00000000000..f521677e233
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_no-clustering2.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_open_marker_line_width.png b/test/image/baselines/virtual-webgl___gl2d_open_marker_line_width.png
new file mode 100644
index 00000000000..8f45ab48b6b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_open_marker_line_width.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_order_error.png b/test/image/baselines/virtual-webgl___gl2d_order_error.png
new file mode 100644
index 00000000000..86909bd3fb0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_order_error.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords.png b/test/image/baselines/virtual-webgl___gl2d_parcoords.png
new file mode 100644
index 00000000000..67ff6bf7947
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_1.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_1.png
new file mode 100644
index 00000000000..ed5890fa45c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_1.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_2.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_2.png
new file mode 100644
index 00000000000..31e26331810
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_2.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_256_colors.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_256_colors.png
new file mode 100644
index 00000000000..07ba03ad0b2
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_256_colors.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_60_dims.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_60_dims.png
new file mode 100644
index 00000000000..bbebf4eb727
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_60_dims.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_blocks.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_blocks.png
new file mode 100644
index 00000000000..c827a30a565
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_blocks.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_coloraxis.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_coloraxis.png
new file mode 100644
index 00000000000..2685ffd088c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_coloraxis.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_constraints.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_constraints.png
new file mode 100644
index 00000000000..dc628374151
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_constraints.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_dark_background.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_dark_background.png
new file mode 100644
index 00000000000..a337857991e
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_dark_background.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_large.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_large.png
new file mode 100644
index 00000000000..7335aeab70f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_large.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-above-below.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-above-below.png
new file mode 100644
index 00000000000..2b281b69887
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-above-below.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-all.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-all.png
new file mode 100644
index 00000000000..356c6115cd2
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-all.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-below.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-below.png
new file mode 100644
index 00000000000..fed43303fb4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-below.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-none.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-none.png
new file mode 100644
index 00000000000..42c6846447f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_out-of-range_selected-none.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_rgba_colorscale.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_rgba_colorscale.png
new file mode 100644
index 00000000000..caf674e43bd
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_rgba_colorscale.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_select_first_last_enum.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_select_first_last_enum.png
new file mode 100644
index 00000000000..3bd404d184d
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_select_first_last_enum.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_style_labels.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_style_labels.png
new file mode 100644
index 00000000000..ff72ce5b62f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_style_labels.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_parcoords_tick_format.png b/test/image/baselines/virtual-webgl___gl2d_parcoords_tick_format.png
new file mode 100644
index 00000000000..466a7634752
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_parcoords_tick_format.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_period_positioning.png b/test/image/baselines/virtual-webgl___gl2d_period_positioning.png
new file mode 100644
index 00000000000..59d62ca52e5
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_period_positioning.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_point-selection.png b/test/image/baselines/virtual-webgl___gl2d_point-selection.png
new file mode 100644
index 00000000000..e591c33ddd4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_point-selection.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_rgb_dont_accept_alpha_scattergl.png b/test/image/baselines/virtual-webgl___gl2d_rgb_dont_accept_alpha_scattergl.png
new file mode 100644
index 00000000000..04d9f9317ab
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_rgb_dont_accept_alpha_scattergl.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scatter-color-clustering.png b/test/image/baselines/virtual-webgl___gl2d_scatter-color-clustering.png
new file mode 100644
index 00000000000..4c1c15988e1
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scatter-color-clustering.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scatter-colorscale-colorbar.png b/test/image/baselines/virtual-webgl___gl2d_scatter-colorscale-colorbar.png
new file mode 100644
index 00000000000..e676dd45e0e
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scatter-colorscale-colorbar.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scatter-colorscale-points.png b/test/image/baselines/virtual-webgl___gl2d_scatter-colorscale-points.png
new file mode 100644
index 00000000000..c2e124ad56b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scatter-colorscale-points.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scatter-continuous-clustering.png b/test/image/baselines/virtual-webgl___gl2d_scatter-continuous-clustering.png
new file mode 100644
index 00000000000..c244df6cd34
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scatter-continuous-clustering.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scatter-marker-line-colorscales.png b/test/image/baselines/virtual-webgl___gl2d_scatter-marker-line-colorscales.png
new file mode 100644
index 00000000000..d665a4ea015
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scatter-marker-line-colorscales.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scatter-subplot-panel.png b/test/image/baselines/virtual-webgl___gl2d_scatter-subplot-panel.png
new file mode 100644
index 00000000000..388c093e660
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scatter-subplot-panel.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scatter2d-multiple-colors.png b/test/image/baselines/virtual-webgl___gl2d_scatter2d-multiple-colors.png
new file mode 100644
index 00000000000..fdff22481fc
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scatter2d-multiple-colors.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scatter_fill_self_next.png b/test/image/baselines/virtual-webgl___gl2d_scatter_fill_self_next.png
new file mode 100644
index 00000000000..8c8b46b67b5
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scatter_fill_self_next.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scatter_fill_self_next_vs_nogl.png b/test/image/baselines/virtual-webgl___gl2d_scatter_fill_self_next_vs_nogl.png
new file mode 100644
index 00000000000..076e81069b8
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scatter_fill_self_next_vs_nogl.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scattergl_errorbars_inherit_color.png b/test/image/baselines/virtual-webgl___gl2d_scattergl_errorbars_inherit_color.png
new file mode 100644
index 00000000000..df75dd01d97
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scattergl_errorbars_inherit_color.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scattergl_gaps.png b/test/image/baselines/virtual-webgl___gl2d_scattergl_gaps.png
new file mode 100644
index 00000000000..f4b24aa2f0d
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scattergl_gaps.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_scattergl_simple_line_reversed_ranges.png b/test/image/baselines/virtual-webgl___gl2d_scattergl_simple_line_reversed_ranges.png
new file mode 100644
index 00000000000..dccf730089a
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_scattergl_simple_line_reversed_ranges.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_selectedpoints.png b/test/image/baselines/virtual-webgl___gl2d_selectedpoints.png
new file mode 100644
index 00000000000..f449bf006b3
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_selectedpoints.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_shape_line.png b/test/image/baselines/virtual-webgl___gl2d_shape_line.png
new file mode 100644
index 00000000000..a238a605390
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_shape_line.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_shapes_below_traces.png b/test/image/baselines/virtual-webgl___gl2d_shapes_below_traces.png
new file mode 100644
index 00000000000..54e7c9c44c0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_shapes_below_traces.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_simple_inset.png b/test/image/baselines/virtual-webgl___gl2d_simple_inset.png
new file mode 100644
index 00000000000..fe47e16bb80
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_simple_inset.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_size_margins.png b/test/image/baselines/virtual-webgl___gl2d_size_margins.png
new file mode 100644
index 00000000000..b22314a08b1
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_size_margins.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_stacked_coupled_subplots.png b/test/image/baselines/virtual-webgl___gl2d_stacked_coupled_subplots.png
new file mode 100644
index 00000000000..414ea68214f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_stacked_coupled_subplots.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_stacked_subplots.png b/test/image/baselines/virtual-webgl___gl2d_stacked_subplots.png
new file mode 100644
index 00000000000..592fc1e9f7c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_stacked_subplots.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_subplots_anchor.png b/test/image/baselines/virtual-webgl___gl2d_subplots_anchor.png
new file mode 100644
index 00000000000..6747dbf65ab
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_subplots_anchor.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_symbol_numbers.png b/test/image/baselines/virtual-webgl___gl2d_symbol_numbers.png
new file mode 100644
index 00000000000..bd2cbad04ac
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_symbol_numbers.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_text_chart_arrays.png b/test/image/baselines/virtual-webgl___gl2d_text_chart_arrays.png
new file mode 100644
index 00000000000..66598aba146
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_text_chart_arrays.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_text_chart_basic.png b/test/image/baselines/virtual-webgl___gl2d_text_chart_basic.png
new file mode 100644
index 00000000000..be9c76d9329
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_text_chart_basic.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_text_chart_invalid-arrays.png b/test/image/baselines/virtual-webgl___gl2d_text_chart_invalid-arrays.png
new file mode 100644
index 00000000000..57fe40aa628
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_text_chart_invalid-arrays.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_text_chart_single-string.png b/test/image/baselines/virtual-webgl___gl2d_text_chart_single-string.png
new file mode 100644
index 00000000000..fada34793df
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_text_chart_single-string.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_text_chart_styling.png b/test/image/baselines/virtual-webgl___gl2d_text_chart_styling.png
new file mode 100644
index 00000000000..b3af97d8479
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_text_chart_styling.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_texttemplate.png b/test/image/baselines/virtual-webgl___gl2d_texttemplate.png
new file mode 100644
index 00000000000..075817c7306
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_texttemplate.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_tick-labels.png b/test/image/baselines/virtual-webgl___gl2d_tick-labels.png
new file mode 100644
index 00000000000..3746fb3060b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_tick-labels.png differ
diff --git a/test/image/baselines/virtual-webgl___gl2d_ultra_zoom.png b/test/image/baselines/virtual-webgl___gl2d_ultra_zoom.png
new file mode 100644
index 00000000000..d1fefc0ea1f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl2d_ultra_zoom.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_alphahull5.png b/test/image/baselines/virtual-webgl___gl3d_alphahull5.png
new file mode 100644
index 00000000000..ddc3c7321e0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_alphahull5.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_annotations.png b/test/image/baselines/virtual-webgl___gl3d_annotations.png
new file mode 100644
index 00000000000..d21eb1ff54b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_annotations.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_annotations_orthographic.png b/test/image/baselines/virtual-webgl___gl3d_annotations_orthographic.png
new file mode 100644
index 00000000000..39c716af2a7
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_annotations_orthographic.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_autocolorscale.png b/test/image/baselines/virtual-webgl___gl3d_autocolorscale.png
new file mode 100644
index 00000000000..abe99210ba7
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_autocolorscale.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_autorange-zero.png b/test/image/baselines/virtual-webgl___gl3d_autorange-zero.png
new file mode 100644
index 00000000000..239f5e7eff0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_autorange-zero.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_axes-visible-false.png b/test/image/baselines/virtual-webgl___gl3d_axes-visible-false.png
new file mode 100644
index 00000000000..ec2bacb44c5
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_axes-visible-false.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_bunny-hull.png b/test/image/baselines/virtual-webgl___gl3d_bunny-hull.png
new file mode 100644
index 00000000000..ac80c4d304a
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_bunny-hull.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_bunny.png b/test/image/baselines/virtual-webgl___gl3d_bunny.png
new file mode 100644
index 00000000000..60ae2c1deca
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_bunny.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_bunny_cell-area.png b/test/image/baselines/virtual-webgl___gl3d_bunny_cell-area.png
new file mode 100644
index 00000000000..98d20b7ad79
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_bunny_cell-area.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_chrisp-nan-1.png b/test/image/baselines/virtual-webgl___gl3d_chrisp-nan-1.png
new file mode 100644
index 00000000000..ab4b951193e
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_chrisp-nan-1.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_coloraxes.png b/test/image/baselines/virtual-webgl___gl3d_coloraxes.png
new file mode 100644
index 00000000000..67d5864fa91
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_coloraxes.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_colormap256.png b/test/image/baselines/virtual-webgl___gl3d_colormap256.png
new file mode 100644
index 00000000000..bc2556af0d0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_colormap256.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-absolute.png b/test/image/baselines/virtual-webgl___gl3d_cone-absolute.png
new file mode 100644
index 00000000000..d00fcc09f7c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-absolute.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-autorange.png b/test/image/baselines/virtual-webgl___gl3d_cone-autorange.png
new file mode 100644
index 00000000000..6a1aa447ea4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-autorange.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-lighting.png b/test/image/baselines/virtual-webgl___gl3d_cone-lighting.png
new file mode 100644
index 00000000000..d4acf70dbf3
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-lighting.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-newplot_reversed_ranges.png b/test/image/baselines/virtual-webgl___gl3d_cone-newplot_reversed_ranges.png
new file mode 100644
index 00000000000..d61bd6b38d2
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-newplot_reversed_ranges.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-rossler.png b/test/image/baselines/virtual-webgl___gl3d_cone-rossler.png
new file mode 100644
index 00000000000..c4af9390557
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-rossler.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-simple.png b/test/image/baselines/virtual-webgl___gl3d_cone-simple.png
new file mode 100644
index 00000000000..e6094512d29
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-simple.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-single.png b/test/image/baselines/virtual-webgl___gl3d_cone-single.png
new file mode 100644
index 00000000000..5ef8e8d4e9d
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-single.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-sizemode.png b/test/image/baselines/virtual-webgl___gl3d_cone-sizemode.png
new file mode 100644
index 00000000000..9a9df26cecd
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-sizemode.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-sizemode_vector.png b/test/image/baselines/virtual-webgl___gl3d_cone-sizemode_vector.png
new file mode 100644
index 00000000000..09b9227ec35
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-sizemode_vector.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-sizemode_vector2.png b/test/image/baselines/virtual-webgl___gl3d_cone-sizemode_vector2.png
new file mode 100644
index 00000000000..e662d31e414
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-sizemode_vector2.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-sizemode_vector3.png b/test/image/baselines/virtual-webgl___gl3d_cone-sizemode_vector3.png
new file mode 100644
index 00000000000..b3c98888b87
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-sizemode_vector3.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-wind.png b/test/image/baselines/virtual-webgl___gl3d_cone-wind.png
new file mode 100644
index 00000000000..1556d960cff
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-wind.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cone-with-streamtube.png b/test/image/baselines/virtual-webgl___gl3d_cone-with-streamtube.png
new file mode 100644
index 00000000000..9f98bc40c8e
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cone-with-streamtube.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_contour-lines.png b/test/image/baselines/virtual-webgl___gl3d_contour-lines.png
new file mode 100644
index 00000000000..0fcc1ebdab3
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_contour-lines.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_contour-lines2.png b/test/image/baselines/virtual-webgl___gl3d_contour-lines2.png
new file mode 100644
index 00000000000..d4557d8e0ee
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_contour-lines2.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_convex-hull.png b/test/image/baselines/virtual-webgl___gl3d_convex-hull.png
new file mode 100644
index 00000000000..60ae2c1deca
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_convex-hull.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cube.png b/test/image/baselines/virtual-webgl___gl3d_cube.png
new file mode 100644
index 00000000000..2133c74d676
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cube.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_cufflinks.png b/test/image/baselines/virtual-webgl___gl3d_cufflinks.png
new file mode 100644
index 00000000000..302818b809e
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_cufflinks.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_delaunay.png b/test/image/baselines/virtual-webgl___gl3d_delaunay.png
new file mode 100644
index 00000000000..7198c94128c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_delaunay.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_directions-isosurface1.png b/test/image/baselines/virtual-webgl___gl3d_directions-isosurface1.png
new file mode 100644
index 00000000000..c7ff073ecac
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_directions-isosurface1.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_directions-isosurface2.png b/test/image/baselines/virtual-webgl___gl3d_directions-isosurface2.png
new file mode 100644
index 00000000000..f5417c515bc
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_directions-isosurface2.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_directions-streamtube1.png b/test/image/baselines/virtual-webgl___gl3d_directions-streamtube1.png
new file mode 100644
index 00000000000..fb0f898d97f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_directions-streamtube1.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_directions-streamtube2.png b/test/image/baselines/virtual-webgl___gl3d_directions-streamtube2.png
new file mode 100644
index 00000000000..869c7fbe99d
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_directions-streamtube2.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_directions-volume1.png b/test/image/baselines/virtual-webgl___gl3d_directions-volume1.png
new file mode 100644
index 00000000000..831da30e08b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_directions-volume1.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_error_bars_log.png b/test/image/baselines/virtual-webgl___gl3d_error_bars_log.png
new file mode 100644
index 00000000000..57c952a88cc
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_error_bars_log.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_error_bars_log_2.png b/test/image/baselines/virtual-webgl___gl3d_error_bars_log_2.png
new file mode 100644
index 00000000000..c81d9ecbf50
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_error_bars_log_2.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_errorbars_sqrt.png b/test/image/baselines/virtual-webgl___gl3d_errorbars_sqrt.png
new file mode 100644
index 00000000000..74d8cf282dd
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_errorbars_sqrt.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_errorbars_xy.png b/test/image/baselines/virtual-webgl___gl3d_errorbars_xy.png
new file mode 100644
index 00000000000..56f16dee724
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_errorbars_xy.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_errorbars_zx.png b/test/image/baselines/virtual-webgl___gl3d_errorbars_zx.png
new file mode 100644
index 00000000000..91709a3538c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_errorbars_zx.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_errorbars_zy.png b/test/image/baselines/virtual-webgl___gl3d_errorbars_zy.png
new file mode 100644
index 00000000000..5654eed8ae5
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_errorbars_zy.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_font-variant-scatter.png b/test/image/baselines/virtual-webgl___gl3d_font-variant-scatter.png
new file mode 100644
index 00000000000..256525c1b39
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_font-variant-scatter.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_font-weight-scatter.png b/test/image/baselines/virtual-webgl___gl3d_font-weight-scatter.png
new file mode 100644
index 00000000000..7d891fa7bb2
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_font-weight-scatter.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_formatted-text-on-multiple-lines.png b/test/image/baselines/virtual-webgl___gl3d_formatted-text-on-multiple-lines.png
new file mode 100644
index 00000000000..e21870bd5ec
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_formatted-text-on-multiple-lines.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_ibm-plot.png b/test/image/baselines/virtual-webgl___gl3d_ibm-plot.png
new file mode 100644
index 00000000000..9e99920d3e9
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_ibm-plot.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_indicator_scatter3d.png b/test/image/baselines/virtual-webgl___gl3d_indicator_scatter3d.png
new file mode 100644
index 00000000000..64ec77d85b9
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_indicator_scatter3d.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_1single-surface_middle-range.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_1single-surface_middle-range.png
new file mode 100644
index 00000000000..c94d27d8f3d
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_1single-surface_middle-range.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_2surfaces-checker_spaceframe.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_2surfaces-checker_spaceframe.png
new file mode 100644
index 00000000000..fc4a37989f2
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_2surfaces-checker_spaceframe.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_5more-surfaces_between-ranges.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_5more-surfaces_between-ranges.png
new file mode 100644
index 00000000000..a5ddaac31fc
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_5more-surfaces_between-ranges.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_9more-surfaces_between-ranges_orthographic.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_9more-surfaces_between-ranges_orthographic.png
new file mode 100644
index 00000000000..217c568df06
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_9more-surfaces_between-ranges_orthographic.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_log-axis_slices_surface-fill.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_log-axis_slices_surface-fill.png
new file mode 100644
index 00000000000..317498db487
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_log-axis_slices_surface-fill.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_math.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_math.png
new file mode 100644
index 00000000000..83af7ead727
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_math.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_multiple-traces.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_multiple-traces.png
new file mode 100644
index 00000000000..44837d6d464
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_multiple-traces.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_out_of_iso_range_case.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_out_of_iso_range_case.png
new file mode 100644
index 00000000000..1872d6a40fc
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_out_of_iso_range_case.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_thin_caps_different_dims.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_thin_caps_different_dims.png
new file mode 100644
index 00000000000..9a2090a233a
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_thin_caps_different_dims.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_thin_slices_transparent.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_thin_slices_transparent.png
new file mode 100644
index 00000000000..734d21ce673
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_thin_slices_transparent.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_transparent.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_transparent.png
new file mode 100644
index 00000000000..b4275c77fd1
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_transparent.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_uneven-scales_ranges_iso-null.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_uneven-scales_ranges_iso-null.png
new file mode 100644
index 00000000000..f8f05601a44
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_uneven-scales_ranges_iso-null.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_with_surface-pattern.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_with_surface-pattern.png
new file mode 100644
index 00000000000..a9d8ec09007
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_with_surface-pattern.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_isosurface_xycaps_volume_slices.png b/test/image/baselines/virtual-webgl___gl3d_isosurface_xycaps_volume_slices.png
new file mode 100644
index 00000000000..b3da5fd4fc6
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_isosurface_xycaps_volume_slices.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_line-colorscale-with-markers.png b/test/image/baselines/virtual-webgl___gl3d_line-colorscale-with-markers.png
new file mode 100644
index 00000000000..4371e13d964
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_line-colorscale-with-markers.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_line_rectangle_render.png b/test/image/baselines/virtual-webgl___gl3d_line_rectangle_render.png
new file mode 100644
index 00000000000..4cddeb82a50
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_line_rectangle_render.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_log-axis-big.png b/test/image/baselines/virtual-webgl___gl3d_log-axis-big.png
new file mode 100644
index 00000000000..5eb8499cad1
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_log-axis-big.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_log-axis.png b/test/image/baselines/virtual-webgl___gl3d_log-axis.png
new file mode 100644
index 00000000000..b463229e98e
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_log-axis.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_marker-arrays.png b/test/image/baselines/virtual-webgl___gl3d_marker-arrays.png
new file mode 100644
index 00000000000..f2c980c7805
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_marker-arrays.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_marker-color.png b/test/image/baselines/virtual-webgl___gl3d_marker-color.png
new file mode 100644
index 00000000000..f200dfade3b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_marker-color.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_marker_symbols.png b/test/image/baselines/virtual-webgl___gl3d_marker_symbols.png
new file mode 100644
index 00000000000..559b09adff6
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_marker_symbols.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_mesh3d-missing-colors.png b/test/image/baselines/virtual-webgl___gl3d_mesh3d-missing-colors.png
new file mode 100644
index 00000000000..5f5dafbe908
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_mesh3d-missing-colors.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_mesh3d_cell-intensity.png b/test/image/baselines/virtual-webgl___gl3d_mesh3d_cell-intensity.png
new file mode 100644
index 00000000000..81df589e32b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_mesh3d_cell-intensity.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_mesh3d_coloring.png b/test/image/baselines/virtual-webgl___gl3d_mesh3d_coloring.png
new file mode 100644
index 00000000000..3211ab44f15
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_mesh3d_coloring.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_mesh3d_enable-alpha-with-rgba-color.png b/test/image/baselines/virtual-webgl___gl3d_mesh3d_enable-alpha-with-rgba-color.png
new file mode 100644
index 00000000000..2d46ddd2dca
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_mesh3d_enable-alpha-with-rgba-color.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_mesh3d_surface3d_scatter3d_line3d_error3d_log_reversed_ranges.png b/test/image/baselines/virtual-webgl___gl3d_mesh3d_surface3d_scatter3d_line3d_error3d_log_reversed_ranges.png
new file mode 100644
index 00000000000..e9babf65536
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_mesh3d_surface3d_scatter3d_line3d_error3d_log_reversed_ranges.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_mesh3d_surface3d_scatter3d_orthographic.png b/test/image/baselines/virtual-webgl___gl3d_mesh3d_surface3d_scatter3d_orthographic.png
new file mode 100644
index 00000000000..80b79ec9e8b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_mesh3d_surface3d_scatter3d_orthographic.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_mesh3d_surface_lighting.png b/test/image/baselines/virtual-webgl___gl3d_mesh3d_surface_lighting.png
new file mode 100644
index 00000000000..9de0fc9e0df
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_mesh3d_surface_lighting.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_mirror-ticks.png b/test/image/baselines/virtual-webgl___gl3d_mirror-ticks.png
new file mode 100644
index 00000000000..b0f2cc4250f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_mirror-ticks.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_multi-scene.png b/test/image/baselines/virtual-webgl___gl3d_multi-scene.png
new file mode 100644
index 00000000000..f68300d47b0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_multi-scene.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_multiple-scatter3d-traces.png b/test/image/baselines/virtual-webgl___gl3d_multiple-scatter3d-traces.png
new file mode 100644
index 00000000000..d1ba2cab4d2
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_multiple-scatter3d-traces.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_nan-holes.png b/test/image/baselines/virtual-webgl___gl3d_nan-holes.png
new file mode 100644
index 00000000000..46b0d88ffb3
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_nan-holes.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_opacity-scaling-spikes.png b/test/image/baselines/virtual-webgl___gl3d_opacity-scaling-spikes.png
new file mode 100644
index 00000000000..4ea3cdc8198
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_opacity-scaling-spikes.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_opacity-surface.png b/test/image/baselines/virtual-webgl___gl3d_opacity-surface.png
new file mode 100644
index 00000000000..8901922eaa7
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_opacity-surface.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_parametric_surface_data_precision.png b/test/image/baselines/virtual-webgl___gl3d_parametric_surface_data_precision.png
new file mode 100644
index 00000000000..74172a1d2d3
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_parametric_surface_data_precision.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_perspective_tick_distances.png b/test/image/baselines/virtual-webgl___gl3d_perspective_tick_distances.png
new file mode 100644
index 00000000000..1a7f16844df
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_perspective_tick_distances.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_projection-traces.png b/test/image/baselines/virtual-webgl___gl3d_projection-traces.png
new file mode 100644
index 00000000000..787be0658fb
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_projection-traces.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_reversescale.png b/test/image/baselines/virtual-webgl___gl3d_reversescale.png
new file mode 100644
index 00000000000..4eada2ed5a6
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_reversescale.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_rgb_dont_accept_alpha_scatter3d.png b/test/image/baselines/virtual-webgl___gl3d_rgb_dont_accept_alpha_scatter3d.png
new file mode 100644
index 00000000000..e26334f2098
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_rgb_dont_accept_alpha_scatter3d.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_ribbons.png b/test/image/baselines/virtual-webgl___gl3d_ribbons.png
new file mode 100644
index 00000000000..892e1dacd13
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_ribbons.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter-color-array.png b/test/image/baselines/virtual-webgl___gl3d_scatter-color-array.png
new file mode 100644
index 00000000000..c1bebe7f0bc
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter-color-array.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter-color-line-gradient.png b/test/image/baselines/virtual-webgl___gl3d_scatter-color-line-gradient.png
new file mode 100644
index 00000000000..f72ef350065
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter-color-line-gradient.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter-color-mono-and-palette.png b/test/image/baselines/virtual-webgl___gl3d_scatter-color-mono-and-palette.png
new file mode 100644
index 00000000000..a9b3720843f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter-color-mono-and-palette.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter-colorscale-marker.png b/test/image/baselines/virtual-webgl___gl3d_scatter-colorscale-marker.png
new file mode 100644
index 00000000000..7b57cd8ee01
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter-colorscale-marker.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d-align-texts.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d-align-texts.png
new file mode 100644
index 00000000000..27811b33b67
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d-align-texts.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d-blank-text.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d-blank-text.png
new file mode 100644
index 00000000000..1f51c0d12fa
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d-blank-text.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d-colorscale-marker-and-line.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d-colorscale-marker-and-line.png
new file mode 100644
index 00000000000..db6fb55785c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d-colorscale-marker-and-line.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d-colorscale-with-line.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d-colorscale-with-line.png
new file mode 100644
index 00000000000..d7bd9b1a609
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d-colorscale-with-line.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d-colorscale.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d-colorscale.png
new file mode 100644
index 00000000000..fcb6df76f2a
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d-colorscale.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d-connectgaps.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d-connectgaps.png
new file mode 100644
index 00000000000..f182737c5f7
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d-connectgaps.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d-different-align-texts.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d-different-align-texts.png
new file mode 100644
index 00000000000..cc3d1099aa2
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d-different-align-texts.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d-texttemplate.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d-texttemplate.png
new file mode 100644
index 00000000000..f61ebb00757
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d-texttemplate.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d_errorbars_inherit_color.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d_errorbars_inherit_color.png
new file mode 100644
index 00000000000..b8cac3a052f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d_errorbars_inherit_color.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d_line3d_error3d_enable-alpha-with-rgba-color.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d_line3d_error3d_enable-alpha-with-rgba-color.png
new file mode 100644
index 00000000000..23595008c8b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d_line3d_error3d_enable-alpha-with-rgba-color.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_scatter3d_line3d_error3d_transparent-with-zero-alpha.png b/test/image/baselines/virtual-webgl___gl3d_scatter3d_line3d_error3d_transparent-with-zero-alpha.png
new file mode 100644
index 00000000000..f2ba14526ca
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_scatter3d_line3d_error3d_transparent-with-zero-alpha.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_set-ranges.png b/test/image/baselines/virtual-webgl___gl3d_set-ranges.png
new file mode 100644
index 00000000000..87025975f90
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_set-ranges.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_snowden.png b/test/image/baselines/virtual-webgl___gl3d_snowden.png
new file mode 100644
index 00000000000..7c2046d0b6d
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_snowden.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_snowden_altered.png b/test/image/baselines/virtual-webgl___gl3d_snowden_altered.png
new file mode 100644
index 00000000000..0b28d28651a
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_snowden_altered.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_streamtube-first.png b/test/image/baselines/virtual-webgl___gl3d_streamtube-first.png
new file mode 100644
index 00000000000..c9445bf19f0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_streamtube-first.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_streamtube-simple.png b/test/image/baselines/virtual-webgl___gl3d_streamtube-simple.png
new file mode 100644
index 00000000000..057d0ccddc5
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_streamtube-simple.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_streamtube-thin.png b/test/image/baselines/virtual-webgl___gl3d_streamtube-thin.png
new file mode 100644
index 00000000000..eb39a698cd7
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_streamtube-thin.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_streamtube-wind.png b/test/image/baselines/virtual-webgl___gl3d_streamtube-wind.png
new file mode 100644
index 00000000000..dd0f9ffade2
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_streamtube-wind.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_streamtube_reversed_ranges.png b/test/image/baselines/virtual-webgl___gl3d_streamtube_reversed_ranges.png
new file mode 100644
index 00000000000..b12c831e94a
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_streamtube_reversed_ranges.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface-circular-colorscale.png b/test/image/baselines/virtual-webgl___gl3d_surface-circular-colorscale.png
new file mode 100644
index 00000000000..d6b3e2b4378
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface-circular-colorscale.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface-circular-opacityscale.png b/test/image/baselines/virtual-webgl___gl3d_surface-circular-opacityscale.png
new file mode 100644
index 00000000000..9652b8dbe29
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface-circular-opacityscale.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface-heatmap-treemap_transparent-colorscale.png b/test/image/baselines/virtual-webgl___gl3d_surface-heatmap-treemap_transparent-colorscale.png
new file mode 100644
index 00000000000..59e391b0f99
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface-heatmap-treemap_transparent-colorscale.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface-lighting.png b/test/image/baselines/virtual-webgl___gl3d_surface-lighting.png
new file mode 100644
index 00000000000..d84b419fb4d
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface-lighting.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface_after_heatmap.png b/test/image/baselines/virtual-webgl___gl3d_surface_after_heatmap.png
new file mode 100644
index 00000000000..ae3fdf6fe2c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface_after_heatmap.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface_connectgaps.png b/test/image/baselines/virtual-webgl___gl3d_surface_connectgaps.png
new file mode 100644
index 00000000000..e1762eed4c8
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface_connectgaps.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface_contour_precision.png b/test/image/baselines/virtual-webgl___gl3d_surface_contour_precision.png
new file mode 100644
index 00000000000..b633cb792af
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface_contour_precision.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface_contour_start-end-size.png b/test/image/baselines/virtual-webgl___gl3d_surface_contour_start-end-size.png
new file mode 100644
index 00000000000..04b2cfd02b0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface_contour_start-end-size.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface_intensity.png b/test/image/baselines/virtual-webgl___gl3d_surface_intensity.png
new file mode 100644
index 00000000000..1b8fec00e84
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface_intensity.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface_opacity-and-opacityscale.png b/test/image/baselines/virtual-webgl___gl3d_surface_opacity-and-opacityscale.png
new file mode 100644
index 00000000000..428db99543a
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface_opacity-and-opacityscale.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface_opacity_match_mesh3d.png b/test/image/baselines/virtual-webgl___gl3d_surface_opacity_match_mesh3d.png
new file mode 100644
index 00000000000..412a5fc5fd3
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface_opacity_match_mesh3d.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface_opacityscale_contour.png b/test/image/baselines/virtual-webgl___gl3d_surface_opacityscale_contour.png
new file mode 100644
index 00000000000..f69f5276c17
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface_opacityscale_contour.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface_small_timerange.png b/test/image/baselines/virtual-webgl___gl3d_surface_small_timerange.png
new file mode 100644
index 00000000000..de48fd21cfe
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface_small_timerange.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_surface_transparent-with-contours.png b/test/image/baselines/virtual-webgl___gl3d_surface_transparent-with-contours.png
new file mode 100644
index 00000000000..dbf17eaf60f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_surface_transparent-with-contours.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_tetrahedra.png b/test/image/baselines/virtual-webgl___gl3d_tetrahedra.png
new file mode 100644
index 00000000000..12ac362bd12
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_tetrahedra.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_text-weirdness.png b/test/image/baselines/virtual-webgl___gl3d_text-weirdness.png
new file mode 100644
index 00000000000..62137d7f43f
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_text-weirdness.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_ticks-milliseconds.png b/test/image/baselines/virtual-webgl___gl3d_ticks-milliseconds.png
new file mode 100644
index 00000000000..5afdcbf463b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_ticks-milliseconds.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_traces-with-legend.png b/test/image/baselines/virtual-webgl___gl3d_traces-with-legend.png
new file mode 100644
index 00000000000..ddc437098a5
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_traces-with-legend.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_traces-with-opacity.png b/test/image/baselines/virtual-webgl___gl3d_traces-with-opacity.png
new file mode 100644
index 00000000000..35eb47f8ff5
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_traces-with-opacity.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_transparent_same-depth.png b/test/image/baselines/virtual-webgl___gl3d_transparent_same-depth.png
new file mode 100644
index 00000000000..8c060204f3c
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_transparent_same-depth.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_triangle.png b/test/image/baselines/virtual-webgl___gl3d_triangle.png
new file mode 100644
index 00000000000..4370b4b5fa7
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_triangle.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_volume_airflow.png b/test/image/baselines/virtual-webgl___gl3d_volume_airflow.png
new file mode 100644
index 00000000000..263281befb8
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_volume_airflow.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_volume_multiple-traces.png b/test/image/baselines/virtual-webgl___gl3d_volume_multiple-traces.png
new file mode 100644
index 00000000000..c6ff644b052
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_volume_multiple-traces.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_volume_multiple-traces_one-cube.png b/test/image/baselines/virtual-webgl___gl3d_volume_multiple-traces_one-cube.png
new file mode 100644
index 00000000000..be1c8e2e460
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_volume_multiple-traces_one-cube.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_volume_opacityscale-iso.png b/test/image/baselines/virtual-webgl___gl3d_volume_opacityscale-iso.png
new file mode 100644
index 00000000000..352d4bc893d
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_volume_opacityscale-iso.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_wire-surface.png b/test/image/baselines/virtual-webgl___gl3d_wire-surface.png
new file mode 100644
index 00000000000..ddef1707fd7
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_wire-surface.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_world-cals.png b/test/image/baselines/virtual-webgl___gl3d_world-cals.png
new file mode 100644
index 00000000000..d745bf73c60
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_world-cals.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_xy-defined-ticks.png b/test/image/baselines/virtual-webgl___gl3d_xy-defined-ticks.png
new file mode 100644
index 00000000000..fa1a6b1632d
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_xy-defined-ticks.png differ
diff --git a/test/image/baselines/virtual-webgl___gl3d_z-range.png b/test/image/baselines/virtual-webgl___gl3d_z-range.png
new file mode 100644
index 00000000000..5926ce38fed
Binary files /dev/null and b/test/image/baselines/virtual-webgl___gl3d_z-range.png differ
diff --git a/test/image/baselines/virtual-webgl___global_font.png b/test/image/baselines/virtual-webgl___global_font.png
new file mode 100644
index 00000000000..a10ff45c258
Binary files /dev/null and b/test/image/baselines/virtual-webgl___global_font.png differ
diff --git a/test/image/baselines/virtual-webgl___glpolar_scatter.png b/test/image/baselines/virtual-webgl___glpolar_scatter.png
new file mode 100644
index 00000000000..d52e8fde248
Binary files /dev/null and b/test/image/baselines/virtual-webgl___glpolar_scatter.png differ
diff --git a/test/image/baselines/virtual-webgl___glpolar_style.png b/test/image/baselines/virtual-webgl___glpolar_style.png
new file mode 100644
index 00000000000..9cb2af1a221
Binary files /dev/null and b/test/image/baselines/virtual-webgl___glpolar_style.png differ
diff --git a/test/image/baselines/virtual-webgl___glpolar_subplots.png b/test/image/baselines/virtual-webgl___glpolar_subplots.png
new file mode 100644
index 00000000000..2526e2bacc4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___glpolar_subplots.png differ
diff --git a/test/image/baselines/virtual-webgl___map_0.png b/test/image/baselines/virtual-webgl___map_0.png
new file mode 100644
index 00000000000..225d4469857
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_0.png differ
diff --git a/test/image/baselines/virtual-webgl___map_bubbles-text.png b/test/image/baselines/virtual-webgl___map_bubbles-text.png
new file mode 100644
index 00000000000..798c7d6060b
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_bubbles-text.png differ
diff --git a/test/image/baselines/virtual-webgl___map_bubbles.png b/test/image/baselines/virtual-webgl___map_bubbles.png
new file mode 100644
index 00000000000..a5a9cd6c785
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_bubbles.png differ
diff --git a/test/image/baselines/virtual-webgl___map_carto-style.png b/test/image/baselines/virtual-webgl___map_carto-style.png
new file mode 100644
index 00000000000..8498b509292
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_carto-style.png differ
diff --git a/test/image/baselines/virtual-webgl___map_carto-text.png b/test/image/baselines/virtual-webgl___map_carto-text.png
new file mode 100644
index 00000000000..8a752ba0245
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_carto-text.png differ
diff --git a/test/image/baselines/virtual-webgl___map_choropleth-multiple.png b/test/image/baselines/virtual-webgl___map_choropleth-multiple.png
new file mode 100644
index 00000000000..7e973ce9718
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_choropleth-multiple.png differ
diff --git a/test/image/baselines/virtual-webgl___map_choropleth-raw-geojson.png b/test/image/baselines/virtual-webgl___map_choropleth-raw-geojson.png
new file mode 100644
index 00000000000..2b01bc17c7e
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_choropleth-raw-geojson.png differ
diff --git a/test/image/baselines/virtual-webgl___map_choropleth0-legend.png b/test/image/baselines/virtual-webgl___map_choropleth0-legend.png
new file mode 100644
index 00000000000..eb153871eda
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_choropleth0-legend.png differ
diff --git a/test/image/baselines/virtual-webgl___map_choropleth0.png b/test/image/baselines/virtual-webgl___map_choropleth0.png
new file mode 100644
index 00000000000..028009fb102
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_choropleth0.png differ
diff --git a/test/image/baselines/virtual-webgl___map_connectgaps.png b/test/image/baselines/virtual-webgl___map_connectgaps.png
new file mode 100644
index 00000000000..f84d9ced6a0
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_connectgaps.png differ
diff --git a/test/image/baselines/virtual-webgl___map_custom-style.png b/test/image/baselines/virtual-webgl___map_custom-style.png
new file mode 100644
index 00000000000..a482f4b96f4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_custom-style.png differ
diff --git a/test/image/baselines/virtual-webgl___map_density-multiple.png b/test/image/baselines/virtual-webgl___map_density-multiple.png
new file mode 100644
index 00000000000..439f0def531
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_density-multiple.png differ
diff --git a/test/image/baselines/virtual-webgl___map_density-multiple_legend.png b/test/image/baselines/virtual-webgl___map_density-multiple_legend.png
new file mode 100644
index 00000000000..362bcca504d
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_density-multiple_legend.png differ
diff --git a/test/image/baselines/virtual-webgl___map_density0-legend.png b/test/image/baselines/virtual-webgl___map_density0-legend.png
new file mode 100644
index 00000000000..15af4966e92
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_density0-legend.png differ
diff --git a/test/image/baselines/virtual-webgl___map_density0.png b/test/image/baselines/virtual-webgl___map_density0.png
new file mode 100644
index 00000000000..5cad2b749fc
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_density0.png differ
diff --git a/test/image/baselines/virtual-webgl___map_earthquake-density.png b/test/image/baselines/virtual-webgl___map_earthquake-density.png
new file mode 100644
index 00000000000..f23bbfd6811
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_earthquake-density.png differ
diff --git a/test/image/baselines/virtual-webgl___map_fill.png b/test/image/baselines/virtual-webgl___map_fill.png
new file mode 100644
index 00000000000..0f5dfedd2c1
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_fill.png differ
diff --git a/test/image/baselines/virtual-webgl___map_fonts-supported-metropolis-italic.png b/test/image/baselines/virtual-webgl___map_fonts-supported-metropolis-italic.png
new file mode 100644
index 00000000000..666a55957de
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_fonts-supported-metropolis-italic.png differ
diff --git a/test/image/baselines/virtual-webgl___map_fonts-supported-metropolis-weight.png b/test/image/baselines/virtual-webgl___map_fonts-supported-metropolis-weight.png
new file mode 100644
index 00000000000..cf8ce35a1c4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_fonts-supported-metropolis-weight.png differ
diff --git a/test/image/baselines/virtual-webgl___map_fonts-supported-metropolis.png b/test/image/baselines/virtual-webgl___map_fonts-supported-metropolis.png
new file mode 100644
index 00000000000..cf8ce35a1c4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_fonts-supported-metropolis.png differ
diff --git a/test/image/baselines/virtual-webgl___map_geojson-attributes.png b/test/image/baselines/virtual-webgl___map_geojson-attributes.png
new file mode 100644
index 00000000000..38fc9277ed5
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_geojson-attributes.png differ
diff --git a/test/image/baselines/virtual-webgl___map_osm-style.png b/test/image/baselines/virtual-webgl___map_osm-style.png
new file mode 100644
index 00000000000..443d24146c4
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_osm-style.png differ
diff --git a/test/image/baselines/virtual-webgl___map_predefined-styles1.png b/test/image/baselines/virtual-webgl___map_predefined-styles1.png
new file mode 100644
index 00000000000..ebb4e340538
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_predefined-styles1.png differ
diff --git a/test/image/baselines/virtual-webgl___map_symbol-text.png b/test/image/baselines/virtual-webgl___map_symbol-text.png
new file mode 100644
index 00000000000..9b8d497ae32
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_symbol-text.png differ
diff --git a/test/image/baselines/virtual-webgl___map_texttemplate.png b/test/image/baselines/virtual-webgl___map_texttemplate.png
new file mode 100644
index 00000000000..464b1df6aaf
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_texttemplate.png differ
diff --git a/test/image/baselines/virtual-webgl___map_white-bg-style.png b/test/image/baselines/virtual-webgl___map_white-bg-style.png
new file mode 100644
index 00000000000..a7af5998570
Binary files /dev/null and b/test/image/baselines/virtual-webgl___map_white-bg-style.png differ
diff --git a/test/image/baselines/waterfall-grouping-vs-defaults.png b/test/image/baselines/waterfall-grouping-vs-defaults.png
index 66efe89f625..b1cc240a1a2 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 88568228a15..540983aedf9 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 9d7c04f77e0..b807a49363b 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 25050359038..237824818aa 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 9a76e3d5778..2ce31d7d22b 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 eff442c60be..cf3f7334777 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 34d0c9f7adf..142a9726135 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 a21e60fa679..4d278320003 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 b8ec83ee6b7..dbd3f61b3eb 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 d07e69533e0..e186dbae941 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 aa16b1b9925..cacf1534808 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 8df5fb0f6f4..a44f54cd356 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 b51352656de..c7c13c02b1d 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 f83d573f763..dbe5a714593 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 b847144a477..1b5cfe38d67 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 a638833ef50..345c3adc32b 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 22e67a6214f..af0a45d28c6 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 93353646216..a158a403de3 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 e09ea3cdad4..5bb7a207536 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 9a9d301ce34..e827c4040d5 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 9549610192a..46052736b3c 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/worldcup.png b/test/image/baselines/worldcup.png
index 043d310453b..f2cc99db934 100644
Binary files a/test/image/baselines/worldcup.png and b/test/image/baselines/worldcup.png differ
diff --git a/test/image/baselines/wrap_legend_horizontal_first-column.png b/test/image/baselines/wrap_legend_horizontal_first-column.png
index 78878d837a6..5d6cb5d4165 100644
Binary files a/test/image/baselines/wrap_legend_horizontal_first-column.png and b/test/image/baselines/wrap_legend_horizontal_first-column.png differ
diff --git a/test/image/baselines/yaxis-over-yaxis2.png b/test/image/baselines/yaxis-over-yaxis2.png
index 0bbf13638ed..175f1c39adb 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 cb18d33dd01..d5ca4dacaa1 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 48a88d2795f..9a21f4ece49 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/zerolinelayer_above.png b/test/image/baselines/zerolinelayer_above.png
new file mode 100644
index 00000000000..10fca3a7e8c
Binary files /dev/null and b/test/image/baselines/zerolinelayer_above.png differ
diff --git a/test/image/baselines/zerolinelayer_below.png b/test/image/baselines/zerolinelayer_below.png
new file mode 100644
index 00000000000..d011848fa65
Binary files /dev/null and b/test/image/baselines/zerolinelayer_below.png differ
diff --git a/test/image/baselines/zorder-contour.png b/test/image/baselines/zorder-contour.png
index 889288c6dcf..02afbb4cf89 100644
Binary files a/test/image/baselines/zorder-contour.png and b/test/image/baselines/zorder-contour.png differ
diff --git a/test/image/baselines/zorder-heatmap.png b/test/image/baselines/zorder-heatmap.png
index 201879d8305..9b181b63b72 100644
Binary files a/test/image/baselines/zorder-heatmap.png and b/test/image/baselines/zorder-heatmap.png differ
diff --git a/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot.png b/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot.png
index 388bd44ec30..c147c193421 100644
Binary files a/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot.png and b/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot.png differ
diff --git a/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot2.png b/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot2.png
index ee483b8af15..660a04a25d4 100644
Binary files a/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot2.png and b/test/image/baselines/zorder-overlayed-subplots-multiple-traces-main-subplot2.png differ
diff --git a/test/image/baselines/zorder-overlayed-subplots-multiple-traces-one-subplot.png b/test/image/baselines/zorder-overlayed-subplots-multiple-traces-one-subplot.png
index b9c67e0578f..d2d1ce4bb49 100644
Binary files a/test/image/baselines/zorder-overlayed-subplots-multiple-traces-one-subplot.png and b/test/image/baselines/zorder-overlayed-subplots-multiple-traces-one-subplot.png differ
diff --git a/test/image/baselines/zorder-overlayed-subplots.png b/test/image/baselines/zorder-overlayed-subplots.png
index bc6d9c1b15a..ca338240111 100644
Binary files a/test/image/baselines/zorder-overlayed-subplots.png and b/test/image/baselines/zorder-overlayed-subplots.png differ
diff --git a/test/image/baselines/zorder-scatter-image.png b/test/image/baselines/zorder-scatter-image.png
index c2995298f75..ea126705db2 100644
Binary files a/test/image/baselines/zorder-scatter-image.png and b/test/image/baselines/zorder-scatter-image.png differ
diff --git a/test/image/baselines/zorder_basic.png b/test/image/baselines/zorder_basic.png
index 7bc63f50483..f5fcea80063 100644
Binary files a/test/image/baselines/zorder_basic.png and b/test/image/baselines/zorder_basic.png differ
diff --git a/test/image/baselines/zorder_default-orders.png b/test/image/baselines/zorder_default-orders.png
index 40884d1f486..54ee55689bc 100644
Binary files a/test/image/baselines/zorder_default-orders.png and b/test/image/baselines/zorder_default-orders.png differ
diff --git a/test/image/baselines/zorder_funnel_carpet_waterfall.png b/test/image/baselines/zorder_funnel_carpet_waterfall.png
index b0c546c6039..67b93decb3e 100644
Binary files a/test/image/baselines/zorder_funnel_carpet_waterfall.png and b/test/image/baselines/zorder_funnel_carpet_waterfall.png differ
diff --git a/test/image/baselines/zorder_violin_box.png b/test/image/baselines/zorder_violin_box.png
index d709d192f31..8d66209eeec 100644
Binary files a/test/image/baselines/zorder_violin_box.png and b/test/image/baselines/zorder_violin_box.png differ
diff --git a/test/image/baselines/zsmooth_methods.png b/test/image/baselines/zsmooth_methods.png
index ce62857e007..8fa01a6bc95 100644
Binary files a/test/image/baselines/zsmooth_methods.png and b/test/image/baselines/zsmooth_methods.png differ
diff --git a/test/image/baselines/zz-geo_choropleth-egypt-sudan.png b/test/image/baselines/zz-geo_choropleth-egypt-sudan.png
deleted file mode 100644
index c298b1cd3cc..00000000000
Binary files a/test/image/baselines/zz-geo_choropleth-egypt-sudan.png and /dev/null differ
diff --git a/test/image/baselines/zz-label-spacing.png b/test/image/baselines/zz-label-spacing.png
deleted file mode 100644
index 1d561dd408b..00000000000
Binary files a/test/image/baselines/zz-label-spacing.png and /dev/null differ
diff --git a/test/image/baselines/zz-legend-vertical-maxheight.png b/test/image/baselines/zz-legend-vertical-maxheight.png
deleted file mode 100644
index 992458e2641..00000000000
Binary files a/test/image/baselines/zz-legend-vertical-maxheight.png and /dev/null differ
diff --git a/test/image/baselines/zz-minorloglabels.png b/test/image/baselines/zz-minorloglabels.png
deleted file mode 100644
index ee6676ce45c..00000000000
Binary files a/test/image/baselines/zz-minorloglabels.png and /dev/null differ
diff --git a/test/image/baselines/zz-pattern_bars-path.png b/test/image/baselines/zz-pattern_bars-path.png
deleted file mode 100644
index cff51494b5b..00000000000
Binary files a/test/image/baselines/zz-pattern_bars-path.png and /dev/null differ
diff --git a/test/image/baselines/zz-pie-slice-legend.png b/test/image/baselines/zz-pie-slice-legend.png
deleted file mode 100644
index 2f9ae6a1641..00000000000
Binary files a/test/image/baselines/zz-pie-slice-legend.png and /dev/null differ
diff --git a/test/image/baselines/zz-pie-slice-legend2.png b/test/image/baselines/zz-pie-slice-legend2.png
deleted file mode 100644
index 89adfd0506d..00000000000
Binary files a/test/image/baselines/zz-pie-slice-legend2.png and /dev/null differ
diff --git a/test/image/baselines/zz-pie-slice-legend3.png b/test/image/baselines/zz-pie-slice-legend3.png
deleted file mode 100644
index 54680394fd4..00000000000
Binary files a/test/image/baselines/zz-pie-slice-legend3.png and /dev/null differ
diff --git a/test/image/baselines/zz-scatter_marker_line_dash.png b/test/image/baselines/zz-scatter_marker_line_dash.png
deleted file mode 100644
index e00765926e1..00000000000
Binary files a/test/image/baselines/zz-scatter_marker_line_dash.png and /dev/null differ
diff --git a/test/image/baselines/zz-tickson_boundaries_ticklabelposition.png b/test/image/baselines/zz-tickson_boundaries_ticklabelposition.png
deleted file mode 100644
index c06152c112d..00000000000
Binary files a/test/image/baselines/zz-tickson_boundaries_ticklabelposition.png and /dev/null differ
diff --git a/test/image/baselines/zz_shapes_clipping_double_digit_subplots.png b/test/image/baselines/zz_shapes_clipping_double_digit_subplots.png
deleted file mode 100644
index ff710e81a57..00000000000
Binary files a/test/image/baselines/zz_shapes_clipping_double_digit_subplots.png and /dev/null differ
diff --git a/test/image/baselines/zzz_zerolinelayer_above.png b/test/image/baselines/zzz_zerolinelayer_above.png
deleted file mode 100644
index 485700eec31..00000000000
Binary files a/test/image/baselines/zzz_zerolinelayer_above.png and /dev/null differ
diff --git a/test/image/baselines/zzz_zerolinelayer_below.png b/test/image/baselines/zzz_zerolinelayer_below.png
deleted file mode 100644
index a287931572d..00000000000
Binary files a/test/image/baselines/zzz_zerolinelayer_below.png and /dev/null differ
diff --git a/test/image/compare_pixels_collections.json b/test/image/compare_pixels_collections.json
new file mode 100644
index 00000000000..234eb781609
--- /dev/null
+++ b/test/image/compare_pixels_collections.json
@@ -0,0 +1,21 @@
+{
+ "compare_disallow": [
+ "map_angles",
+ "map_fonts-supported-open-sans-weight",
+ "map_fonts-supported-open-sans",
+ "map_layers",
+ "map_predefined-styles2",
+ "map_scattercluster",
+ "map_stamen-style"
+ ],
+ "compare_mathjax3": [
+ "legend_mathjax_title_and_items",
+ "mathjax",
+ "parcats_grid_subplots",
+ "table_latex_multitrace_scatter",
+ "table_plain_birds",
+ "table_wrapped_birds",
+ "ternary-mathjax",
+ "ternary-mathjax-title-place-subtitle"
+ ]
+}
diff --git a/test/image/compare_pixels_test.js b/test/image/compare_pixels_test.js
deleted file mode 100644
index 574e5edf51f..00000000000
--- a/test/image/compare_pixels_test.js
+++ /dev/null
@@ -1,204 +0,0 @@
-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 getImagePaths = require('./assets/get_image_paths');
-
-/**
- * Image pixel comparison test script.
- *
- * Called by `tasks/test_image.sh in `npm run test-image`.
- *
- * CLI arguments:
- *
- * 1. 'pattern' : glob determining which mock(s) are to be tested
- *
- * Examples:
- *
- * Run all tests:
- *
- * npm run test-image
- *
- * Run the 'contour_nolines' test:
- *
- * npm run test-image -- contour_nolines
- *
- * Run all gl3d image test
- *
- * npm run test-image -- gl3d_*
- *
- */
-
-var argv = minimist(process.argv.slice(2), {});
-
-// If no pattern is provided, all mocks are compared
-if(argv._.length === 0) {
- argv._.push('');
-}
-
-// Build list of mocks to compare
-var allMockList = [];
-var mathjax3;
-var virtualWebgl = false;
-argv._.forEach(function(pattern) {
- if(pattern === 'mathjax3') {
- mathjax3 = true;
- } else if(pattern === 'virtual-webgl') {
- virtualWebgl = true;
- allMockList = getMockList('');
- } else {
- var mockList = getMockList(pattern);
-
- if(mockList.length === 0) {
- throw 'No mocks found with pattern ' + pattern;
- }
-
- allMockList = allMockList.concat(mockList);
- }
-});
-
-var blacklist = [
- 'map_angles',
- 'map_stamen-style',
- 'map_predefined-styles2',
- 'map_scattercluster',
- 'map_fonts-supported-open-sans',
- 'map_fonts-supported-open-sans-weight',
- 'map_layers',
-];
-
-if(virtualWebgl) {
- allMockList = allMockList.filter(function(a) {
- return a.slice(0, 2) === 'gl';
- });
-}
-
-if(mathjax3) {
- allMockList = [
- 'legend_mathjax_title_and_items',
- 'mathjax',
- 'parcats_grid_subplots',
- 'table_latex_multitrace_scatter',
- 'table_plain_birds',
- 'table_wrapped_birds',
- 'ternary-mathjax',
- 'ternary-mathjax-title-place-subtitle',
- ];
-}
-
-// To get rid of duplicates
-function unique(value, index, self) {
- return self.indexOf(value) === index;
-}
-allMockList = allMockList.filter(unique);
-
-var skipped = [];
-var failed = [];
-var fail = function(mockName) {
- if(failed.indexOf(mockName) === -1) {
- failed.push(mockName);
- }
-};
-
-for(var i = 0; i < allMockList.length; i++) {
- var mockName = allMockList[i];
-
- // skip blacklist
- if(blacklist.indexOf(mockName) !== -1) continue;
-
- var flakyMap = [
- // more flaky
- 'map_density0-legend',
- 'map_osm-style',
- 'map_predefined-styles1',
- 'map_predefined-styles2',
- ].indexOf(mockName) !== -1;
-
- var otherFlaky = [
- // list flaky mocks other than maps:
- 'gl3d_bunny-hull'
- ].indexOf(mockName) !== -1;
-
- var threshold =
- flakyMap ? 1 :
- otherFlaky ? 0.15 :
- 0;
-
- if(mathjax3) mockName = 'mathjax3___' + mockName;
-
- var imagePaths = getImagePaths(mockName);
- var base = imagePaths.baseline;
- var test = imagePaths.test;
-
- if(!common.doesFileExist(test) && !mathjax3) {
- 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);
- }
-
- key = 'height';
- s0 = img0[key];
- s1 = img0[key];
- if(s0 !== s1) {
- console.error(key + 's do not match: ' + s0 + ' vs ' + s1);
- fail(mockName);
- }
-
- var width = img0.width;
- var height = img0.height;
-
- var diff = new PNG({
- width: width,
- height: height
- });
-
- if(virtualWebgl) {
- threshold = Math.max(0.4, threshold);
- if([
- 'gl3d_ibm-plot',
- 'gl3d_isosurface_2surfaces-checker_spaceframe',
- 'gl3d_opacity-scaling-spikes',
- 'gl3d_cone-wind',
- 'gl3d_isosurface_math',
- 'gl3d_scatter3d-blank-text',
- 'gl3d_mesh3d_surface3d_scatter3d_line3d_error3d_log_reversed_ranges'
- ].indexOf(mockName) !== -1) threshold = 0.7;
- }
-
- var numDiffPixels = pixelmatch(img0.data, img1.data, diff.data, width, height, {
- threshold: threshold
- });
-
- if(numDiffPixels) {
- fs.writeFileSync(imagePaths.diff, PNG.sync.write(diff));
-
- console.error('pixels do not match: ' + numDiffPixels);
- fail(mockName);
- } else {
- // remove when identical
- fs.unlinkSync(imagePaths.test);
- }
-}
-
-if(failed.length || skipped.length) {
- throw JSON.stringify({
- failed: failed,
- skipped: skipped
- }, null, 2);
-}
diff --git a/test/image/compare_pixels_test.mjs b/test/image/compare_pixels_test.mjs
new file mode 100644
index 00000000000..d23d64458b8
--- /dev/null
+++ b/test/image/compare_pixels_test.mjs
@@ -0,0 +1,173 @@
+import fs from 'fs';
+import minimist from 'minimist';
+import path from 'path';
+import pixelmatch from 'pixelmatch';
+import { PNG } from 'pngjs';
+import { fileURLToPath } from 'url';
+import common from '../../tasks/util/common.js';
+import constants from '../../tasks/util/constants.js';
+import getImagePaths from './assets/get_image_paths.js';
+import getMockList from './assets/get_mock_list.js';
+
+const __dirname = path.dirname(fileURLToPath(import.meta.url));
+
+fs.mkdirSync(constants.pathToTestImagesDiff, { recursive: true });
+
+/**
+ * Image pixel comparison test script.
+ *
+ * Called by `tasks/test_image.sh in `npm run test-image`.
+ *
+ * CLI arguments:
+ *
+ * 1. 'pattern' : glob determining which mock(s) are to be tested
+ *
+ * Examples:
+ *
+ * Run all tests:
+ *
+ * npm run test-image
+ *
+ * Run the 'contour_nolines' test:
+ *
+ * npm run test-image -- contour_nolines
+ *
+ * Run all gl3d image test
+ *
+ * npm run test-image -- gl3d_*
+ *
+ */
+
+const argv = minimist(process.argv.slice(2), {});
+
+// If no pattern is provided, all mocks are compared
+if (argv._.length === 0) argv._.push('');
+
+// Build list of mocks to compare
+let allMockList = [];
+let mathjax3 = false;
+let virtualWebgl = false;
+argv._.forEach((pattern) => {
+ if (pattern === 'mathjax3') {
+ mathjax3 = true;
+ } else if (pattern === 'virtual-webgl') {
+ virtualWebgl = true;
+ allMockList = getMockList('');
+ } else {
+ const mockList = getMockList(pattern);
+ if (mockList.length === 0) throw 'No mocks found with pattern ' + pattern;
+
+ allMockList = allMockList.concat(mockList);
+ }
+});
+
+const skipped = new Set();
+const failed = new Set();
+// TODO: In Node 20+, replace with: import collections from './compare_pixels_collections.json' with { type: 'json' };
+const collectionsPath = path.join(__dirname, 'compare_pixels_collections.json');
+const collections = JSON.parse(fs.readFileSync(collectionsPath));
+const disallowList = new Set(collections.compare_disallow);
+const flakyList = new Set(['gl3d_bunny-hull']);
+const flakyListMaps = new Set([
+ // more flaky
+ 'map_density0-legend',
+ 'map_osm-style',
+ 'map_predefined-styles1',
+ 'map_predefined-styles2'
+]);
+if (virtualWebgl) {
+ allMockList = allMockList.filter((a) => a.startsWith('gl') || a.startsWith('map'));
+}
+
+if (mathjax3) {
+ allMockList = collections.compare_mathjax3;
+}
+allMockList = new Set(allMockList);
+
+for (let mockName of allMockList) {
+ if (disallowList.has(mockName)) continue;
+
+ let threshold;
+ if (flakyListMaps.has(mockName)) threshold = 1;
+ else if (flakyList.has(mockName)) threshold = 0.15;
+ else threshold = 0;
+
+ if (mathjax3) mockName = 'mathjax3___' + mockName;
+ if (virtualWebgl) mockName = 'virtual-webgl___' + mockName;
+
+ const { baseline: base, test, diff } = getImagePaths(mockName);
+
+ if (!common.doesFileExist(test) && !mathjax3) {
+ console.log('- skip:', mockName);
+ skipped.add(mockName);
+ continue;
+ }
+ console.log('+ test:', mockName);
+
+ try {
+ if (!common.doesFileExist(base)) {
+ console.error('baseline image missing');
+ fs.copyFileSync(test, diff);
+ failed.add(mockName);
+ continue;
+ }
+
+ const img0 = PNG.sync.read(fs.readFileSync(base));
+ const img1 = PNG.sync.read(fs.readFileSync(test));
+ let dimensionMismatch = false;
+ for (const key of ['height', 'width']) {
+ const length0 = img0[key];
+ const length1 = img1[key];
+ if (length0 !== length1) {
+ console.error(key + 's do not match: ' + length0 + ' vs ' + length1);
+ dimensionMismatch = true;
+ }
+ }
+
+ if (dimensionMismatch) {
+ fs.copyFileSync(test, diff);
+ failed.add(mockName);
+ continue;
+ }
+
+ const { height, width } = img0;
+ const imageDiff = new PNG({ width, height });
+ const numDiffPixels = pixelmatch(img0.data, img1.data, imageDiff.data, width, height, { threshold });
+
+ if (numDiffPixels) {
+ fs.writeFileSync(diff, PNG.sync.write(imageDiff));
+ console.error('pixels do not match: ' + numDiffPixels);
+ failed.add(mockName);
+ } else {
+ // remove when identical
+ fs.unlinkSync(test);
+ }
+ } catch (e) {
+ console.error('error comparing ' + mockName + ':', e);
+ failed.add(mockName);
+ }
+}
+
+// Debug: list contents of diff folder
+console.log('\n=== build/test_images/ ===');
+try {
+ const testFiles = fs.readdirSync(constants.pathToTestImages);
+ console.log(testFiles.length + ' files:', testFiles.join(', '));
+} catch { console.log('(empty or missing)'); }
+
+console.log('=== build/test_images_diff/ ===');
+try {
+ const diffFiles = fs.readdirSync(constants.pathToTestImagesDiff);
+ console.log(diffFiles.length + ' files:', diffFiles.join(', '));
+} catch { console.log('(empty or missing)'); }
+
+if (failed.size || skipped.size) {
+ throw JSON.stringify(
+ {
+ failed: Array.from(failed),
+ skipped: Array.from(skipped)
+ },
+ null,
+ 2
+ );
+}
diff --git a/test/image/make_baseline.py b/test/image/make_baseline.py
index 01dc836da76..ff0b600df09 100644
--- a/test/image/make_baseline.py
+++ b/test/image/make_baseline.py
@@ -1,134 +1,160 @@
+import asyncio
+import json
+import kaleido
import os
import sys
-import json
-import plotly.io as pio
from convert_b64 import arraysToB64
args = []
-if len(sys.argv) == 2 :
+if len(sys.argv) == 2:
args = sys.argv[1].split()
-elif len(sys.argv) > 1 :
+elif len(sys.argv) > 1:
args = sys.argv
root = os.getcwd()
-virtual_webgl = os.path.join(root, 'node_modules', 'virtual-webgl', 'src', 'virtual-webgl.js')
-plotlyjs = os.path.join(root, 'build', 'plotly.js')
-plotlyjs_with_virtual_webgl = os.path.join(root, 'build', 'plotly_with_virtual-webgl.js')
+virtual_webgl = os.path.join(
+ root, "node_modules", "virtual-webgl", "src", "virtual-webgl.js"
+)
+plotlyjs = os.path.join(root, "build", "plotly.js")
+plotlyjs_with_virtual_webgl = os.path.join(
+ root, "build", "plotly_with_virtual-webgl.js"
+)
-dirIn = os.path.join(root, 'test', 'image', 'mocks')
-dirOut = os.path.join(root, 'build', 'test_images')
+topojson = "file://" + os.path.join(root, "topojson", "dist")
+dirIn = os.path.join(root, "test", "image", "mocks")
+dirOut = os.path.join(root, "build", "test_images")
-# N.B. equal is the falg to write to baselines not test_images
+# N.B. equal is the flag to write to baselines not test_images
-if '=' in args :
- args = args[args.index('=') + 1:]
- dirOut = os.path.join(root, 'test', 'image', 'baselines')
+if "=" in args:
+ args = args[args.index("=") + 1 :]
+ dirOut = os.path.join(root, "test", "image", "baselines")
-if 'mathjax3=' in sys.argv :
- dirOut = os.path.join(root, 'test', 'image', 'baselines')
+if "mathjax3=" in sys.argv:
+ dirOut = os.path.join(root, "test", "image", "baselines")
-print('output to', dirOut)
+print("output to", dirOut)
mathjax_version = 2
-if 'mathjax3' in sys.argv or 'mathjax3=' in sys.argv :
+mathjax = None
+if "mathjax3" in sys.argv or "mathjax3=" in sys.argv:
# until https://github.com/plotly/Kaleido/issues/124 is addressed
# we are uanble to use local mathjax v3 installed in node_modules
# for now let's download it from the internet:
- pio.kaleido.scope.mathjax = 'https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-svg.js'
+ mathjax = "https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-svg.js"
+
mathjax_version = 3
- print('Kaleido using MathJax v3')
+ print("Kaleido using MathJax v3")
-virtual_webgl_version = 0 # i.e. virtual-webgl is not used
-if 'virtual-webgl' in sys.argv or 'virtual-webgl=' in sys.argv :
+virtual_webgl_version = 0 # i.e. virtual-webgl is not used
+if "virtual-webgl" in sys.argv or "virtual-webgl=" in sys.argv:
virtual_webgl_version = 1
- print('using virtual-webgl for WebGL v1')
+ print("using virtual-webgl for WebGL v1")
- with open(plotlyjs_with_virtual_webgl, 'w') as fileOut:
+ with open(plotlyjs_with_virtual_webgl, "w") as fileOut:
for filename in [virtual_webgl, plotlyjs]:
- with open(filename, 'r') as fileIn:
+ with open(filename, "r") as fileIn:
for line in fileIn:
fileOut.write(line)
plotlyjs = plotlyjs_with_virtual_webgl
-pio.kaleido.scope.plotlyjs = plotlyjs
-pio.kaleido.scope.topojson = "file://" + os.path.join(root, 'topojson', 'dist')
-pio.templates.default = 'none'
-
-ALL_MOCKS = [os.path.splitext(a)[0] for a in os.listdir(dirIn) if a.endswith('.json')]
+ALL_MOCKS = [os.path.splitext(a)[0] for a in os.listdir(dirIn) if a.endswith(".json")]
ALL_MOCKS.sort()
-if len(args) > 0 :
+if len(args) > 0:
allNames = [a for a in args if a in ALL_MOCKS]
-else :
+else:
allNames = ALL_MOCKS
-# unable to generate baselines for the following mocks
-blacklist = [
- 'map_stamen-style',
- 'map_predefined-styles2',
- 'map_scattercluster',
- 'map_fonts-supported-open-sans',
- 'map_fonts-supported-open-sans-weight',
- 'map_layers',
-]
-allNames = [a for a in allNames if a not in blacklist]
-
-if len(allNames) == 0 :
- print('error: Nothing to create!')
+with open(os.path.join(root, "test", "image", "compare_pixels_collections.json"), "r") as f:
+ # unable to generate baselines for the following mocks
+ disallowList = set(json.load(f)["compare_disallow"])
+allNames = [a for a in allNames if a not in disallowList]
+
+if len(allNames) == 0:
+ print("error: Nothing to create!")
sys.exit(1)
failed = []
-for name in allNames :
- outName = name
- if mathjax_version == 3 :
- outName = 'mathjax3___' + name
-
- print(outName)
-
- 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']
-
- if 'b64' in sys.argv or 'b64=' in sys.argv or 'b64-json' in sys.argv :
- newFig = dict()
- arraysToB64(fig, newFig)
- fig = newFig
- if 'b64-json' in sys.argv and attempt == 0 : print(json.dumps(fig, indent = 2))
-
- try :
- pio.write_image(
- fig=fig,
- file=os.path.join(dirOut, outName + '.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(outName)
-
- if(created) : break
-
-if len(failed) > 0 :
- print('Failed at :')
- print(failed)
- sys.exit(1)
+
+
+async def make_baselines_async():
+
+ kopts = dict(
+ plotlyjs=plotlyjs,
+ )
+ if mathjax is not None:
+ kopts["mathjax"] = mathjax
+
+ async with kaleido.Kaleido(n=1, **kopts) as k:
+ for name in allNames:
+ outName = name
+ if mathjax_version == 3:
+ outName = "mathjax3___" + name
+ if virtual_webgl_version == 1:
+ outName = "virtual-webgl___" + outName
+
+ print(outName)
+
+ 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"]
+
+ if (
+ "b64" in sys.argv
+ or "b64=" in sys.argv
+ or "b64-json" in sys.argv
+ ):
+ newFig = dict()
+ arraysToB64(fig, newFig)
+ fig = newFig
+ if "b64-json" in sys.argv and attempt == 0:
+ print(json.dumps(fig, indent=2))
+
+ try:
+ bytes = await k.calc_fig(
+ fig,
+ opts=dict(
+ format="png",
+ width=width,
+ height=height,
+ ),
+ topojson=topojson,
+ )
+ filename = os.path.join(dirOut, outName + ".png")
+ with open(filename, "wb") as f:
+ f.write(bytes)
+ created = True
+ except Exception as e:
+ print(e)
+ if attempt < MAX_RETRY:
+ print("retry", attempt + 1, "/", MAX_RETRY)
+ else:
+ failed.append(outName)
+
+ if created:
+ break
+
+ if len(failed) > 0:
+ print("Failed at :")
+ print(failed)
+ sys.exit(1)
+
+
+if __name__ == "__main__":
+ asyncio.run(make_baselines_async())
diff --git a/test/image/make_exports.py b/test/image/make_exports.py
index 279439af1e4..42774ed9ff0 100644
--- a/test/image/make_exports.py
+++ b/test/image/make_exports.py
@@ -1,65 +1,82 @@
+import asyncio
+import json
+import kaleido
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')
+dirIn = os.path.join(root, "test", "image", "mocks")
+dirOut = os.path.join(root, "build", "test_images")
+os.makedirs(dirOut, exist_ok=True)
-pio.templates.default = 'none'
-pio.kaleido.scope.plotlyjs = os.path.join(root, 'build', 'plotly.js')
+plotlyjs = os.path.join(root, "build", "plotly.js")
+topojson = "file://" + os.path.join(root, "topojson", "dist")
-allFormats = ['svg', 'jpg', 'jpeg', 'webp', 'pdf']
+allFormats = ["svg", "jpg", "jpeg", "webp", "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',
- 'map_density-multiple_legend',
- 'smith_modes',
- 'zsmooth_methods',
- 'fonts',
- 'worldcup',
- 'mathjax'
+ "annotations",
+ "contour_legend-colorscale",
+ "fonts",
+ "gl2d_no-clustering2",
+ "gl3d_surface-heatmap-treemap_transparent-colorscale",
+ "image_astronaut_source",
+ "layout_image",
+ "map_density-multiple_legend",
+ "mathjax",
+ "plot_types",
+ "range_slider",
+ "shapes",
+ "smith_modes",
+ "worldcup",
+ "zsmooth_methods",
]
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']
+async def make_exports_async():
+ global failed
+
+ async with kaleido.Kaleido(n=1, plotlyjs=plotlyjs) as k:
+ for name in allNames:
+ 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"]
+
+ for fmt in allFormats:
+ print(name + " --> " + fmt)
+
+ try:
+ data = await k.calc_fig(
+ fig,
+ opts=dict(
+ format=fmt,
+ width=width,
+ height=height,
+ ),
+ topojson=topojson,
+ )
+ filename = os.path.join(dirOut, name + "." + fmt)
+ with open(filename, "wb") as f:
+ f.write(data)
- 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
- except Exception as e :
- print(e)
- failed += 1
-if failed > 0 : sys.exit(1)
+if __name__ == "__main__":
+ asyncio.run(make_exports_async())
+ if failed > 0:
+ sys.exit(1)
diff --git a/test/image/mocks/zz-geo_choropleth-egypt-sudan.json b/test/image/mocks/geo_choropleth-egypt-sudan.json
similarity index 100%
rename from test/image/mocks/zz-geo_choropleth-egypt-sudan.json
rename to test/image/mocks/geo_choropleth-egypt-sudan.json
diff --git a/test/image/mocks/geo_choropleth-usa-location-names.json b/test/image/mocks/geo_choropleth-usa-location-names.json
new file mode 100644
index 00000000000..59495991023
--- /dev/null
+++ b/test/image/mocks/geo_choropleth-usa-location-names.json
@@ -0,0 +1,152 @@
+{
+ "data": [
+ {
+ "autocolorscale": false,
+ "zmax": 16472.88,
+ "colorscale": [
+ [0, "rgb(242,240,247)"],
+ [0.2, "rgb(218,218,235)"],
+ [0.4, "rgb(188,189,220)"],
+ [0.6, "rgb(158,154,200)"],
+ [0.8, "rgb(117,107,177)"],
+ [1, "rgb(84,39,143)"]
+ ],
+ "text": [
+ "Alabama
--
Beef: 34.4
Pork: 10.6
Poultry: 481.0
Dairy: 4.06
--
Fruits: 25.11
Veggies: 14.33
--
Wheat: 70.0
Corn: 34.9
Cotton: 317.61",
+ "Alaska
--
Beef: 0.2
Pork: 0.1
Poultry: 0.0
Dairy: 0.19
--
Fruits: 0.0
Veggies: 1.56
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
+ "Arizona
--
Beef: 71.3
Pork: 17.9
Poultry: 0.0
Dairy: 105.48
--
Fruits: 60.27
Veggies: 386.91
--
Wheat: 48.7
Corn: 7.3
Cotton: 423.95",
+ "Arkansas
--
Beef: 53.2
Pork: 29.4
Poultry: 562.9
Dairy: 3.53
--
Fruits: 6.88
Veggies: 11.45
--
Wheat: 114.5
Corn: 69.5
Cotton: 665.44",
+ " California
--
Beef: 228.7
Pork: 11.1
Poultry: 225.4
Dairy: 929.95
--
Fruits: 8736.4
Veggies: 2106.79
--
Wheat: 249.3
Corn: 34.6
Cotton: 1064.95",
+ "Colorado
--
Beef: 261.4
Pork: 66.0
Poultry: 14.0
Dairy: 71.94
--
Fruits: 17.99
Veggies: 118.27
--
Wheat: 400.5
Corn: 183.2
Cotton: 0.0",
+ "Connecticut
--
Beef: 1.1
Pork: 0.1
Poultry: 6.9
Dairy: 9.49
--
Fruits: 13.1
Veggies: 11.16
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
+ "Delaware
--
Beef: 0.4
Pork: 0.6
Poultry: 114.7
Dairy: 2.3
--
Fruits: 1.53
Veggies: 20.03
--
Wheat: 22.9
Corn: 26.9
Cotton: 0.0",
+ "Florida
--
Beef: 42.6
Pork: 0.9
Poultry: 56.9
Dairy: 66.31
--
Fruits: 1371.36
Veggies: 450.86
--
Wheat: 1.8
Corn: 3.5
Cotton: 78.24",
+ "Georgia
--
Beef: 31.0
Pork: 18.9
Poultry: 630.4
Dairy: 38.38
--
Fruits: 233.51
Veggies: 154.77
--
Wheat: 65.4
Corn: 57.8
Cotton: 1154.07",
+ "Hawaii
--
Beef: 4.0
Pork: 0.7
Poultry: 1.3
Dairy: 1.16
--
Fruits: 55.51
Veggies: 24.83
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
+ "Idaho
--
Beef: 119.8
Pork: 0.0
Poultry: 2.4
Dairy: 294.6
--
Fruits: 21.64
Veggies: 319.19
--
Wheat: 568.2
Corn: 24.0
Cotton: 0.0",
+ "Illinois
--
Beef: 53.7
Pork: 394.0
Poultry: 14.0
Dairy: 45.82
--
Fruits: 12.53
Veggies: 39.95
--
Wheat: 223.8
Corn: 2228.5
Cotton: 0.0",
+ "Indiana
--
Beef: 21.9
Pork: 341.9
Poultry: 165.6
Dairy: 89.7
--
Fruits: 12.98
Veggies: 37.89
--
Wheat: 114.0
Corn: 1123.2
Cotton: 0.0",
+ "Iowa
--
Beef: 289.8
Pork: 1895.6
Poultry: 155.6
Dairy: 107.0
--
Fruits: 3.24
Veggies: 7.1
--
Wheat: 3.1
Corn: 2529.8
Cotton: 0.0",
+ "Kansas
--
Beef: 659.3
Pork: 179.4
Poultry: 6.4
Dairy: 65.45
--
Fruits: 3.11
Veggies: 9.32
--
Wheat: 1426.5
Corn: 457.3
Cotton: 43.98",
+ "Kentucky
--
Beef: 54.8
Pork: 34.2
Poultry: 151.3
Dairy: 28.27
--
Fruits: 6.6
Veggies: 0.0
--
Wheat: 149.3
Corn: 179.1
Cotton: 0.0",
+ "Louisiana
--
Beef: 19.8
Pork: 0.8
Poultry: 77.2
Dairy: 6.02
--
Fruits: 17.83
Veggies: 17.25
--
Wheat: 78.7
Corn: 91.4
Cotton: 280.42",
+ "Maine
--
Beef: 1.4
Pork: 0.5
Poultry: 10.4
Dairy: 16.18
--
Fruits: 52.01
Veggies: 62.9
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
+ "Maryland
--
Beef: 5.6
Pork: 3.1
Poultry: 127.0
Dairy: 24.81
--
Fruits: 12.9
Veggies: 20.43
--
Wheat: 55.8
Corn: 54.1
Cotton: 0.0",
+ "Massachusetts
--
Beef: 0.6
Pork: 0.5
Poultry: 0.6
Dairy: 5.81
--
Fruits: 80.83
Veggies: 21.13
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
+ "Michigan
--
Beef: 37.7
Pork: 118.1
Poultry: 32.6
Dairy: 214.82
--
Fruits: 257.69
Veggies: 189.96
--
Wheat: 247.0
Corn: 381.5
Cotton: 0.0",
+ "Minnesota
--
Beef: 112.3
Pork: 740.4
Poultry: 189.2
Dairy: 218.05
--
Fruits: 7.91
Veggies: 120.37
--
Wheat: 538.1
Corn: 1264.3
Cotton: 0.0",
+ "Mississippi
--
Beef: 12.8
Pork: 30.4
Poultry: 370.8
Dairy: 5.45
--
Fruits: 17.04
Veggies: 27.87
--
Wheat: 102.2
Corn: 110.0
Cotton: 494.75",
+ "Missouri
--
Beef: 137.2
Pork: 277.3
Poultry: 196.1
Dairy: 34.26
--
Fruits: 13.18
Veggies: 17.9
--
Wheat: 161.7
Corn: 428.8
Cotton: 345.29",
+ "Montana
--
Beef: 105.0
Pork: 16.7
Poultry: 1.7
Dairy: 6.82
--
Fruits: 3.3
Veggies: 45.27
--
Wheat: 1198.1
Corn: 5.4
Cotton: 0.0",
+ "Nebraska
--
Beef: 762.2
Pork: 262.5
Poultry: 31.4
Dairy: 30.07
--
Fruits: 2.16
Veggies: 53.5
--
Wheat: 292.3
Corn: 1735.9
Cotton: 0.0",
+ "Nevada
--
Beef: 21.8
Pork: 0.2
Poultry: 0.0
Dairy: 16.57
--
Fruits: 1.19
Veggies: 27.93
--
Wheat: 5.4
Corn: 0.0
Cotton: 0.0",
+ "New Hampshire
--
Beef: 0.6
Pork: 0.2
Poultry: 0.8
Dairy: 7.46
--
Fruits: 7.98
Veggies: 4.5
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
+ "New Jersey
--
Beef: 0.8
Pork: 0.4
Poultry: 4.6
Dairy: 3.37
--
Fruits: 109.45
Veggies: 56.54
--
Wheat: 6.7
Corn: 10.1
Cotton: 0.0",
+ "New Mexico
--
Beef: 117.2
Pork: 0.1
Poultry: 0.3
Dairy: 191.01
--
Fruits: 101.9
Veggies: 43.88
--
Wheat: 13.9
Corn: 11.2
Cotton: 72.62",
+ "New York
--
Beef: 22.2
Pork: 5.8
Poultry: 17.7
Dairy: 331.8
--
Fruits: 202.56
Veggies: 143.37
--
Wheat: 29.9
Corn: 106.1
Cotton: 0.0",
+ "North Carolina
--
Beef: 24.8
Pork: 702.8
Poultry: 598.4
Dairy: 24.9
--
Fruits: 74.47
Veggies: 150.45
--
Wheat: 200.3
Corn: 92.2
Cotton: 470.86",
+ "North Dakota
--
Beef: 78.5
Pork: 16.1
Poultry: 0.5
Dairy: 8.14
--
Fruits: 0.25
Veggies: 130.79
--
Wheat: 1664.5
Corn: 236.1
Cotton: 0.0",
+ "Ohio
--
Beef: 36.2
Pork: 199.1
Poultry: 129.9
Dairy: 134.57
--
Fruits: 27.21
Veggies: 53.53
--
Wheat: 207.4
Corn: 535.1
Cotton: 0.0",
+ "Oklahoma
--
Beef: 337.6
Pork: 265.3
Poultry: 131.1
Dairy: 24.35
--
Fruits: 9.24
Veggies: 8.9
--
Wheat: 324.8
Corn: 27.5
Cotton: 110.54",
+ "Oregon
--
Beef: 58.8
Pork: 1.4
Poultry: 14.2
Dairy: 63.66
--
Fruits: 315.04
Veggies: 126.5
--
Wheat: 320.3
Corn: 11.7
Cotton: 0.0",
+ "Pennsylvania
--
Beef: 50.9
Pork: 91.3
Poultry: 169.8
Dairy: 280.87
--
Fruits: 89.48
Veggies: 38.26
--
Wheat: 41.0
Corn: 112.1
Cotton: 0.0",
+ "Rhode Island
--
Beef: 0.1
Pork: 0.1
Poultry: 0.2
Dairy: 0.52
--
Fruits: 2.83
Veggies: 3.02
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
+ "South Carolina
--
Beef: 15.2
Pork: 10.9
Poultry: 186.5
Dairy: 7.62
--
Fruits: 53.45
Veggies: 42.66
--
Wheat: 55.3
Corn: 32.1
Cotton: 206.1",
+ "South Dakota
--
Beef: 193.5
Pork: 160.2
Poultry: 29.3
Dairy: 46.77
--
Fruits: 0.8
Veggies: 4.06
--
Wheat: 704.5
Corn: 643.6
Cotton: 0.0",
+ "Tennessee
--
Beef: 51.1
Pork: 17.6
Poultry: 82.4
Dairy: 21.18
--
Fruits: 6.23
Veggies: 24.67
--
Wheat: 100.0
Corn: 88.8
Cotton: 363.83",
+ "Texas
--
Beef: 961.0
Pork: 42.7
Poultry: 339.2
Dairy: 240.55
--
Fruits: 99.9
Veggies: 115.23
--
Wheat: 309.7
Corn: 167.2
Cotton: 2308.76",
+ "Utah
--
Beef: 27.9
Pork: 59.0
Poultry: 23.1
Dairy: 48.6
--
Fruits: 12.34
Veggies: 6.6
--
Wheat: 42.8
Corn: 5.3
Cotton: 0.0",
+ "Vermont
--
Beef: 6.2
Pork: 0.2
Poultry: 0.9
Dairy: 65.98
--
Fruits: 8.01
Veggies: 4.05
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
+ "Virginia
--
Beef: 39.5
Pork: 16.9
Poultry: 164.7
Dairy: 47.85
--
Fruits: 36.48
Veggies: 27.25
--
Wheat: 77.5
Corn: 39.5
Cotton: 64.84",
+ "Washington
--
Beef: 59.2
Pork: 0.0
Poultry: 35.6
Dairy: 154.18
--
Fruits: 1738.57
Veggies: 363.79
--
Wheat: 786.3
Corn: 29.5
Cotton: 0.0",
+ "West Virginia
--
Beef: 12.0
Pork: 0.3
Poultry: 45.4
Dairy: 3.9
--
Fruits: 11.54
Veggies: 0.0
--
Wheat: 1.6
Corn: 3.5
Cotton: 0.0",
+ "Wisconsin
--
Beef: 107.3
Pork: 38.6
Poultry: 34.5
Dairy: 633.6
--
Fruits: 133.8
Veggies: 148.99
--
Wheat: 96.7
Corn: 460.5
Cotton: 0.0",
+ "Wyoming
--
Beef: 75.1
Pork: 33.2
Poultry: 0.1
Dairy: 2.89
--
Fruits: 0.17
Veggies: 10.23
--
Wheat: 20.7
Corn: 9.0
Cotton: 0.0"
+ ],
+ "zmin": 13.31,
+ "locations": [
+ "AL",
+ "AK",
+ "AZ",
+ "AR",
+ "CA",
+ "CO",
+ "CT",
+ "DE",
+ "FL",
+ "GA",
+ "HI",
+ "ID",
+ "IL",
+ "IN",
+ "IA",
+ "KS",
+ "KY",
+ "LA",
+ "ME",
+ "MD",
+ "MA",
+ "MI",
+ "MN",
+ "MS",
+ "MO",
+ "MT",
+ "NE",
+ "NV",
+ "NH",
+ "NJ",
+ "NM",
+ "NY",
+ "NC",
+ "ND",
+ "OH",
+ "OK",
+ "OR",
+ "PA",
+ "RI",
+ "SC",
+ "SD",
+ "TN",
+ "TX",
+ "UT",
+ "VT",
+ "VA",
+ "WA",
+ "WV",
+ "WI",
+ "WY"
+ ],
+ "colorbar": {
+ "title": { "text": "Millions USD" }
+ },
+ "type": "choropleth",
+ "z": [
+ 1390.63, 13.31, 1463.17, 3586.02, 16472.88, 1851.33, 259.62, 282.19,
+ 3764.09, 2860.84, 401.84, 2078.89, 8709.48, 5050.23, 11273.76, 4589.01,
+ 1889.15, 1914.23, 278.37, 692.75, 248.65, 3164.16, 7192.33, 2170.8,
+ 3933.42, 1718, 7114.13, 139.89, 73.06, 500.4, 751.58, 1488.9, 3806.05,
+ 3761.96, 3979.79, 1646.41, 1794.57, 1969.87, 31.59, 929.93, 3770.19,
+ 1535.13, 6648.22, 453.39, 180.14, 1146.48, 3894.81, 138.89, 3090.23,
+ 349.69
+ ],
+ "locationmode": "USA-states"
+ }
+ ],
+ "layout": {
+ "autosize": true,
+ "title": {
+ "text": "2011 US Agriculture Exports by State - Location Names
(Hover for breakdown)"
+ },
+ "showlegend": false,
+ "height": 598,
+ "width": 870,
+ "geo": {
+ "showlakes": true,
+ "scope": "usa",
+ "projection": {
+ "type": "albers usa"
+ },
+ "lakecolor": "rgb(255, 255, 255)"
+ }
+ }
+}
diff --git a/test/image/mocks/geo_choropleth-usa.json b/test/image/mocks/geo_choropleth-usa.json
index 88329cbb828..b3a2255a730 100644
--- a/test/image/mocks/geo_choropleth-usa.json
+++ b/test/image/mocks/geo_choropleth-usa.json
@@ -2,13 +2,6 @@
"data": [
{
"autocolorscale": false,
- "colorbar": {
- "title": { "text": "Millions USD" }
- },
- "locationmode": "USA-states",
- "name": "",
- "type": "choropleth",
- "zmin": 13.31,
"zmax": 16472.88,
"colorscale": [
[0, "rgb(242,240,247)"],
@@ -70,6 +63,7 @@
"Wisconsin
--
Beef: 107.3
Pork: 38.6
Poultry: 34.5
Dairy: 633.6
--
Fruits: 133.8
Veggies: 148.99
--
Wheat: 96.7
Corn: 460.5
Cotton: 0.0",
"Wyoming
--
Beef: 75.1
Pork: 33.2
Poultry: 0.1
Dairy: 2.89
--
Fruits: 0.17
Veggies: 10.23
--
Wheat: 20.7
Corn: 9.0
Cotton: 0.0"
],
+ "zmin": 13.31,
"locations": [
"AL",
"AK",
@@ -122,137 +116,10 @@
"WI",
"WY"
],
- "z": [
- 1390.63, 13.31, 1463.17, 3586.02, 16472.88, 1851.33, 259.62, 282.19,
- 3764.09, 2860.84, 401.84, 2078.89, 8709.48, 5050.23, 11273.76, 4589.01,
- 1889.15, 1914.23, 278.37, 692.75, 248.65, 3164.16, 7192.33, 2170.8,
- 3933.42, 1718, 7114.13, 139.89, 73.06, 500.4, 751.58, 1488.9, 3806.05,
- 3761.96, 3979.79, 1646.41, 1794.57, 1969.87, 31.59, 929.93, 3770.19,
- 1535.13, 6648.22, 453.39, 180.14, 1146.48, 3894.81, 138.89, 3090.23,
- 349.69
- ]
- },
- {
- "autocolorscale": false,
- "geo": "geo2",
- "locationmode": "USA-states",
- "name": "",
- "showscale": false,
+ "colorbar": {
+ "title": { "text": "Millions USD" }
+ },
"type": "choropleth",
- "zmax": 16472.88,
- "zmin": 13.31,
- "colorscale": [
- [0, "rgb(242,240,247)"],
- [0.2, "rgb(218,218,235)"],
- [0.4, "rgb(188,189,220)"],
- [0.6, "rgb(158,154,200)"],
- [0.8, "rgb(117,107,177)"],
- [1, "rgb(84,39,143)"]
- ],
- "text": [
- "Alabama
--
Beef: 34.4
Pork: 10.6
Poultry: 481.0
Dairy: 4.06
--
Fruits: 25.11
Veggies: 14.33
--
Wheat: 70.0
Corn: 34.9
Cotton: 317.61",
- "Alaska
--
Beef: 0.2
Pork: 0.1
Poultry: 0.0
Dairy: 0.19
--
Fruits: 0.0
Veggies: 1.56
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
- "Arizona
--
Beef: 71.3
Pork: 17.9
Poultry: 0.0
Dairy: 105.48
--
Fruits: 60.27
Veggies: 386.91
--
Wheat: 48.7
Corn: 7.3
Cotton: 423.95",
- "Arkansas
--
Beef: 53.2
Pork: 29.4
Poultry: 562.9
Dairy: 3.53
--
Fruits: 6.88
Veggies: 11.45
--
Wheat: 114.5
Corn: 69.5
Cotton: 665.44",
- " California
--
Beef: 228.7
Pork: 11.1
Poultry: 225.4
Dairy: 929.95
--
Fruits: 8736.4
Veggies: 2106.79
--
Wheat: 249.3
Corn: 34.6
Cotton: 1064.95",
- "Colorado
--
Beef: 261.4
Pork: 66.0
Poultry: 14.0
Dairy: 71.94
--
Fruits: 17.99
Veggies: 118.27
--
Wheat: 400.5
Corn: 183.2
Cotton: 0.0",
- "Connecticut
--
Beef: 1.1
Pork: 0.1
Poultry: 6.9
Dairy: 9.49
--
Fruits: 13.1
Veggies: 11.16
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
- "Delaware
--
Beef: 0.4
Pork: 0.6
Poultry: 114.7
Dairy: 2.3
--
Fruits: 1.53
Veggies: 20.03
--
Wheat: 22.9
Corn: 26.9
Cotton: 0.0",
- "Florida
--
Beef: 42.6
Pork: 0.9
Poultry: 56.9
Dairy: 66.31
--
Fruits: 1371.36
Veggies: 450.86
--
Wheat: 1.8
Corn: 3.5
Cotton: 78.24",
- "Georgia
--
Beef: 31.0
Pork: 18.9
Poultry: 630.4
Dairy: 38.38
--
Fruits: 233.51
Veggies: 154.77
--
Wheat: 65.4
Corn: 57.8
Cotton: 1154.07",
- "Hawaii
--
Beef: 4.0
Pork: 0.7
Poultry: 1.3
Dairy: 1.16
--
Fruits: 55.51
Veggies: 24.83
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
- "Idaho
--
Beef: 119.8
Pork: 0.0
Poultry: 2.4
Dairy: 294.6
--
Fruits: 21.64
Veggies: 319.19
--
Wheat: 568.2
Corn: 24.0
Cotton: 0.0",
- "Illinois
--
Beef: 53.7
Pork: 394.0
Poultry: 14.0
Dairy: 45.82
--
Fruits: 12.53
Veggies: 39.95
--
Wheat: 223.8
Corn: 2228.5
Cotton: 0.0",
- "Indiana
--
Beef: 21.9
Pork: 341.9
Poultry: 165.6
Dairy: 89.7
--
Fruits: 12.98
Veggies: 37.89
--
Wheat: 114.0
Corn: 1123.2
Cotton: 0.0",
- "Iowa
--
Beef: 289.8
Pork: 1895.6
Poultry: 155.6
Dairy: 107.0
--
Fruits: 3.24
Veggies: 7.1
--
Wheat: 3.1
Corn: 2529.8
Cotton: 0.0",
- "Kansas
--
Beef: 659.3
Pork: 179.4
Poultry: 6.4
Dairy: 65.45
--
Fruits: 3.11
Veggies: 9.32
--
Wheat: 1426.5
Corn: 457.3
Cotton: 43.98",
- "Kentucky
--
Beef: 54.8
Pork: 34.2
Poultry: 151.3
Dairy: 28.27
--
Fruits: 6.6
Veggies: 0.0
--
Wheat: 149.3
Corn: 179.1
Cotton: 0.0",
- "Louisiana
--
Beef: 19.8
Pork: 0.8
Poultry: 77.2
Dairy: 6.02
--
Fruits: 17.83
Veggies: 17.25
--
Wheat: 78.7
Corn: 91.4
Cotton: 280.42",
- "Maine
--
Beef: 1.4
Pork: 0.5
Poultry: 10.4
Dairy: 16.18
--
Fruits: 52.01
Veggies: 62.9
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
- "Maryland
--
Beef: 5.6
Pork: 3.1
Poultry: 127.0
Dairy: 24.81
--
Fruits: 12.9
Veggies: 20.43
--
Wheat: 55.8
Corn: 54.1
Cotton: 0.0",
- "Massachusetts
--
Beef: 0.6
Pork: 0.5
Poultry: 0.6
Dairy: 5.81
--
Fruits: 80.83
Veggies: 21.13
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
- "Michigan
--
Beef: 37.7
Pork: 118.1
Poultry: 32.6
Dairy: 214.82
--
Fruits: 257.69
Veggies: 189.96
--
Wheat: 247.0
Corn: 381.5
Cotton: 0.0",
- "Minnesota
--
Beef: 112.3
Pork: 740.4
Poultry: 189.2
Dairy: 218.05
--
Fruits: 7.91
Veggies: 120.37
--
Wheat: 538.1
Corn: 1264.3
Cotton: 0.0",
- "Mississippi
--
Beef: 12.8
Pork: 30.4
Poultry: 370.8
Dairy: 5.45
--
Fruits: 17.04
Veggies: 27.87
--
Wheat: 102.2
Corn: 110.0
Cotton: 494.75",
- "Missouri
--
Beef: 137.2
Pork: 277.3
Poultry: 196.1
Dairy: 34.26
--
Fruits: 13.18
Veggies: 17.9
--
Wheat: 161.7
Corn: 428.8
Cotton: 345.29",
- "Montana
--
Beef: 105.0
Pork: 16.7
Poultry: 1.7
Dairy: 6.82
--
Fruits: 3.3
Veggies: 45.27
--
Wheat: 1198.1
Corn: 5.4
Cotton: 0.0",
- "Nebraska
--
Beef: 762.2
Pork: 262.5
Poultry: 31.4
Dairy: 30.07
--
Fruits: 2.16
Veggies: 53.5
--
Wheat: 292.3
Corn: 1735.9
Cotton: 0.0",
- "Nevada
--
Beef: 21.8
Pork: 0.2
Poultry: 0.0
Dairy: 16.57
--
Fruits: 1.19
Veggies: 27.93
--
Wheat: 5.4
Corn: 0.0
Cotton: 0.0",
- "New Hampshire
--
Beef: 0.6
Pork: 0.2
Poultry: 0.8
Dairy: 7.46
--
Fruits: 7.98
Veggies: 4.5
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
- "New Jersey
--
Beef: 0.8
Pork: 0.4
Poultry: 4.6
Dairy: 3.37
--
Fruits: 109.45
Veggies: 56.54
--
Wheat: 6.7
Corn: 10.1
Cotton: 0.0",
- "New Mexico
--
Beef: 117.2
Pork: 0.1
Poultry: 0.3
Dairy: 191.01
--
Fruits: 101.9
Veggies: 43.88
--
Wheat: 13.9
Corn: 11.2
Cotton: 72.62",
- "New York
--
Beef: 22.2
Pork: 5.8
Poultry: 17.7
Dairy: 331.8
--
Fruits: 202.56
Veggies: 143.37
--
Wheat: 29.9
Corn: 106.1
Cotton: 0.0",
- "North Carolina
--
Beef: 24.8
Pork: 702.8
Poultry: 598.4
Dairy: 24.9
--
Fruits: 74.47
Veggies: 150.45
--
Wheat: 200.3
Corn: 92.2
Cotton: 470.86",
- "North Dakota
--
Beef: 78.5
Pork: 16.1
Poultry: 0.5
Dairy: 8.14
--
Fruits: 0.25
Veggies: 130.79
--
Wheat: 1664.5
Corn: 236.1
Cotton: 0.0",
- "Ohio
--
Beef: 36.2
Pork: 199.1
Poultry: 129.9
Dairy: 134.57
--
Fruits: 27.21
Veggies: 53.53
--
Wheat: 207.4
Corn: 535.1
Cotton: 0.0",
- "Oklahoma
--
Beef: 337.6
Pork: 265.3
Poultry: 131.1
Dairy: 24.35
--
Fruits: 9.24
Veggies: 8.9
--
Wheat: 324.8
Corn: 27.5
Cotton: 110.54",
- "Oregon
--
Beef: 58.8
Pork: 1.4
Poultry: 14.2
Dairy: 63.66
--
Fruits: 315.04
Veggies: 126.5
--
Wheat: 320.3
Corn: 11.7
Cotton: 0.0",
- "Pennsylvania
--
Beef: 50.9
Pork: 91.3
Poultry: 169.8
Dairy: 280.87
--
Fruits: 89.48
Veggies: 38.26
--
Wheat: 41.0
Corn: 112.1
Cotton: 0.0",
- "Rhode Island
--
Beef: 0.1
Pork: 0.1
Poultry: 0.2
Dairy: 0.52
--
Fruits: 2.83
Veggies: 3.02
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
- "South Carolina
--
Beef: 15.2
Pork: 10.9
Poultry: 186.5
Dairy: 7.62
--
Fruits: 53.45
Veggies: 42.66
--
Wheat: 55.3
Corn: 32.1
Cotton: 206.1",
- "South Dakota
--
Beef: 193.5
Pork: 160.2
Poultry: 29.3
Dairy: 46.77
--
Fruits: 0.8
Veggies: 4.06
--
Wheat: 704.5
Corn: 643.6
Cotton: 0.0",
- "Tennessee
--
Beef: 51.1
Pork: 17.6
Poultry: 82.4
Dairy: 21.18
--
Fruits: 6.23
Veggies: 24.67
--
Wheat: 100.0
Corn: 88.8
Cotton: 363.83",
- "Texas
--
Beef: 961.0
Pork: 42.7
Poultry: 339.2
Dairy: 240.55
--
Fruits: 99.9
Veggies: 115.23
--
Wheat: 309.7
Corn: 167.2
Cotton: 2308.76",
- "Utah
--
Beef: 27.9
Pork: 59.0
Poultry: 23.1
Dairy: 48.6
--
Fruits: 12.34
Veggies: 6.6
--
Wheat: 42.8
Corn: 5.3
Cotton: 0.0",
- "Vermont
--
Beef: 6.2
Pork: 0.2
Poultry: 0.9
Dairy: 65.98
--
Fruits: 8.01
Veggies: 4.05
--
Wheat: 0.0
Corn: 0.0
Cotton: 0.0",
- "Virginia
--
Beef: 39.5
Pork: 16.9
Poultry: 164.7
Dairy: 47.85
--
Fruits: 36.48
Veggies: 27.25
--
Wheat: 77.5
Corn: 39.5
Cotton: 64.84",
- "Washington
--
Beef: 59.2
Pork: 0.0
Poultry: 35.6
Dairy: 154.18
--
Fruits: 1738.57
Veggies: 363.79
--
Wheat: 786.3
Corn: 29.5
Cotton: 0.0",
- "West Virginia
--
Beef: 12.0
Pork: 0.3
Poultry: 45.4
Dairy: 3.9
--
Fruits: 11.54
Veggies: 0.0
--
Wheat: 1.6
Corn: 3.5
Cotton: 0.0",
- "Wisconsin
--
Beef: 107.3
Pork: 38.6
Poultry: 34.5
Dairy: 633.6
--
Fruits: 133.8
Veggies: 148.99
--
Wheat: 96.7
Corn: 460.5
Cotton: 0.0",
- "Wyoming
--
Beef: 75.1
Pork: 33.2
Poultry: 0.1
Dairy: 2.89
--
Fruits: 0.17
Veggies: 10.23
--
Wheat: 20.7
Corn: 9.0
Cotton: 0.0"
- ],
- "locations": [
- "Alabama",
- "Alaska",
- "Arizona",
- "Arkansas",
- "California",
- "Colorado",
- "Connecticut",
- "Delaware",
- "Florida",
- "Georgia",
- "Hawaii",
- "Idaho",
- "Illinois",
- "Indiana",
- "Iowa",
- "Kansas",
- "Kentucky",
- "Louisiana",
- "Maine",
- "Maryland",
- "Massachusetts",
- "Michigan",
- "Minnesota",
- "Mississippi",
- "Missouri",
- "Montana",
- "Nebraska",
- "Nevada",
- "New Hampshire",
- "New Jersey",
- "New Mexico",
- "New York",
- "North Carolina",
- "North Dakota",
- "Ohio",
- "Oklahoma",
- "Oregon",
- "Pennsylvania",
- "Rhode Island",
- "South Carolina",
- "South Dakota",
- "Tennessee",
- "Texas",
- "Utah",
- "Vermont",
- "Virginia",
- "Washington",
- "West Virginia",
- "Wisconsin",
- "Wyoming"
- ],
"z": [
1390.63, 13.31, 1463.17, 3586.02, 16472.88, 1851.33, 259.62, 282.19,
3764.09, 2860.84, 401.84, 2078.89, 8709.48, 5050.23, 11273.76, 4589.01,
@@ -261,16 +128,17 @@
3761.96, 3979.79, 1646.41, 1794.57, 1969.87, 31.59, 929.93, 3770.19,
1535.13, 6648.22, 453.39, 180.14, 1146.48, 3894.81, 138.89, 3090.23,
349.69
- ]
+ ],
+ "locationmode": "USA-states"
}
],
"layout": {
"autosize": true,
"title": {
- "text": "2011 US Agriculture Exports by State
(Hover for breakdown)"
+ "text": "2011 US Agriculture Exports by State - Two Letter Abbreviations
(Hover for breakdown)"
},
"showlegend": false,
- "height": 1200,
+ "height": 598,
"width": 870,
"geo": {
"showlakes": true,
@@ -278,37 +146,7 @@
"projection": {
"type": "albers usa"
},
- "lakecolor": "rgb(255, 255, 255)",
- "domain": { "y": [0.55, 1] }
- },
- "geo2": {
- "showlakes": true,
- "scope": "usa",
- "projection": {
- "type": "albers usa"
- },
- "lakecolor": "rgb(255, 255, 255)",
- "domain": { "y": [0, 0.45] }
- },
- "annotations": [
- {
- "text": "Lookup by two letter location abbreviation",
- "x": 0.5,
- "y": 0.53,
- "xref": "paper",
- "yref": "paper",
- "showarrow": false,
- "font": { "size": 16 }
- },
- {
- "text": "Lookup by full location name",
- "x": 0.5,
- "y": -0.02,
- "xref": "paper",
- "yref": "paper",
- "showarrow": false,
- "font": { "size": 16 }
- }
- ]
+ "lakecolor": "rgb(255, 255, 255)"
+ }
}
}
diff --git a/test/image/mocks/zz-label-spacing.json b/test/image/mocks/label-spacing.json
similarity index 100%
rename from test/image/mocks/zz-label-spacing.json
rename to test/image/mocks/label-spacing.json
diff --git a/test/image/mocks/zz-legend-vertical-maxheight.json b/test/image/mocks/legend-vertical-maxheight.json
similarity index 100%
rename from test/image/mocks/zz-legend-vertical-maxheight.json
rename to test/image/mocks/legend-vertical-maxheight.json
diff --git a/test/image/mocks/zz-minorloglabels.json b/test/image/mocks/minorloglabels.json
similarity index 100%
rename from test/image/mocks/zz-minorloglabels.json
rename to test/image/mocks/minorloglabels.json
diff --git a/test/image/mocks/zz-pattern_bars-path.json b/test/image/mocks/pattern_bars-path.json
similarity index 100%
rename from test/image/mocks/zz-pattern_bars-path.json
rename to test/image/mocks/pattern_bars-path.json
diff --git a/test/image/mocks/zz-pie-slice-legend.json b/test/image/mocks/pie-slice-legend.json
similarity index 100%
rename from test/image/mocks/zz-pie-slice-legend.json
rename to test/image/mocks/pie-slice-legend.json
diff --git a/test/image/mocks/zz-pie-slice-legend2.json b/test/image/mocks/pie-slice-legend2.json
similarity index 100%
rename from test/image/mocks/zz-pie-slice-legend2.json
rename to test/image/mocks/pie-slice-legend2.json
diff --git a/test/image/mocks/zz-pie-slice-legend3.json b/test/image/mocks/pie-slice-legend3.json
similarity index 100%
rename from test/image/mocks/zz-pie-slice-legend3.json
rename to test/image/mocks/pie-slice-legend3.json
diff --git a/test/image/mocks/zz-scatter_marker_line_dash.json b/test/image/mocks/scatter_marker_line_dash.json
similarity index 100%
rename from test/image/mocks/zz-scatter_marker_line_dash.json
rename to test/image/mocks/scatter_marker_line_dash.json
diff --git a/test/image/mocks/zz_shapes_clipping_double_digit_subplots.json b/test/image/mocks/shapes_clipping_double_digit_subplots.json
similarity index 100%
rename from test/image/mocks/zz_shapes_clipping_double_digit_subplots.json
rename to test/image/mocks/shapes_clipping_double_digit_subplots.json
diff --git a/test/image/mocks/zz-tickson_boundaries_ticklabelposition.json b/test/image/mocks/tickson_boundaries_ticklabelposition.json
similarity index 100%
rename from test/image/mocks/zz-tickson_boundaries_ticklabelposition.json
rename to test/image/mocks/tickson_boundaries_ticklabelposition.json
diff --git a/test/image/mocks/zzz_zerolinelayer_above.json b/test/image/mocks/zerolinelayer_above.json
similarity index 100%
rename from test/image/mocks/zzz_zerolinelayer_above.json
rename to test/image/mocks/zerolinelayer_above.json
diff --git a/test/image/mocks/zzz_zerolinelayer_below.json b/test/image/mocks/zerolinelayer_below.json
similarity index 100%
rename from test/image/mocks/zzz_zerolinelayer_below.json
rename to test/image/mocks/zerolinelayer_below.json
diff --git a/test/jasmine/karma.conf.js b/test/jasmine/karma.conf.js
index 2c7f075c3ee..a01b234c932 100644
--- a/test/jasmine/karma.conf.js
+++ b/test/jasmine/karma.conf.js
@@ -38,7 +38,7 @@ var argv = minimist(process.argv.slice(4), {
failFast: false,
doNotFailOnEmptyTestSuite: false,
width: '1035',
- height: '617',
+ height: isCI ? '800' : '617',
verbose: false,
showSkipped: isCI
}
@@ -261,12 +261,6 @@ func.defaultConfig = {
'--touch-events',
'--window-size=' + argv.width + ',' + argv.height,
isCI ? '--ignore-gpu-blocklist' : '',
- // The following two flags are needed only for the "NoCI" tests which run in GitHub Actions.
- // The first is needed because the GPU is not available to those runners,
- // and therefore we need to use SwiftShader instead (which is disabled by default as of Jan 2026,
- // hence the need for a flag to manually enable it).
- // The second flag is needed because the Chrome browser installed by the CI job runner
- // fails without it.
isCI && process.env.GITHUB_ACTIONS ? '--enable-unsafe-swiftshader' : '',
isCI && process.env.GITHUB_ACTIONS ? '--no-sandbox' : '',
isBundleTest && basename(testFileGlob) === 'no_webgl' ? '--disable-webgl' : ''