diff --git a/src/traces/carpet/attributes.js b/src/traces/carpet/attributes.js index d3fa8ce85b1..9f29e062aa4 100644 --- a/src/traces/carpet/attributes.js +++ b/src/traces/carpet/attributes.js @@ -28,7 +28,7 @@ module.exports = { editType: 'calc', description: [ 'An identifier for this carpet, so that `scattercarpet` and', - '`scattercontour` traces can specify a carpet plot on which', + '`contourcarpet` traces can specify a carpet plot on which', 'they lie' ].join(' ') }, diff --git a/src/traces/carpet/index.js b/src/traces/carpet/index.js index 9b078ac791f..9038fec2ced 100644 --- a/src/traces/carpet/index.js +++ b/src/traces/carpet/index.js @@ -19,7 +19,7 @@ module.exports = { moduleType: 'trace', name: 'carpet', basePlotModule: require('../../plots/cartesian'), - categories: ['cartesian', 'svg', 'carpet', 'carpetAxis', 'notLegendIsolatable', 'noMultiCategory'], + categories: ['cartesian', 'svg', 'carpet', 'carpetAxis', 'notLegendIsolatable', 'noMultiCategory', 'noHover'], meta: { description: [ 'The data describing carpet axis layout is set in `y` and (optionally)', diff --git a/src/traces/contour/close_boundaries.js b/src/traces/contour/close_boundaries.js index 4a3b83fa2d6..601d8c24ad2 100644 --- a/src/traces/contour/close_boundaries.js +++ b/src/traces/contour/close_boundaries.js @@ -8,57 +8,80 @@ 'use strict'; -module.exports = function(pathinfo, operation, perimeter, trace) { - // Abandon all hope, ye who enter here. - var i, v1, v2; +module.exports = function(pathinfo, contours) { var pi0 = pathinfo[0]; - var na = pi0.x.length; - var nb = pi0.y.length; var z = pi0.z; - var contours = trace.contours; + var i; - var boundaryMax = -Infinity; - var boundaryMin = Infinity; + switch(contours.type) { + case 'levels': + // Why (just) use z[0][0] and z[0][1]? + // + // N.B. using boundaryMin instead of edgeVal2 here makes the + // `contour_scatter` mock fail + var edgeVal2 = Math.min(z[0][0], z[0][1]); - for(i = 0; i < nb; i++) { - boundaryMin = Math.min(boundaryMin, z[i][0]); - boundaryMin = Math.min(boundaryMin, z[i][na - 1]); - boundaryMax = Math.max(boundaryMax, z[i][0]); - boundaryMax = Math.max(boundaryMax, z[i][na - 1]); - } + for(i = 0; i < pathinfo.length; i++) { + var pi = pathinfo[i]; + pi.prefixBoundary = !pi.edgepaths.length && + (edgeVal2 > pi.level || pi.starts.length && edgeVal2 === pi.level); + } + break; + case 'constraint': + // after convertToConstraints, pathinfo has length=0 + pi0.prefixBoundary = false; - for(i = 1; i < na - 1; i++) { - boundaryMin = Math.min(boundaryMin, z[0][i]); - boundaryMin = Math.min(boundaryMin, z[nb - 1][i]); - boundaryMax = Math.max(boundaryMax, z[0][i]); - boundaryMax = Math.max(boundaryMax, z[nb - 1][i]); - } + // joinAllPaths does enough already when edgepaths are present + if(pi0.edgepaths.length) return; - pi0.prefixBoundary = false; + var na = pi0.x.length; + var nb = pi0.y.length; + var boundaryMax = -Infinity; + var boundaryMin = Infinity; - switch(operation) { - case '>': - if(contours.value > boundaryMax) { - pi0.prefixBoundary = true; - } - break; - case '<': - if(contours.value < boundaryMin) { - pi0.prefixBoundary = true; + for(i = 0; i < nb; i++) { + boundaryMin = Math.min(boundaryMin, z[i][0]); + boundaryMin = Math.min(boundaryMin, z[i][na - 1]); + boundaryMax = Math.max(boundaryMax, z[i][0]); + boundaryMax = Math.max(boundaryMax, z[i][na - 1]); } - break; - case '[]': - v1 = Math.min.apply(null, contours.value); - v2 = Math.max.apply(null, contours.value); - if(v2 < boundaryMin || v1 > boundaryMax) { - pi0.prefixBoundary = true; + for(i = 1; i < na - 1; i++) { + boundaryMin = Math.min(boundaryMin, z[0][i]); + boundaryMin = Math.min(boundaryMin, z[nb - 1][i]); + boundaryMax = Math.max(boundaryMax, z[0][i]); + boundaryMax = Math.max(boundaryMax, z[nb - 1][i]); } - break; - case '][': - v1 = Math.min.apply(null, contours.value); - v2 = Math.max.apply(null, contours.value); - if(v1 < boundaryMin && v2 > boundaryMax) { - pi0.prefixBoundary = true; + + var contoursValue = contours.value; + var v1, v2; + + switch(contours._operation) { + case '>': + if(contoursValue > boundaryMax) { + pi0.prefixBoundary = true; + } + break; + case '<': + if(contoursValue < boundaryMin || + (pi0.starts.length && contoursValue === boundaryMin)) { + pi0.prefixBoundary = true; + } + break; + case '[]': + v1 = Math.min(contoursValue[0], contoursValue[1]); + v2 = Math.max(contoursValue[0], contoursValue[1]); + if(v2 < boundaryMin || v1 > boundaryMax || + (pi0.starts.length && v2 === boundaryMin)) { + pi0.prefixBoundary = true; + } + break; + case '][': + v1 = Math.min(contoursValue[0], contoursValue[1]); + v2 = Math.max(contoursValue[0], contoursValue[1]); + if(v1 < boundaryMin && v2 > boundaryMax) { + pi0.prefixBoundary = true; + } + break; } break; } diff --git a/src/traces/contour/convert_to_constraints.js b/src/traces/contour/convert_to_constraints.js index cf44957b9cc..418f10b5575 100644 --- a/src/traces/contour/convert_to_constraints.js +++ b/src/traces/contour/convert_to_constraints.js @@ -14,6 +14,8 @@ var Lib = require('../../lib'); // need weird range loops and flipped contours instead of the usual format. This function // does some weird manipulation of the extracted pathinfo data such that it magically // draws contours correctly *as* constraints. +// +// ** I do not know which "weird range loops" the comment above is referring to. module.exports = function(pathinfo, operation) { var i, pi0, pi1; @@ -29,18 +31,20 @@ module.exports = function(pathinfo, operation) { Lib.warn('Contour data invalid for the specified inequality operation.'); } - // In this case there should be exactly two contour levels in pathinfo. We - // simply concatenate the info into one pathinfo and flip all of the data - // in one. This will draw the contour as closed. + // In this case there should be exactly one contour levels in pathinfo. + // We flip all of the data. This will draw the contour as closed. pi0 = pathinfo[0]; for(i = 0; i < pi0.edgepaths.length; i++) { pi0.edgepaths[i] = op0(pi0.edgepaths[i]); } - for(i = 0; i < pi0.paths.length; i++) { pi0.paths[i] = op0(pi0.paths[i]); } + for(i = 0; i < pi0.starts.length; i++) { + pi0.starts[i] = op0(pi0.starts[i]); + } + return pathinfo; case '][': var tmp = op0; @@ -54,19 +58,22 @@ module.exports = function(pathinfo, operation) { Lib.warn('Contour data invalid for the specified inequality range operation.'); } - // In this case there should be exactly two contour levels in pathinfo. We - // simply concatenate the info into one pathinfo and flip all of the data - // in one. This will draw the contour as closed. + // In this case there should be exactly two contour levels in pathinfo. + // - We concatenate the info into one pathinfo. + // - We must also flip all of the data in the `[]` case. + // This will draw the contours as closed. pi0 = copyPathinfo(pathinfo[0]); pi1 = copyPathinfo(pathinfo[1]); for(i = 0; i < pi0.edgepaths.length; i++) { pi0.edgepaths[i] = op0(pi0.edgepaths[i]); } - for(i = 0; i < pi0.paths.length; i++) { pi0.paths[i] = op0(pi0.paths[i]); } + for(i = 0; i < pi0.starts.length; i++) { + pi0.starts[i] = op0(pi0.starts[i]); + } while(pi1.edgepaths.length) { pi0.edgepaths.push(op1(pi1.edgepaths.shift())); @@ -74,6 +81,10 @@ module.exports = function(pathinfo, operation) { while(pi1.paths.length) { pi0.paths.push(op1(pi1.paths.shift())); } + while(pi1.starts.length) { + pi0.starts.push(op1(pi1.starts.shift())); + } + return [pi0]; } }; @@ -81,6 +92,7 @@ module.exports = function(pathinfo, operation) { function copyPathinfo(pi) { return Lib.extendFlat({}, pi, { edgepaths: Lib.extendDeep([], pi.edgepaths), - paths: Lib.extendDeep([], pi.paths) + paths: Lib.extendDeep([], pi.paths), + starts: Lib.extendDeep([], pi.starts) }); } diff --git a/src/traces/contour/find_all_paths.js b/src/traces/contour/find_all_paths.js index f6104f28b6f..481781924f3 100644 --- a/src/traces/contour/find_all_paths.js +++ b/src/traces/contour/find_all_paths.js @@ -53,15 +53,15 @@ function ptDist(pt1, pt2) { } function makePath(pi, loc, edgeflag, xtol, ytol) { - var startLocStr = loc.join(','); - var locStr = startLocStr; + var locStr = loc.join(','); var mi = pi.crossings[locStr]; - var marchStep = startStep(mi, edgeflag, loc); + var marchStep = getStartStep(mi, edgeflag, loc); // start by going backward a half step and finding the crossing point var pts = [getInterpPx(pi, loc, [-marchStep[0], -marchStep[1]])]; - var startStepStr = marchStep.join(','); var m = pi.z.length; var n = pi.z[0].length; + var startLoc = loc.slice(); + var startStep = marchStep.slice(); var cnt; // now follow the path @@ -83,14 +83,16 @@ function makePath(pi, loc, edgeflag, xtol, ytol) { pts.push(getInterpPx(pi, loc, marchStep)); loc[0] += marchStep[0]; loc[1] += marchStep[1]; + locStr = loc.join(','); // don't include the same point multiple times if(equalPts(pts[pts.length - 1], pts[pts.length - 2], xtol, ytol)) pts.pop(); - locStr = loc.join(','); var atEdge = (marchStep[0] && (loc[0] < 0 || loc[0] > n - 2)) || (marchStep[1] && (loc[1] < 0 || loc[1] > m - 2)); - var closedLoop = (locStr === startLocStr) && (marchStep.join(',') === startStepStr); + + var closedLoop = loc[0] === startLoc[0] && loc[1] === startLoc[1] && + marchStep[0] === startStep[0] && marchStep[1] === startStep[1]; // have we completed a loop, or reached an edge? if((closedLoop) || (edgeflag && atEdge)) break; @@ -184,7 +186,7 @@ function makePath(pi, loc, edgeflag, xtol, ytol) { } else { if(!edgeflag) { Lib.log('Unclosed interior contour?', - pi.level, startLocStr, pts.join('L')); + pi.level, startLoc.join(','), pts.join('L')); } // edge path - does it start where an existing edge path ends, or vice versa? @@ -234,7 +236,7 @@ function makePath(pi, loc, edgeflag, xtol, ytol) { // special function to get the marching step of the // first point in the path (leading to loc) -function startStep(mi, edgeflag, loc) { +function getStartStep(mi, edgeflag, loc) { var dx = 0; var dy = 0; if(mi > 20 && edgeflag) { diff --git a/src/traces/contour/plot.js b/src/traces/contour/plot.js index fc09e557312..1db57c67c0d 100644 --- a/src/traces/contour/plot.js +++ b/src/traces/contour/plot.js @@ -63,8 +63,8 @@ exports.plot = function plot(gd, plotinfo, cdcontours, contourLayer) { var fillPathinfo = pathinfo; if(contours.type === 'constraint') { + // N.B. this also mutates pathinfo fillPathinfo = convertToConstraints(pathinfo, contours._operation); - closeBoundaries(fillPathinfo, contours._operation, perimeter, trace); } // draw everything @@ -88,10 +88,17 @@ function makeBackground(plotgroup, perimeter, contours) { } function makeFills(plotgroup, pathinfo, perimeter, contours) { + var hasFills = contours.coloring === 'fill' || (contours.type === 'constraint' && contours._operation !== '='); + var boundaryPath = 'M' + perimeter.join('L') + 'Z'; + + // fills prefixBoundary in pathinfo items + if(hasFills) { + closeBoundaries(pathinfo, contours); + } + var fillgroup = Lib.ensureSingle(plotgroup, 'g', 'contourfill'); - var fillitems = fillgroup.selectAll('path') - .data(contours.coloring === 'fill' || (contours.type === 'constraint' && contours._operation !== '=') ? pathinfo : []); + var fillitems = fillgroup.selectAll('path').data(hasFills ? pathinfo : []); fillitems.enter().append('path'); fillitems.exit().remove(); fillitems.each(function(pi) { @@ -100,30 +107,21 @@ function makeFills(plotgroup, pathinfo, perimeter, contours) { // if the whole perimeter is above this level, start with a path // enclosing the whole thing. With all that, the parity should mean // that we always fill everything above the contour, nothing below - var fullpath = joinAllPaths(pi, perimeter); + var fullpath = (pi.prefixBoundary ? boundaryPath : '') + + joinAllPaths(pi, perimeter); - if(!fullpath) d3.select(this).remove(); - else d3.select(this).attr('d', fullpath).style('stroke', 'none'); + if(!fullpath) { + d3.select(this).remove(); + } else { + d3.select(this) + .attr('d', fullpath) + .style('stroke', 'none'); + } }); } -function initFullPath(pi, perimeter) { - var prefixBoundary = pi.prefixBoundary; - if(prefixBoundary === undefined) { - var edgeVal2 = Math.min(pi.z[0][0], pi.z[0][1]); - prefixBoundary = (!pi.edgepaths.length && edgeVal2 > pi.level); - } - - if(prefixBoundary) { - // TODO: why does ^^ not work for constraints? - // pi.prefixBoundary gets set by closeBoundaries - return 'M' + perimeter.join('L') + 'Z'; - } - return ''; -} - function joinAllPaths(pi, perimeter) { - var fullpath = initFullPath(pi, perimeter); + var fullpath = ''; var i = 0; var startsleft = pi.edgepaths.map(function(v, i) { return i; }); var newloop = true; @@ -612,17 +610,18 @@ exports.drawLabels = function(labelGroup, labelData, gd, lineClip, labelClipPath }; function clipGaps(plotGroup, plotinfo, gd, cd0, perimeter) { + var trace = cd0.trace; var clips = gd._fullLayout._clips; - var clipId = 'clip' + cd0.trace.uid; + var clipId = 'clip' + trace.uid; var clipPath = clips.selectAll('#' + clipId) - .data(cd0.trace.connectgaps ? [] : [0]); + .data(trace.connectgaps ? [] : [0]); clipPath.enter().append('clipPath') .classed('contourclip', true) .attr('id', clipId); clipPath.exit().remove(); - if(cd0.trace.connectgaps === false) { + if(trace.connectgaps === false) { var clipPathInfo = { // fraction of the way from missing to present point // to draw the boundary. @@ -644,10 +643,13 @@ function clipGaps(plotGroup, plotinfo, gd, cd0, perimeter) { makeCrossings([clipPathInfo]); findAllPaths([clipPathInfo]); - var fullpath = joinAllPaths(clipPathInfo, perimeter); + closeBoundaries([clipPathInfo], {type: 'levels'}); var path = Lib.ensureSingle(clipPath, 'path', ''); - path.attr('d', fullpath); + path.attr('d', + (clipPathInfo.prefixBoundary ? 'M' + perimeter.join('L') + 'Z' : '') + + joinAllPaths(clipPathInfo, perimeter) + ); } else clipId = null; Drawing.setClipUrl(plotGroup, clipId, gd); diff --git a/src/traces/contourcarpet/index.js b/src/traces/contourcarpet/index.js index 850ef1dfa20..6d74e79806f 100644 --- a/src/traces/contourcarpet/index.js +++ b/src/traces/contourcarpet/index.js @@ -19,7 +19,7 @@ module.exports = { moduleType: 'trace', name: 'contourcarpet', basePlotModule: require('../../plots/cartesian'), - categories: ['cartesian', 'svg', 'carpet', 'contour', 'symbols', 'showLegend', 'hasLines', 'carpetDependent'], + categories: ['cartesian', 'svg', 'carpet', 'contour', 'symbols', 'showLegend', 'hasLines', 'carpetDependent', 'noHover'], meta: { hrName: 'contour_carpet', description: [ diff --git a/src/traces/contourcarpet/join_all_paths.js b/src/traces/contourcarpet/join_all_paths.js deleted file mode 100644 index 6aa1653cde9..00000000000 --- a/src/traces/contourcarpet/join_all_paths.js +++ /dev/null @@ -1,132 +0,0 @@ -/** -* Copyright 2012-2019, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ - -'use strict'; - -var Drawing = require('../../components/drawing'); -var axisAlignedLine = require('../carpet/axis_aligned_line'); -var Lib = require('../../lib'); - -module.exports = function joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya) { - var i; - var fullpath = ''; - - var startsleft = pi.edgepaths.map(function(v, i) { return i; }); - var newloop = true; - var endpt, newendpt, cnt, nexti, possiblei, addpath; - - var atol = Math.abs(perimeter[0][0] - perimeter[2][0]) * 1e-4; - var btol = Math.abs(perimeter[0][1] - perimeter[2][1]) * 1e-4; - - function istop(pt) { return Math.abs(pt[1] - perimeter[0][1]) < btol; } - function isbottom(pt) { return Math.abs(pt[1] - perimeter[2][1]) < btol; } - function isleft(pt) { return Math.abs(pt[0] - perimeter[0][0]) < atol; } - function isright(pt) { return Math.abs(pt[0] - perimeter[2][0]) < atol; } - - function pathto(pt0, pt1) { - var i, j, segments, axis; - var path = ''; - - if((istop(pt0) && !isright(pt0)) || (isbottom(pt0) && !isleft(pt0))) { - axis = carpet.aaxis; - segments = axisAlignedLine(carpet, carpetcd, [pt0[0], pt1[0]], 0.5 * (pt0[1] + pt1[1])); - } else { - axis = carpet.baxis; - segments = axisAlignedLine(carpet, carpetcd, 0.5 * (pt0[0] + pt1[0]), [pt0[1], pt1[1]]); - } - - for(i = 1; i < segments.length; i++) { - path += axis.smoothing ? 'C' : 'L'; - for(j = 0; j < segments[i].length; j++) { - var pt = segments[i][j]; - path += [xa.c2p(pt[0]), ya.c2p(pt[1])] + ' '; - } - } - - return path; - } - - i = 0; - endpt = null; - while(startsleft.length) { - var startpt = pi.edgepaths[i][0]; - - if(endpt) { - fullpath += pathto(endpt, startpt); - } - - addpath = Drawing.smoothopen(pi.edgepaths[i].map(ab2p), pi.smoothing); - fullpath += newloop ? addpath : addpath.replace(/^M/, 'L'); - startsleft.splice(startsleft.indexOf(i), 1); - endpt = pi.edgepaths[i][pi.edgepaths[i].length - 1]; - nexti = -1; - - // now loop through sides, moving our endpoint until we find a new start - for(cnt = 0; cnt < 4; cnt++) { // just to prevent infinite loops - if(!endpt) { - Lib.log('Missing end?', i, pi); - break; - } - - if(istop(endpt) && !isright(endpt)) { - newendpt = perimeter[1]; // left top ---> right top - } else if(isleft(endpt)) { - newendpt = perimeter[0]; // left bottom ---> left top - } else if(isbottom(endpt)) { - newendpt = perimeter[3]; // right bottom - } else if(isright(endpt)) { - newendpt = perimeter[2]; // left bottom - } - - for(possiblei = 0; possiblei < pi.edgepaths.length; possiblei++) { - var ptNew = pi.edgepaths[possiblei][0]; - // is ptNew on the (horz. or vert.) segment from endpt to newendpt? - if(Math.abs(endpt[0] - newendpt[0]) < atol) { - if(Math.abs(endpt[0] - ptNew[0]) < atol && (ptNew[1] - endpt[1]) * (newendpt[1] - ptNew[1]) >= 0) { - newendpt = ptNew; - nexti = possiblei; - } - } else if(Math.abs(endpt[1] - newendpt[1]) < btol) { - if(Math.abs(endpt[1] - ptNew[1]) < btol && (ptNew[0] - endpt[0]) * (newendpt[0] - ptNew[0]) >= 0) { - newendpt = ptNew; - nexti = possiblei; - } - } else { - Lib.log('endpt to newendpt is not vert. or horz.', endpt, newendpt, ptNew); - } - } - - if(nexti >= 0) break; - fullpath += pathto(endpt, newendpt); - endpt = newendpt; - } - - if(nexti === pi.edgepaths.length) { - Lib.log('unclosed perimeter path'); - break; - } - - i = nexti; - - // if we closed back on a loop we already included, - // close it and start a new loop - newloop = (startsleft.indexOf(i) === -1); - if(newloop) { - i = startsleft[0]; - fullpath += pathto(endpt, newendpt) + 'Z'; - endpt = null; - } - } - - // finally add the interior paths - for(i = 0; i < pi.paths.length; i++) { - fullpath += Drawing.smoothclosed(pi.paths[i].map(ab2p), pi.smoothing); - } - - return fullpath; -}; diff --git a/src/traces/contourcarpet/map_pathinfo.js b/src/traces/contourcarpet/map_pathinfo.js deleted file mode 100644 index 16278d1c364..00000000000 --- a/src/traces/contourcarpet/map_pathinfo.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* Copyright 2012-2019, Plotly, Inc. -* All rights reserved. -* -* This source code is licensed under the MIT license found in the -* LICENSE file in the root directory of this source tree. -*/ - -'use strict'; - -module.exports = function mapPathinfo(pathinfo, map) { - var i, j, k, pi, pedgepaths, ppaths, pedgepath, ppath, path; - - for(i = 0; i < pathinfo.length; i++) { - pi = pathinfo[i]; - pedgepaths = pi.pedgepaths = []; - ppaths = pi.ppaths = []; - for(j = 0; j < pi.edgepaths.length; j++) { - path = pi.edgepaths[j]; - pedgepath = []; - for(k = 0; k < path.length; k++) { - pedgepath[k] = map(path[k]); - } - pedgepaths.push(pedgepath); - } - for(j = 0; j < pi.paths.length; j++) { - path = pi.paths[j]; - ppath = []; - for(k = 0; k < path.length; k++) { - ppath[k] = map(path[k]); - } - ppaths.push(ppath); - } - } -}; diff --git a/src/traces/contourcarpet/plot.js b/src/traces/contourcarpet/plot.js index 97b9813d7c5..72b93ead062 100644 --- a/src/traces/contourcarpet/plot.js +++ b/src/traces/contourcarpet/plot.js @@ -19,11 +19,10 @@ var findAllPaths = require('../contour/find_all_paths'); var contourPlot = require('../contour/plot'); var constants = require('../contour/constants'); var convertToConstraints = require('../contour/convert_to_constraints'); -var joinAllPaths = require('./join_all_paths'); var emptyPathinfo = require('../contour/empty_pathinfo'); -var mapPathinfo = require('./map_pathinfo'); -var lookupCarpet = require('../carpet/lookup_carpetid'); var closeBoundaries = require('../contour/close_boundaries'); +var lookupCarpet = require('../carpet/lookup_carpetid'); +var axisAlignedLine = require('../carpet/axis_aligned_line'); module.exports = function plot(gd, plotinfo, cdcontours, contourcarpetLayer) { var xa = plotinfo.xaxis; @@ -78,7 +77,6 @@ module.exports = function plot(gd, plotinfo, cdcontours, contourcarpetLayer) { var fillPathinfo = pathinfo; if(contours.type === 'constraint') { fillPathinfo = convertToConstraints(pathinfo, operation); - closeBoundaries(fillPathinfo, operation, perimeter, trace); } // Map the paths in a/b coordinates to pixel coordinates: @@ -117,6 +115,32 @@ module.exports = function plot(gd, plotinfo, cdcontours, contourcarpetLayer) { }); }; +function mapPathinfo(pathinfo, map) { + var i, j, k, pi, pedgepaths, ppaths, pedgepath, ppath, path; + + for(i = 0; i < pathinfo.length; i++) { + pi = pathinfo[i]; + pedgepaths = pi.pedgepaths = []; + ppaths = pi.ppaths = []; + for(j = 0; j < pi.edgepaths.length; j++) { + path = pi.edgepaths[j]; + pedgepath = []; + for(k = 0; k < path.length; k++) { + pedgepath[k] = map(path[k]); + } + pedgepaths.push(pedgepath); + } + for(j = 0; j < pi.paths.length; j++) { + path = pi.paths[j]; + ppath = []; + for(k = 0; k < path.length; k++) { + ppath[k] = map(path[k]); + } + ppaths.push(ppath); + } + } +} + function makeLinesAndLabels(plotgroup, pathinfo, gd, cd0, contours, plotinfo, carpet) { var lineContainer = Lib.ensureSingle(plotgroup, 'g', 'contourlines'); var showLines = contours.showlines !== false; @@ -303,10 +327,15 @@ function makeBackground(plotgroup, clipsegments, xaxis, yaxis, isConstraint, col } function makeFills(trace, plotgroup, xa, ya, pathinfo, perimeter, ab2p, carpet, carpetcd, coloring, boundaryPath) { - var fillgroup = Lib.ensureSingle(plotgroup, 'g', 'contourfill'); + var hasFills = coloring === 'fill'; - var fillitems = fillgroup.selectAll('path') - .data(coloring === 'fill' ? pathinfo : []); + // fills prefixBoundary in pathinfo items + if(hasFills) { + closeBoundaries(pathinfo, trace.contours); + } + + var fillgroup = Lib.ensureSingle(plotgroup, 'g', 'contourfill'); + var fillitems = fillgroup.selectAll('path').data(hasFills ? pathinfo : []); fillitems.enter().append('path'); fillitems.exit().remove(); fillitems.each(function(pi) { @@ -315,11 +344,8 @@ function makeFills(trace, plotgroup, xa, ya, pathinfo, perimeter, ab2p, carpet, // if the whole perimeter is above this level, start with a path // enclosing the whole thing. With all that, the parity should mean // that we always fill everything above the contour, nothing below - var fullpath = joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya); - - if(pi.prefixBoundary) { - fullpath = boundaryPath + fullpath; - } + var fullpath = (pi.prefixBoundary ? boundaryPath : '') + + joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya); if(!fullpath) { d3.select(this).remove(); @@ -330,3 +356,124 @@ function makeFills(trace, plotgroup, xa, ya, pathinfo, perimeter, ab2p, carpet, } }); } + +function joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya) { + var i; + var fullpath = ''; + + var startsleft = pi.edgepaths.map(function(v, i) { return i; }); + var newloop = true; + var endpt, newendpt, cnt, nexti, possiblei, addpath; + + var atol = Math.abs(perimeter[0][0] - perimeter[2][0]) * 1e-4; + var btol = Math.abs(perimeter[0][1] - perimeter[2][1]) * 1e-4; + + function istop(pt) { return Math.abs(pt[1] - perimeter[0][1]) < btol; } + function isbottom(pt) { return Math.abs(pt[1] - perimeter[2][1]) < btol; } + function isleft(pt) { return Math.abs(pt[0] - perimeter[0][0]) < atol; } + function isright(pt) { return Math.abs(pt[0] - perimeter[2][0]) < atol; } + + function pathto(pt0, pt1) { + var i, j, segments, axis; + var path = ''; + + if((istop(pt0) && !isright(pt0)) || (isbottom(pt0) && !isleft(pt0))) { + axis = carpet.aaxis; + segments = axisAlignedLine(carpet, carpetcd, [pt0[0], pt1[0]], 0.5 * (pt0[1] + pt1[1])); + } else { + axis = carpet.baxis; + segments = axisAlignedLine(carpet, carpetcd, 0.5 * (pt0[0] + pt1[0]), [pt0[1], pt1[1]]); + } + + for(i = 1; i < segments.length; i++) { + path += axis.smoothing ? 'C' : 'L'; + for(j = 0; j < segments[i].length; j++) { + var pt = segments[i][j]; + path += [xa.c2p(pt[0]), ya.c2p(pt[1])] + ' '; + } + } + + return path; + } + + i = 0; + endpt = null; + while(startsleft.length) { + var startpt = pi.edgepaths[i][0]; + + if(endpt) { + fullpath += pathto(endpt, startpt); + } + + addpath = Drawing.smoothopen(pi.edgepaths[i].map(ab2p), pi.smoothing); + fullpath += newloop ? addpath : addpath.replace(/^M/, 'L'); + startsleft.splice(startsleft.indexOf(i), 1); + endpt = pi.edgepaths[i][pi.edgepaths[i].length - 1]; + nexti = -1; + + // now loop through sides, moving our endpoint until we find a new start + for(cnt = 0; cnt < 4; cnt++) { // just to prevent infinite loops + if(!endpt) { + Lib.log('Missing end?', i, pi); + break; + } + + if(istop(endpt) && !isright(endpt)) { + newendpt = perimeter[1]; // left top ---> right top + } else if(isleft(endpt)) { + newendpt = perimeter[0]; // left bottom ---> left top + } else if(isbottom(endpt)) { + newendpt = perimeter[3]; // right bottom + } else if(isright(endpt)) { + newendpt = perimeter[2]; // left bottom + } + + for(possiblei = 0; possiblei < pi.edgepaths.length; possiblei++) { + var ptNew = pi.edgepaths[possiblei][0]; + // is ptNew on the (horz. or vert.) segment from endpt to newendpt? + if(Math.abs(endpt[0] - newendpt[0]) < atol) { + if(Math.abs(endpt[0] - ptNew[0]) < atol && + (ptNew[1] - endpt[1]) * (newendpt[1] - ptNew[1]) >= 0) { + newendpt = ptNew; + nexti = possiblei; + } + } else if(Math.abs(endpt[1] - newendpt[1]) < btol) { + if(Math.abs(endpt[1] - ptNew[1]) < btol && + (ptNew[0] - endpt[0]) * (newendpt[0] - ptNew[0]) >= 0) { + newendpt = ptNew; + nexti = possiblei; + } + } else { + Lib.log('endpt to newendpt is not vert. or horz.', endpt, newendpt, ptNew); + } + } + + if(nexti >= 0) break; + fullpath += pathto(endpt, newendpt); + endpt = newendpt; + } + + if(nexti === pi.edgepaths.length) { + Lib.log('unclosed perimeter path'); + break; + } + + i = nexti; + + // if we closed back on a loop we already included, + // close it and start a new loop + newloop = (startsleft.indexOf(i) === -1); + if(newloop) { + i = startsleft[0]; + fullpath += pathto(endpt, newendpt) + 'Z'; + endpt = null; + } + } + + // finally add the interior paths + for(i = 0; i < pi.paths.length; i++) { + fullpath += Drawing.smoothclosed(pi.paths[i].map(ab2p), pi.smoothing); + } + + return fullpath; +} diff --git a/src/traces/scattercarpet/attributes.js b/src/traces/scattercarpet/attributes.js index 3c2fed05336..cd76515338e 100644 --- a/src/traces/scattercarpet/attributes.js +++ b/src/traces/scattercarpet/attributes.js @@ -26,7 +26,7 @@ module.exports = { editType: 'calc', description: [ 'An identifier for this carpet, so that `scattercarpet` and', - '`scattercontour` traces can specify a carpet plot on which', + '`contourcarpet` traces can specify a carpet plot on which', 'they lie' ].join(' ') }, diff --git a/test/image/baselines/carpet_rounded-off-edgepath-gt.png b/test/image/baselines/carpet_rounded-off-edgepath-gt.png new file mode 100644 index 00000000000..bac4d2655f7 Binary files /dev/null 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 new file mode 100644 index 00000000000..7be8495577e Binary files /dev/null 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 new file mode 100644 index 00000000000..14b0e71d137 Binary files /dev/null and b/test/image/baselines/carpet_rounded-off-edgepath.png differ diff --git a/test/image/baselines/contour_constraints_edge_cases.png b/test/image/baselines/contour_constraints_edge_cases.png new file mode 100644 index 00000000000..c85b29bba1f Binary files /dev/null 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 new file mode 100644 index 00000000000..d144612d734 Binary files /dev/null and b/test/image/baselines/contour_constraints_equal_boundary_minmax.png differ diff --git a/test/image/mocks/carpet_rounded-off-edgepath-gt.json b/test/image/mocks/carpet_rounded-off-edgepath-gt.json new file mode 100644 index 00000000000..80e921aa3d3 --- /dev/null +++ b/test/image/mocks/carpet_rounded-off-edgepath-gt.json @@ -0,0 +1,241 @@ +{ + "data": [ + { + "type": "carpet", + "carpet": "mycarpetplot", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2 + } + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot", + "name": "contours.value: -8.9", + "legendgroup": "contours.value: -8.9", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": ">", + "value": -8.9, + "showlabels": true + }, + "line": {"color": "#66c2a5"} + }, + + { + "type": "carpet", + "carpet": "mycarpetplot2", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2 + }, + "yaxis": "y2" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot2", + "name": "contours.value: -9", + "legendgroup": "contours.value: -9", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": ">", + "value": -9, + "showlabels": true + }, + "line": {"color": "#fc8d62"} + }, + + { + "type": "carpet", + "carpet": "mycarpetplot3", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2 + }, + "yaxis": "y3" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot3", + "name": "contours.value: -9.1", + "legendgroup": "contours.value: -9.1", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": ">", + "value": -9.1, + "showlabels": true + }, + "line": {"color": "#8da0cb"} + }, + + { + "type": "carpet", + "carpet": "mycarpetplot-nosmooth", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2, + "smoothing": 0 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2, + "smoothing": 0 + }, + "xaxis": "x2" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot-nosmooth", + "name": "contours.value: -8.9", + "legendgroup": "contours.value: -8.9", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": ">", + "value": -8.9, + "showlabels": true + }, + "line": {"color": "#66c2a5", "smoothing": 0}, + "showlegend": false + }, + + { + "type": "carpet", + "carpet": "mycarpetplot2-nosmooth", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2, + "smoothing": 0 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2, + "smoothing": 0 + }, + "xaxis": "x2", + "yaxis": "y2" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot2-nosmooth", + "name": "contours.value: -9", + "legendgroup": "contours.value: -9", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": ">", + "value": -9, + "showlabels": true + }, + "line": {"color": "#fc8d62", "smoothing": 0}, + "showlegend": false + }, + + { + "type": "carpet", + "carpet": "mycarpetplot3-nosmooth", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2, + "smoothing": 0 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2, + "smoothing": 0 + }, + "xaxis": "x2", + "yaxis": "y3" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot3-nosmooth", + "name": "contours.value: -9.1", + "legendgroup": "contours.value: -9.1", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": ">", + "value": -9.1, + "showlabels": true + }, + "line": {"color": "#8da0cb", "smoothing": 0}, + "showlegend": false + } + ], + "layout": { + "grid": {"rows": 3, "columns": 2, "xgap": 0, "ygap": 0}, + "xaxis2": {"matches": "x"}, + "yaxis2": {"matches": "y"}, + "yaxis3": {"matches": "y"}, + "margin": {"t": 80, "l": 25, "r": 25, "b": 20}, + "legend": {"x": 0, "y": 1, "yanchor": "bottom", "tracegroupgap": 0}, + "title": {"text": "left: dflt smoothing | right: no smoothing"}, + "width": 800, + "height": 1600, + "hovermode": "closest" + } +} diff --git a/test/image/mocks/carpet_rounded-off-edgepath-lt.json b/test/image/mocks/carpet_rounded-off-edgepath-lt.json new file mode 100644 index 00000000000..1d52cfb4754 --- /dev/null +++ b/test/image/mocks/carpet_rounded-off-edgepath-lt.json @@ -0,0 +1,241 @@ +{ + "data": [ + { + "type": "carpet", + "carpet": "mycarpetplot", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2 + } + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot", + "name": "contours.value: -8.9", + "legendgroup": "contours.value: -8.9", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "<", + "value": -8.9, + "showlabels": true + }, + "line": {"color": "#66c2a5"} + }, + + { + "type": "carpet", + "carpet": "mycarpetplot2", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2 + }, + "yaxis": "y2" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot2", + "name": "contours.value: -9", + "legendgroup": "contours.value: -9", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "<", + "value": -9, + "showlabels": true + }, + "line": {"color": "#fc8d62"} + }, + + { + "type": "carpet", + "carpet": "mycarpetplot3", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2 + }, + "yaxis": "y3" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot3", + "name": "contours.value: -9.1", + "legendgroup": "contours.value: -9.1", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "<", + "value": -9.1, + "showlabels": true + }, + "line": {"color": "#8da0cb"} + }, + + { + "type": "carpet", + "carpet": "mycarpetplot-nosmooth", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2, + "smoothing": 0 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2, + "smoothing": 0 + }, + "xaxis": "x2" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot-nosmooth", + "name": "contours.value: -8.9", + "legendgroup": "contours.value: -8.9", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "<", + "value": -8.9, + "showlabels": true + }, + "line": {"color": "#66c2a5", "smoothing": 0}, + "showlegend": false + }, + + { + "type": "carpet", + "carpet": "mycarpetplot2-nosmooth", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2, + "smoothing": 0 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2, + "smoothing": 0 + }, + "xaxis": "x2", + "yaxis": "y2" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot2-nosmooth", + "name": "contours.value: -9", + "legendgroup": "contours.value: -9", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "<", + "value": -9, + "showlabels": true + }, + "line": {"color": "#fc8d62", "smoothing": 0}, + "showlegend": false + }, + + { + "type": "carpet", + "carpet": "mycarpetplot3-nosmooth", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2, + "smoothing": 0 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2, + "smoothing": 0 + }, + "xaxis": "x2", + "yaxis": "y3" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot3-nosmooth", + "name": "contours.value: -9.1", + "legendgroup": "contours.value: -9.1", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "<", + "value": -9.1, + "showlabels": true + }, + "line": {"color": "#8da0cb", "smoothing": 0}, + "showlegend": false + } + ], + "layout": { + "grid": {"rows": 3, "columns": 2, "xgap": 0, "ygap": 0}, + "xaxis2": {"matches": "x"}, + "yaxis2": {"matches": "y"}, + "yaxis3": {"matches": "y"}, + "margin": {"t": 80, "l": 25, "r": 25, "b": 20}, + "legend": {"x": 0, "y": 1, "yanchor": "bottom", "tracegroupgap": 0}, + "title": {"text": "left: dflt smoothing | right: no smoothing"}, + "width": 800, + "height": 1600, + "hovermode": "closest" + } +} diff --git a/test/image/mocks/carpet_rounded-off-edgepath.json b/test/image/mocks/carpet_rounded-off-edgepath.json new file mode 100644 index 00000000000..f66e2fd2cfa --- /dev/null +++ b/test/image/mocks/carpet_rounded-off-edgepath.json @@ -0,0 +1,241 @@ +{ + "data": [ + { + "type": "carpet", + "carpet": "mycarpetplot", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2 + } + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot", + "name": "contours.value: [-10.5, -8.9]", + "legendgroup": "contours.value: [-10.5, -8.9]", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "[]", + "value": [ -10.5, -8.9 ], + "showlabels": true + }, + "line": {"color": "#66c2a5"} + }, + + { + "type": "carpet", + "carpet": "mycarpetplot2", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2 + }, + "yaxis": "y2" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot2", + "name": "contours.value: [-10.5, -9]", + "legendgroup": "contours.value: [-10.5, -9]", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "[]", + "value": [ -10.5, -9 ], + "showlabels": true + }, + "line": {"color": "#fc8d62"} + }, + + { + "type": "carpet", + "carpet": "mycarpetplot3", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2 + }, + "yaxis": "y3" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot3", + "name": "contours.value: [-10.5, -9.1]", + "legendgroup": "contours.value: [-10.5, -9.1]", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "[]", + "value": [ -10.5, -9.1 ], + "showlabels": true + }, + "line": {"color": "#8da0cb"} + }, + + { + "type": "carpet", + "carpet": "mycarpetplot-nosmooth", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2, + "smoothing": 0 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2, + "smoothing": 0 + }, + "xaxis": "x2" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot-nosmooth", + "name": "contours.value: [-10.5, -8.9]", + "legendgroup": "contours.value: [-10.5, -8.9]", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "[]", + "value": [ -10.5, -8.9 ], + "showlabels": true + }, + "line": {"color": "#66c2a5", "smoothing": 0}, + "showlegend": false + }, + + { + "type": "carpet", + "carpet": "mycarpetplot2-nosmooth", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2, + "smoothing": 0 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2, + "smoothing": 0 + }, + "xaxis": "x2", + "yaxis": "y2" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot2-nosmooth", + "name": "contours.value: [-10.5, -9]", + "legendgroup": "contours.value: [-10.5, -9]", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "[]", + "value": [ -10.5, -9 ], + "showlabels": true + }, + "line": {"color": "#fc8d62", "smoothing": 0}, + "showlegend": false + }, + + { + "type": "carpet", + "carpet": "mycarpetplot3-nosmooth", + "y": [ 229.178784747792, 215.2652291978947, 202.8404029280965, 192.2260432445133, 183.708613942406, 177.5782812074495, 174.0884418151758, 173.3997106720247, 175.5461489316327, 180.4275637731995, 214.1372096444189, 199.1772036548325, 185.6808329674267, 174.0217751485092, 164.5621432773428, 157.6862328790123, 153.7424076215481, 152.9590721355289, 155.3854290275791, 160.8775126832159, 197.955701450632, 181.6698080474646, 166.7647891089293, 153.6757409548815, 142.8717792464716, 134.8906788834622, 130.2541612651109, 129.3244816623668, 132.1818258222746, 138.5937310486346, 180.3275637731995, 162.2842429612248, 145.40835920336, 130.1874945984443, 117.2334617207166, 107.3567106434887, 101.4627088383036, 100.2597576517775, 103.9141205126078, 111.9533988749895, 160.7775126832159, 140.2436607124885, 120.318932376154, 101.396042171637, 84.10969972456421, 69.67202270078705, 60.1758545910665, 58.1072583828364, 64.19756997039333, 76.52626158259734, 138.4937310486346, 114.0182473815733, 88.37207622548259, 60.1091879243998, 20.06972930813322, 42.7341430437145, 55.36041317259001, 57.5726690710478, 50.74129766191278, 29.01751345948131, 111.8533988749895, 79.57122812931308, 33.798680723879, 55.29374650592334, 79.19337138208338, 92.18957750987222, 98.68466305166027, 99.95111530895238, 96.19231369883657, 86.75254037844387, 76.42626158259732, 18.45347105752998, 74.33382311255365, 98.61799638499362, 113.7582749469929, 123.163998923113, 128.1024291311435, 129.0854085138211, 126.2033968656691, 119.1738071423809, 28.91751345948124, 83.73066207399643, 110.4200384130655, 128.0357624644768, 140.0344796483795, 147.7803977812036, 151.9238929857383, 152.7570184892676, 150.3333981621753, 144.4875672974064, 86.65254037844386, 116.9586954436066, 137.3300788256475, 151.8572263190717, 162.1050238423869, 168.843972566259, 172.48467387981, 173.2215161209209, 171.0909172603235, 165.98123951777 ], + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "aaxis": { + "tickmode": "linear", + "minorgridcount": 3, + "dtick": 2, + "smoothing": 0 + }, + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "baxis": { + "tickmode": "linear", + "minorgridcount": 3, + "tick0": 0.5999999999999996, + "endlinewidth": 2, + "smoothing": 0 + }, + "xaxis": "x2", + "yaxis": "y3" + }, + { + "type": "contourcarpet", + "carpet": "mycarpetplot3-nosmooth", + "name": "contours.value: [-10.5, -9.1]", + "legendgroup": "contours.value: [-10.5, -9.1]", + "a": [ -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5, -15, -12.77777777777778, -10.55555555555556, -8.333333333333332, -6.111111111111111, -3.888888888888889, -1.666666666666666, 0.5555555555555554, 2.777777777777779, 5 ], + "b": [ -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -2.333333333333333, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1.666666666666667, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, -0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 0.3333333333333335, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 1.666666666666667, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 2.333333333333333, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], + "z": [ -7, 0, -1, -1, 1, -9, 3, -1, -1, -1, -1, -3, 5, 2, 0, -1, 12, 0, 0, 2, 4, -13, 0, 0, -7, -3, -4, 1, -1, -9, 1, -4, 0, 3, 1, -1, -1, 0, -2, -5, 2, 0, 5, 5, -3, -4, -2, -1, 0, -1, -1, 5, 3, 1, 1, 3, 9, 8, -2, -4, 1, 0, -2, -2, 0, 5, 2, -9, -4, -9, -1, -1, 3, -1, -1, 0, -1, 4, -2, 12, 4, -1, -4, -7, 6, 0, 1, 1, 0, 0, 1, 3, 1, 2, 1, 0, -2, 1, 0, 0 ], + "contours": { + "type": "constraint", + "operation": "[]", + "value": [ -10.5, -9.1 ], + "showlabels": true + }, + "line": {"color": "#8da0cb", "smoothing": 0}, + "showlegend": false + } + ], + "layout": { + "grid": {"rows": 3, "columns": 2, "xgap": 0, "ygap": 0}, + "xaxis2": {"matches": "x"}, + "yaxis2": {"matches": "y"}, + "yaxis3": {"matches": "y"}, + "margin": {"t": 80, "l": 25, "r": 25, "b": 20}, + "legend": {"x": 0, "y": 1, "yanchor": "bottom", "tracegroupgap": 0}, + "title": {"text": "left: dflt smoothing | right: no smoothing"}, + "width": 800, + "height": 1600, + "hovermode": "closest" + } +} diff --git a/test/image/mocks/contour_constraints_edge_cases.json b/test/image/mocks/contour_constraints_edge_cases.json new file mode 100644 index 00000000000..c59c4291cea --- /dev/null +++ b/test/image/mocks/contour_constraints_edge_cases.json @@ -0,0 +1,71 @@ +{ + "data": [ + { + "connectgaps": true, + "x": [0, 5], + "y": [0, 4], + "z": [[4, 3], [2, 1]], + "type": "contour", + "contours": { + "type": "constraint", + "operation": "<", + "value": 0.99 + } + }, + { + "mode": "text", + "x": [0, 0, 5, 5], + "y": [0, 4, 0, 4], + "text": [4, 3, 2, 1] + }, + { + "connectgaps": true, + "x": [0, 5], + "y": [0, 4], + "z": [[4, 3], [2, 1]], + "type": "contour", + "contours": { + "type": "constraint", + "operation": "<", + "value": 1 + }, + "xaxis": "x2" + }, + { + "mode": "text", + "x": [0, 0, 5, 5], + "y": [0, 4, 0, 4], + "text": [4, 3, 2, 1], + "xaxis": "x2" + }, + { + "connectgaps": true, + "x": [0, 5], + "y": [0, 4], + "z": [[4, 3], [2, 1]], + "type": "contour", + "contours": { + "type": "constraint", + "operation": "<", + "value": 1.01 + }, + "xaxis": "x3" + }, + { + "mode": "text", + "x": [0, 0, 5, 5], + "y": [0, 4, 0, 4], + "text": [4, 3, 2, 1], + "xaxis": "x3" + } + ], + "layout": { + "grid": {"rows": 1, "columns": 3}, + "width": 600, + "height": 400, + "showlegend": false, + "xaxis": {"side": "top", "title": {"text": "<0.99
no edge path"}}, + "xaxis2": {"matches": "x", "side": "top", "title": {"text": "<1
rounded off edge path"}}, + "xaxis3": {"matches": "x", "side": "top", "title": {"text": "<1.01
one edge path"}} + } +} diff --git a/test/image/mocks/contour_constraints_equal_boundary_minmax.json b/test/image/mocks/contour_constraints_equal_boundary_minmax.json new file mode 100644 index 00000000000..a0073aceb54 --- /dev/null +++ b/test/image/mocks/contour_constraints_equal_boundary_minmax.json @@ -0,0 +1,175 @@ +{ + "data": [ + { + "type": "contour", + "z": [[1, 1, 1], [1, 0, 2], [2, 2, 2]], + "contours": { + "type": "constraint", + "operation": "[]", + "value": [0, 0.9999], + "showlabels": true + } + }, + { + "mode": "text", + "x": [0, 1, 2, 0, 1, 2, 0, 1, 2], + "y": [0, 0, 0, 1, 1, 1, 2, 2, 2], + "text": [1, 1, 1, 1, 0, 2, 2, 2, 2] + }, + { + "type": "contour", + "z": [[1, 1, 1], [1, 0, 2], [2, 2, 2]], + "contours": { + "type": "constraint", + "operation": "[]", + "value": [0, 1], + "showlabels": true + }, + "xaxis": "x2", + "yaxis": "y2" + }, + { + "mode": "text", + "x": [0, 1, 2, 0, 1, 2, 0, 1, 2], + "y": [0, 0, 0, 1, 1, 1, 2, 2, 2], + "text": [1, 1, 1, 1, 0, 2, 2, 2, 2], + "xaxis": "x2", + "yaxis": "y2" + }, + { + "type": "contour", + "z": [[1, 1, 1], [1, 5, 2], [2, 2, 2]], + "contours": { + "type": "constraint", + "operation": "[]", + "value": [0, 0.9999], + "showlabels": true + }, + "xaxis": "x3", + "yaxis": "y3" + }, + { + "mode": "text", + "x": [0, 1, 2, 0, 1, 2, 0, 1, 2], + "y": [0, 0, 0, 1, 1, 1, 2, 2, 2], + "text": [1, 1, 1, 1, 5, 2, 2, 2, 2], + "xaxis": "x3", + "yaxis": "y3" + }, + { + "type": "contour", + "z": [[1, 1, 1], [1, 5, 2], [2, 2, 2]], + "contours": { + "type": "constraint", + "operation": "[]", + "value": [0, 1], + "showlabels": true + }, + "xaxis": "x4", + "yaxis": "y4" + }, + { + "mode": "text", + "x": [0, 1, 2, 0, 1, 2, 0, 1, 2], + "y": [0, 0, 0, 1, 1, 1, 2, 2, 2], + "text": [1, 1, 1, 1, 5, 2, 2, 2, 2], + "xaxis": "x4", + "yaxis": "y4" + }, + { + "type": "contour", + "z": [[1, 1, 1], [1, 0, 2], [2, 2, 2]], + "contours": { + "type": "constraint", + "operation": "][", + "value": [1, 2], + "showlabels": true + }, + "xaxis": "x5", + "yaxis": "y5" + }, + { + "mode": "text", + "x": [0, 1, 2, 0, 1, 2, 0, 1, 2], + "y": [0, 0, 0, 1, 1, 1, 2, 2, 2], + "text": [1, 1, 1, 1, 0, 2, 2, 2, 2], + "xaxis": "x5", + "yaxis": "y5" + }, + { + "type": "contour", + "z": [[1, 1, 1], [1, 0, 2], [2, 2, 2]], + "contours": { + "type": "constraint", + "operation": "][", + "value": [0.999, 2.001], + "showlabels": true + }, + "xaxis": "x6", + "yaxis": "y6" + }, + { + "mode": "text", + "x": [0, 1, 2, 0, 1, 2, 0, 1, 2], + "y": [0, 0, 0, 1, 1, 1, 2, 2, 2], + "text": [1, 1, 1, 1, 0, 2, 2, 2, 2], + "xaxis": "x6", + "yaxis": "y6" + }, + { + "type": "contour", + "z": [[1, 1, 1], [1, 5, 2], [2, 2, 2]], + "contours": { + "type": "constraint", + "operation": "][", + "value": [1, 2], + "showlabels": true + }, + "xaxis": "x7", + "yaxis": "y7" + }, + { + "mode": "text", + "x": [0, 1, 2, 0, 1, 2, 0, 1, 2], + "y": [0, 0, 0, 1, 1, 1, 2, 2, 2], + "text": [1, 1, 1, 1, 5, 2, 2, 2, 2], + "xaxis": "x7", + "yaxis": "y7" + }, + { + "type": "contour", + "z": [[1, 1, 1], [1, 5, 2], [2, 2, 2]], + "contours": { + "type": "constraint", + "operation": "][", + "value": [0.999, 2.001], + "showlabels": true + }, + "xaxis": "x8", + "yaxis": "y8" + }, + { + "mode": "text", + "x": [0, 1, 2, 0, 1, 2, 0, 1, 2], + "y": [0, 0, 0, 1, 1, 1, 2, 2, 2], + "text": [1, 1, 1, 1, 5, 2, 2, 2, 2], + "xaxis": "x8", + "yaxis": "y8" + } + ], + "layout": { + "grid": {"rows": 4, "columns": 2, "pattern": "independent"}, + "width": 600, + "height": 800, + "showlegend": false, + "title": {"text": "Constraints that (almost) equal boundary min/max"}, + "yaxis": {"title": {"text": "[0, 0.9999]"}}, + "yaxis2": {"title": {"text": "[0, 1]"}, "side": "right"}, + "yaxis3": {"title": {"text": "[0, 0.9999]"}}, + "yaxis4": {"title": {"text": "[0, 1]"}, "side": "right"}, + "yaxis5": {"title": {"text": "]1, 2["}}, + "yaxis6": {"title": {"text": "[0.999, 2.001]"}, "side": "right"}, + "yaxis7": {"title": {"text": "]1, 2["}}, + "yaxis8": {"title": {"text": "[0.999, 2.001]"}, "side": "right"} + } +}