Using the latest Plotly v6.0.0, my Flask web application no longer correctly displays a Plotly figure. While axes, background, and title renders, the plot displays an empty region with no data where a set of lines should be. The Flask UI receives a JSON string of a Plotly figure using json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder).
Comparing between prod (v5.24.1) and dev (6.0.0) version of app shows embedded base64 encoding in bdata elements within the JSON content. And release notes indicate the following changes:
import json
import pandas as pd
import plotly
import plotly.graph_objects as go
mexico_frame = pd.DataFrame({'year': {0: 2015, 1: 2016, 2: 2017, 3: 2018, 4: 2019, 5: 2020, 6: 2021, 7: 2022, 8: 2015, 9: 2016, 10: 2017, 11: 2018, 12: 2019, 13: 2020, 14: 2021, 15: 2022, 16: 2015, 17: 2016, 18: 2017, 19: 2018, 20: 2019, 21: 2020, 22: 2021, 23: 2022, 24: 2015, 25: 2016, 26: 2017, 27: 2018, 28: 2019, 29: 2020, 30: 2021, 31: 2022, 32: 2015, 33: 2016, 34: 2017, 35: 2018, 36: 2019, 37: 2020, 38: 2021, 39: 2022, 40: 2015, 41: 2016, 42: 2017, 43: 2018, 44: 2019, 45: 2020, 46: 2021, 47: 2022, 48: 2015, 49: 2016, 50: 2017, 51: 2018, 52: 2019, 53: 2020, 54: 2021, 55: 2022}, 'iso2': {0: 'MX', 1: 'MX', 2: 'MX', 3: 'MX', 4: 'MX', 5: 'MX', 6: 'MX', 7: 'MX', 8: 'MX', 9: 'MX', 10: 'MX', 11: 'MX', 12: 'MX', 13: 'MX', 14: 'MX', 15: 'MX', 16: 'MX', 17: 'MX', 18: 'MX', 19: 'MX', 20: 'MX', 21: 'MX', 22: 'MX', 23: 'MX', 24: 'MX', 25: 'MX', 26: 'MX', 27: 'MX', 28: 'MX', 29: 'MX', 30: 'MX', 31: 'MX', 32: 'MX', 33: 'MX', 34: 'MX', 35: 'MX', 36: 'MX', 37: 'MX', 38: 'MX', 39: 'MX', 40: 'MX', 41: 'MX', 42: 'MX', 43: 'MX', 44: 'MX', 45: 'MX', 46: 'MX', 47: 'MX', 48: 'MX', 49: 'MX', 50: 'MX', 51: 'MX', 52: 'MX', 53: 'MX', 54: 'MX', 55: 'MX'}, 'country': {0: 'Mexico', 1: 'Mexico', 2: 'Mexico', 3: 'Mexico', 4: 'Mexico', 5: 'Mexico', 6: 'Mexico', 7: 'Mexico', 8: 'Mexico', 9: 'Mexico', 10: 'Mexico', 11: 'Mexico', 12: 'Mexico', 13: 'Mexico', 14: 'Mexico', 15: 'Mexico', 16: 'Mexico', 17: 'Mexico', 18: 'Mexico', 19: 'Mexico', 20: 'Mexico', 21: 'Mexico', 22: 'Mexico', 23: 'Mexico', 24: 'Mexico', 25: 'Mexico', 26: 'Mexico', 27: 'Mexico', 28: 'Mexico', 29: 'Mexico', 30: 'Mexico', 31: 'Mexico', 32: 'Mexico', 33: 'Mexico', 34: 'Mexico', 35: 'Mexico', 36: 'Mexico', 37: 'Mexico', 38: 'Mexico', 39: 'Mexico', 40: 'Mexico', 41: 'Mexico', 42: 'Mexico', 43: 'Mexico', 44: 'Mexico', 45: 'Mexico', 46: 'Mexico', 47: 'Mexico', 48: 'Mexico', 49: 'Mexico', 50: 'Mexico', 51: 'Mexico', 52: 'Mexico', 53: 'Mexico', 54: 'Mexico', 55: 'Mexico'}, 'metric_id': {0: 9, 1: 9, 2: 9, 3: 9, 4: 9, 5: 9, 6: 9, 7: 9, 8: 9, 9: 9, 10: 9, 11: 9, 12: 9, 13: 9, 14: 9, 15: 9, 16: 9, 17: 9, 18: 9, 19: 9, 20: 9, 21: 9, 22: 9, 23: 9, 24: 9, 25: 9, 26: 9, 27: 9, 28: 9, 29: 9, 30: 9, 31: 9, 32: 9, 33: 9, 34: 9, 35: 9, 36: 9, 37: 9, 38: 9, 39: 9, 40: 9, 41: 9, 42: 9, 43: 9, 44: 9, 45: 9, 46: 9, 47: 9, 48: 9, 49: 9, 50: 9, 51: 9, 52: 9, 53: 9, 54: 9, 55: 9}, 'metric': {0: 'Ecological Footprint per person', 1: 'Ecological Footprint per person', 2: 'Ecological Footprint per person', 3: 'Ecological Footprint per person', 4: 'Ecological Footprint per person', 5: 'Ecological Footprint per person', 6: 'Ecological Footprint per person', 7: 'Ecological Footprint per person', 8: 'Ecological Footprint per person', 9: 'Ecological Footprint per person', 10: 'Ecological Footprint per person', 11: 'Ecological Footprint per person', 12: 'Ecological Footprint per person', 13: 'Ecological Footprint per person', 14: 'Ecological Footprint per person', 15: 'Ecological Footprint per person', 16: 'Ecological Footprint per person', 17: 'Ecological Footprint per person', 18: 'Ecological Footprint per person', 19: 'Ecological Footprint per person', 20: 'Ecological Footprint per person', 21: 'Ecological Footprint per person', 22: 'Ecological Footprint per person', 23: 'Ecological Footprint per person', 24: 'Ecological Footprint per person', 25: 'Ecological Footprint per person', 26: 'Ecological Footprint per person', 27: 'Ecological Footprint per person', 28: 'Ecological Footprint per person', 29: 'Ecological Footprint per person', 30: 'Ecological Footprint per person', 31: 'Ecological Footprint per person', 32: 'Ecological Footprint per person', 33: 'Ecological Footprint per person', 34: 'Ecological Footprint per person', 35: 'Ecological Footprint per person', 36: 'Ecological Footprint per person', 37: 'Ecological Footprint per person', 38: 'Ecological Footprint per person', 39: 'Ecological Footprint per person', 40: 'Ecological Footprint per person', 41: 'Ecological Footprint per person', 42: 'Ecological Footprint per person', 43: 'Ecological Footprint per person', 44: 'Ecological Footprint per person', 45: 'Ecological Footprint per person', 46: 'Ecological Footprint per person', 47: 'Ecological Footprint per person', 48: 'Ecological Footprint per person', 49: 'Ecological Footprint per person', 50: 'Ecological Footprint per person', 51: 'Ecological Footprint per person', 52: 'Ecological Footprint per person', 53: 'Ecological Footprint per person', 54: 'Ecological Footprint per person', 55: 'Ecological Footprint per person'}, 'note': {0: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 1: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 2: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 3: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 4: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 5: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 6: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 7: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 8: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 9: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 10: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 11: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 12: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 13: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 14: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 15: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 16: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 17: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 18: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 19: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 20: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 21: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 22: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 23: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 24: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 25: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 26: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 27: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 28: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 29: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 30: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 31: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 32: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 33: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 34: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 35: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 36: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 37: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 38: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 39: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 40: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 41: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 42: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 43: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 44: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 45: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 46: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 47: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 48: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 49: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 50: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 51: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 52: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 53: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 54: 'Ecological Footprint of consumption in global hectares (gha) divided by population', 55: 'Ecological Footprint of consumption in global hectares (gha) divided by population'}, 'footprint_type': {0: 'builtupLand', 1: 'builtupLand', 2: 'builtupLand', 3: 'builtupLand', 4: 'builtupLand', 5: 'builtupLand', 6: 'builtupLand', 7: 'builtupLand', 8: 'carbon', 9: 'carbon', 10: 'carbon', 11: 'carbon', 12: 'carbon', 13: 'carbon', 14: 'carbon', 15: 'carbon', 16: 'cropLand', 17: 'cropLand', 18: 'cropLand', 19: 'cropLand', 20: 'cropLand', 21: 'cropLand', 22: 'cropLand', 23: 'cropLand', 24: 'fishingGround', 25: 'fishingGround', 26: 'fishingGround', 27: 'fishingGround', 28: 'fishingGround', 29: 'fishingGround', 30: 'fishingGround', 31: 'fishingGround', 32: 'forestLand', 33: 'forestLand', 34: 'forestLand', 35: 'forestLand', 36: 'forestLand', 37: 'forestLand', 38: 'forestLand', 39: 'forestLand', 40: 'grazingLand', 41: 'grazingLand', 42: 'grazingLand', 43: 'grazingLand', 44: 'grazingLand', 45: 'grazingLand', 46: 'grazingLand', 47: 'grazingLand', 48: 'total', 49: 'total', 50: 'total', 51: 'total', 52: 'total', 53: 'total', 54: 'total', 55: 'total'}, 'footprint_value': {0: 0.06998590647491501, 1: 0.07470568681825901, 2: 0.08089834521584001, 3: 0.08131535835414301, 4: 0.08437062872542, 5: 0.081877766078983, 6: 0.08226062967613301, 7: 0.08256117303348401, 8: 1.45299322354663, 9: 1.39674909997343, 10: 1.39675783668407, 11: 1.30509984067737, 12: 1.28630084494473, 13: 1.03612887068416, 14: 1.18958351222326, 15: 1.14254018173385, 16: 0.5597860304132211, 17: 0.5790942193074811, 18: 0.571234212047664, 19: 0.5711844221103021, 20: 0.560660759884935, 21: 0.49932535845387405, 22: 0.496539177731512, 23: 0.49342762983491606, 24: 0.116064280674846, 25: 0.11975863871968, 26: 0.11903431489980601, 27: 0.11361905819041701, 28: 0.10693797175441101, 29: 0.10230798395573201, 30: 0.10173711662881701, 31: 0.101099584032299, 32: 0.260319967669921, 33: 0.26654267401659404, 34: 0.281096560106174, 35: 0.278314696587597, 36: 0.26435168814146504, 37: 0.267845144452164, 38: 0.266350597929709, 39: 0.26468151987924904, 40: 0.23192434947102, 41: 0.23252356700818103, 42: 0.22898262872433803, 43: 0.222846437626832, 44: 0.21798902382889102, 45: 0.20332102496109902, 46: 0.202186515946873, 47: 0.200919520195826, 48: 2.69107375825056, 49: 2.66937388584362, 50: 2.67800389767789, 51: 2.57237981354666, 52: 2.52061091727985, 53: 2.19080614858601, 54: 2.3386575501363, 55: 2.28522960870963}})
def build_graph(frame: pd.DataFrame) -> str:
trace = go.Scatter(
x=frame.query("footprint_type == 'total'")["year"],
y=frame.query("footprint_type == 'total'")["footprint_value"],
dx=1,
dy=1,
text=frame.query("footprint_type == 'total'")["footprint_type"],
name="total",
mode="lines+markers",
hoverinfo="x+y+text",
textposition="top center",
marker=dict(showscale=False, size=2, line_width=0),
)
layout = go.Layout(
title=dict(
text=f'{frame["country"].iat[0]}: {frame["metric"].iat[0]}',
font_size=16
),
showlegend=False,
hovermode="closest",
margin=dict(b=20, l=5, r=5, t=40),
title_x=0.5,
font_family="Arial",
title_font_family="Arial",
legend_title_font_family="Arial",
yaxis=dict(tickformat=".2f"),
annotations=[
dict(
text=frame["note"].iat[0],
showarrow=False,
xref="paper",
yref="paper",
x=0.0,
y=-0.1,
)
],
)
fig = go.Figure(data=[trace], layout=layout)
for ftype in [
"builtupLand",
"cropLand",
"forestLand",
"fishingGround",
"grazingLand",
"carbon",
]:
q = "footprint_type == @ftype"
fig.add_trace(
go.Scatter(
x=frame.query(q)["year"],
y=frame.query(q)["footprint_value"],
text=frame.query(q)["footprint_type"],
hoverinfo="x+y+text",
name=(ftype.replace("Land", " land").replace("Ground", " ground")),
mode="lines+markers",
connectgaps=True,
marker=dict(showscale=False, size=2, line_width=0),
)
)
fig.update_layout(
showlegend=True,
legend=dict(orientation="h", xanchor="center", yanchor="top", x=0.5, y=1.0),
margin=dict(l=20, r=20, t=35, b=40),
)
return json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder)
print(build_graph(mexico_frame))
Comparing between my production and development version of same code generates following differences viewable on https://jsfiddle.net.
var graphs = {"data": [{"dx": 1, "dy": 1, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "total", "text": ["total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total"], "textposition": "top center", "x": [1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022], "y": [2.07630830849152, 2.00874943595944, 1.99068211445437, 2.01641382915592, 1.91629237308816, 1.9328807751123, 2.01675331932545, 2.00197643427104, 1.98674011917152, 2.1370388480144, 2.10368681058998, 2.07989181194314, 2.26105928162359, 2.37987775148131, 2.37551912379596, 2.25931223567278, 2.24999993624751, 2.321226207037, 2.42122022921399, 2.6040626570312497, 2.70161183018488, 2.50231694850833, 2.33261784868637, 2.44373322624395, 2.52960889670879, 2.3545055176894802, 2.37820010662579, 2.50396443379012, 2.5807674937113, 2.59314295364264, 2.6398760268405, 2.60358360545381, 2.6386090283306, 2.83561656481768, 2.64108842432268, 3.06268626752021, 3.03825301080676, 3.03017845674158, 4.17126059815816, 3.09137710985913, 3.5684140915108, 3.19017969374877, 2.83935084717272, 2.76359946386932, 3.02830088722433, 3.12622191610183, 3.21184358080122, 3.26084690768218, 3.00079136419209, 3.32717386995855, 2.92856662511405, 3.0615947042148, 2.81671344682771, 2.67579216065001, 2.69107375825056, 2.66937388584362, 2.67800389767789, 2.57237981354666, 2.52061091727985, 2.19080614858601, 2.3386575501363, 2.28522960870963], "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "builtup land", "text": ["builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand"], "x": [1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022], "y": [0.03245943435903, 0.035854722462993004, 0.037696562575276, 0.043067257309990004, 0.048044262100798006, 0.05044532335020101, 0.050111018968271005, 0.05148680756993201, 0.052106699077198004, 0.05764138424140901, 0.057638385332446, 0.056501650060211, 0.05660039707375301, 0.05608298769311001, 0.058261944555497006, 0.053568306282318005, 0.053249345621606006, 0.061381935299485005, 0.05814714075185601, 0.06337544906204501, 0.063480415439467, 0.06239502718202101, 0.06285905569646001, 0.065678042295921, 0.068119155255598, 0.073266335968349, 0.072113296958541, 0.065916151984864, 0.064179482893038, 0.063019753049664, 0.057627820956871, 0.059628543677374, 0.060263965023301, 0.059519097295128005, 0.060723150093367005, 0.062888994513938, 0.06226645533148901, 0.065527817321574, 0.06386793488579101, 0.06138880520711801, 0.06587458822223101, 0.06170090642650101, 0.063964242402271, 0.066112322641696, 0.064519548012492, 0.065502702863102, 0.065227888940574, 0.066180795861803, 0.062827033657923, 0.06552349916918, 0.060156189114244, 0.06474202479339501, 0.070897982035673, 0.070776031370718, 0.06998590647491501, 0.07470568681825901, 0.08089834521584001, 0.08131535835414301, 0.08437062872542, 0.081877766078983, 0.08226062967613301, 0.08256117303348401], "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "crop land", "text": ["cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand"], "x": [1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022], "y": [0.452156791967309, 0.437401623827649, 0.435491211292493, 0.44970668507799405, 0.395805228403656, 0.403000217154349, 0.395093638606604, 0.41960116853539303, 0.409030225950187, 0.443528327358828, 0.39484400710253903, 0.38376118452470903, 0.42183356325803806, 0.47910771012706604, 0.45932559237839105, 0.39543225281410604, 0.41734121003524, 0.455747439711351, 0.45575991036906105, 0.551784505243299, 0.5547209282273741, 0.5260750694360861, 0.556481405510321, 0.542341804606961, 0.52428462096732, 0.47711495776983304, 0.49983298409278204, 0.520269155740473, 0.544096353176941, 0.617007902716284, 0.608661284345647, 0.634871320906157, 0.626827498522688, 0.604239159722158, 0.53970609089763, 0.620829075113527, 0.611213808359173, 0.644602105635067, 0.6685671255741981, 0.683288037387149, 0.702594140815428, 0.7232754298744261, 0.71337564338948, 0.691609688235716, 0.68898066146164, 0.7065651942384381, 0.68101728434294, 0.646353060615079, 0.623116571488432, 0.619634192267799, 0.602966390873377, 0.614099340339736, 0.562242216659384, 0.5782909070030761, 0.5597860304132211, 0.5790942193074811, 0.571234212047664, 0.5711844221103021, 0.560660759884935, 0.49932535845387405, 0.496539177731512, 0.49342762983491606], "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "forest land", "text": ["forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand"], "x": [1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022], "y": [0.30677745901062103, 0.31181862726204, 0.311419598296234, 0.31092310436388704, 0.30970054324073404, 0.300671477145809, 0.306402758779025, 0.301351216078916, 0.300912327208593, 0.31213730668424705, 0.288417674195728, 0.28411565436052, 0.283549717043161, 0.296193678620753, 0.29113672084394504, 0.29032198118531305, 0.29135606604824704, 0.248680367370458, 0.255729546522319, 0.270388792374382, 0.263824950653655, 0.26140157313912205, 0.255756569480734, 0.253018088410952, 0.25744747869871604, 0.25322416525233604, 0.255533159519767, 0.254187989404117, 0.254430620465601, 0.249409769395901, 0.24838166455194502, 0.250679143716281, 0.260265522527152, 0.25584634005239903, 0.253600395918512, 0.238567019127905, 0.24829888730425, 0.26145695692049703, 0.280439572466678, 0.298436364900723, 0.270390787453117, 0.26697233433362805, 0.278820743862979, 0.296174475452467, 0.29637481267693805, 0.32267097989422705, 0.33006737994599905, 0.30966946904889303, 0.25538300463394303, 0.26604556198962603, 0.26068257129676303, 0.26054260942533203, 0.263152603632694, 0.259893532118525, 0.260319967669921, 0.26654267401659404, 0.281096560106174, 0.278314696587597, 0.26435168814146504, 0.267845144452164, 0.266350597929709, 0.26468151987924904], "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "fishing ground", "text": ["fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround"], "x": [1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022], "y": [0.06768302181924901, 0.073072342321714, 0.078369826675682, 0.061103913974472006, 0.05576728082959401, 0.05991677222087, 0.06336406722212401, 0.055562522039918, 0.054630626693062005, 0.05834121244092701, 0.066170873049103, 0.066914625855385, 0.074354660951644, 0.065814931650078, 0.065170594125578, 0.049979895383317006, 0.045878952389235006, 0.063021583875281, 0.07159087148817, 0.07686931598353601, 0.103809654252387, 0.077338316379104, 0.067034106459051, 0.09161903083655001, 0.08309747202211301, 0.080206741058595, 0.08418631658738601, 0.095665547939174, 0.102224917729967, 0.11095784161690901, 0.10361559048282301, 0.10166675548858, 0.10435385059089901, 0.10949293421566901, 0.11057818556939701, 0.11678618405806102, 0.122640431530773, 0.098067222840772, 0.10265946457472501, 0.09377583451638401, 0.09020873594786401, 0.097700992479558, 0.094252853079343, 0.099987392803907, 0.10415944819828701, 0.09406560657730301, 0.09783203462027601, 0.089998925873998, 0.08130273223802001, 0.08632651766987501, 0.07529423238898601, 0.07259091368602001, 0.08521256312783901, 0.10030076845829901, 0.116064280674846, 0.11975863871968, 0.11903431489980601, 0.11361905819041701, 0.10693797175441101, 0.10230798395573201, 0.10173711662881701, 0.101099584032299], "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "grazing land", "text": ["grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand"], "x": [1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022], "y": [0.718966906771318, 0.694792060009722, 0.6842535958666001, 0.6923806886124411, 0.6654968809935351, 0.633390234196171, 0.6227668966084291, 0.5880741238175331, 0.557574461888787, 0.537597355411736, 0.5274734444680841, 0.499510552504809, 0.49752704403766, 0.501757542756844, 0.49743700244922806, 0.47304493996676605, 0.45238377601758506, 0.426355773168042, 0.436558393311035, 0.44319489780888405, 0.43621655087211203, 0.4179860239507, 0.41269320004922905, 0.411190657132923, 0.410060999148088, 0.382875460063196, 0.37698098879586606, 0.396697416686621, 0.394730128988998, 0.377618923762955, 0.392177190506698, 0.39603456624148103, 0.372276442343595, 0.37504071883997103, 0.32428181617709, 0.351739117739369, 0.371479264243666, 0.38184669752607603, 0.37775353751143503, 0.37931825274270004, 0.37640316153895204, 0.38466454683802803, 0.349579482908678, 0.330407605315904, 0.330753206063136, 0.326283094951332, 0.330301829675233, 0.319664556121668, 0.297972669650157, 0.276948620105034, 0.25189873207144303, 0.23690490788163102, 0.24484978007670202, 0.235630863800375, 0.23192434947102, 0.23252356700818103, 0.22898262872433803, 0.222846437626832, 0.21798902382889102, 0.20332102496109902, 0.202186515946873, 0.200919520195826], "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "carbon", "text": ["carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon"], "x": [1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022], "y": [0.498264694563995, 0.45581006007532404, 0.44345131974809, 0.45923217981713504, 0.44147817751984403, 0.48545675104489605, 0.579014939140996, 0.5859005962293461, 0.612485778353693, 0.72779326187725, 0.7691424264420781, 0.7890881446375091, 0.927193899259331, 0.980920900633459, 1.00418726944332, 0.9969648600409591, 0.9897905861355981, 1.06603910761239, 1.14343436677155, 1.1984496965591, 1.27955933073988, 1.1571209384213, 0.977793511490577, 1.07988560296064, 1.18659917061695, 1.08781785757717, 1.08955336067144, 1.17122817203487, 1.22110599045675, 1.17512876310092, 1.22941247599651, 1.16070327542394, 1.21462174932297, 1.43147831469236, 1.35219878566669, 1.6718758769674, 1.6223541640374002, 1.57867765649759, 2.67797296314534, 1.5751698151050602, 2.0629426775332, 1.65586548379663, 1.33935788152997, 1.27930797941963, 1.54351321081184, 1.6111343375774299, 1.70739716327619, 1.82898010016074, 1.68018935252361, 2.01269547875704, 1.67756850936924, 1.81271490808869, 1.5903583012954199, 1.43090005789902, 1.45299322354663, 1.39674909997343, 1.39675783668407, 1.30509984067737, 1.28630084494473, 1.03612887068416, 1.18958351222326, 1.14254018173385], "type": "scatter"}], "layout": {"annotations": [{"showarrow": false, "text": "Ecological Footprint of consumption in global hectares (gha) divided by population", "x": 0.0, "xref": "paper", "y": -0.1, "yref": "paper"}], "font": {"family": "Arial"}, "hovermode": "closest", "legend": {"title": {"font": {"family": "Arial"}}, "orientation": "h", "xanchor": "center", "yanchor": "top", "x": 0.5, "y": 1.0}, "margin": {"b": 40, "l": 20, "r": 20, "t": 35}, "showlegend": true, "title": {"font": {"family": "Arial", "size": 16}, "text": "Mexico: Ecological Footprint per person", "x": 0.5}, "template": {"data": {"histogram2dcontour": [{"type": "histogram2dcontour", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "choropleth": [{"type": "choropleth", "colorbar": {"outlinewidth": 0, "ticks": ""}}], "histogram2d": [{"type": "histogram2d", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "heatmap": [{"type": "heatmap", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "heatmapgl": [{"type": "heatmapgl", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "contourcarpet": [{"type": "contourcarpet", "colorbar": {"outlinewidth": 0, "ticks": ""}}], "contour": [{"type": "contour", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "surface": [{"type": "surface", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "mesh3d": [{"type": "mesh3d", "colorbar": {"outlinewidth": 0, "ticks": ""}}], "scatter": [{"fillpattern": {"fillmode": "overlay", "size": 10, "solidity": 0.2}, "type": "scatter"}], "parcoords": [{"type": "parcoords", "line": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scatterpolargl": [{"type": "scatterpolargl", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "bar": [{"error_x": {"color": "#2a3f5f"}, "error_y": {"color": "#2a3f5f"}, "marker": {"line": {"color": "#E5ECF6", "width": 0.5}, "pattern": {"fillmode": "overlay", "size": 10, "solidity": 0.2}}, "type": "bar"}], "scattergeo": [{"type": "scattergeo", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scatterpolar": [{"type": "scatterpolar", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "histogram": [{"marker": {"pattern": {"fillmode": "overlay", "size": 10, "solidity": 0.2}}, "type": "histogram"}], "scattergl": [{"type": "scattergl", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scatter3d": [{"type": "scatter3d", "line": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scattermapbox": [{"type": "scattermapbox", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scatterternary": [{"type": "scatterternary", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scattercarpet": [{"type": "scattercarpet", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "carpet": [{"aaxis": {"endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f"}, "baxis": {"endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f"}, "type": "carpet"}], "table": [{"cells": {"fill": {"color": "#EBF0F8"}, "line": {"color": "white"}}, "header": {"fill": {"color": "#C8D4E3"}, "line": {"color": "white"}}, "type": "table"}], "barpolar": [{"marker": {"line": {"color": "#E5ECF6", "width": 0.5}, "pattern": {"fillmode": "overlay", "size": 10, "solidity": 0.2}}, "type": "barpolar"}], "pie": [{"automargin": true, "type": "pie"}]}, "layout": {"autotypenumbers": "strict", "colorway": ["#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52"], "font": {"color": "#2a3f5f"}, "hovermode": "closest", "hoverlabel": {"align": "left"}, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": {"bgcolor": "#E5ECF6", "angularaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "radialaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}}, "ternary": {"bgcolor": "#E5ECF6", "aaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "baxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "caxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}}, "coloraxis": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "colorscale": {"sequential": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "sequentialminus": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "diverging": [[0, "#8e0152"], [0.1, "#c51b7d"], [0.2, "#de77ae"], [0.3, "#f1b6da"], [0.4, "#fde0ef"], [0.5, "#f7f7f7"], [0.6, "#e6f5d0"], [0.7, "#b8e186"], [0.8, "#7fbc41"], [0.9, "#4d9221"], [1, "#276419"]]}, "xaxis": {"gridcolor": "white", "linecolor": "white", "ticks": "", "title": {"standoff": 15}, "zerolinecolor": "white", "automargin": true, "zerolinewidth": 2}, "yaxis": {"gridcolor": "white", "linecolor": "white", "ticks": "", "title": {"standoff": 15}, "zerolinecolor": "white", "automargin": true, "zerolinewidth": 2}, "scene": {"xaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white", "gridwidth": 2}, "yaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white", "gridwidth": 2}, "zaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white", "gridwidth": 2}}, "shapedefaults": {"line": {"color": "#2a3f5f"}}, "annotationdefaults": {"arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1}, "geo": {"bgcolor": "white", "landcolor": "#E5ECF6", "subunitcolor": "white", "showland": true, "showlakes": true, "lakecolor": "white"}, "title": {"x": 0.05}, "mapbox": {"style": "light"}}}}};
Plotly.plot('cons-footprint-plot', graphs, {}, {responsive: true});
var graphs = {"data": [{"dx": 1, "dy": 1, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "total", "text": ["total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total", "total"], "textposition": "top center", "x": {"dtype": "i2", "bdata": "qQeqB6sHrAetB64HrwewB7EHsgezB7QHtQe2B7cHuAe5B7oHuwe8B70Hvge/B8AHwQfCB8MHxAfFB8YHxwfIB8kHygfLB8wHzQfOB88H0AfRB9IH0wfUB9UH1gfXB9gH2QfaB9sH3AfdB94H3wfgB+EH4gfjB+QH5QfmBw=="}, "y": {"dtype": "f8", "bdata": "wRLLh0ecAEAWb2o56xEAQLQEJX3V2f8/Gmrbkp0hAEBZzv8wIqn+P5bKQmQU7f4/atF0kE8iAEBZdIQ4DAQAQJji1wGwyf8/4wbU0qcYAUCHFSTAWdQAQJwcfFGeowBA5R+nP6YWAkDRuLhY/QkDQE7PnSsQAQNAf1YdSxITAkAre3H3//8BQIC8rgvfkQJACBontqheA0AAeWXNHtUEQM8LyanmnAVA8I6Qv74EBEAEZPGLM6kCQEHudgHEjANAd0fYlqM8BECs0iX9BtYCQG9pCseNBgNASM5LgR4IBEAyj4BtaaUEQN77nbvBvgRA5zGGUnceBUBomy6kI9QEQNLh3AzfGwVANxrPvFevBkAMe8L38iAFQMhCZ6hhgAhAyhszmFdOCECe/eUzzj0IQBS7MPBerxBAbZUT7CO7CEDZ/uyvHIwMQDYdaO58hQlAVtCzk/22BkCyfiQJ2hsGQDqcyND1OQhACJHNooACCUArRRsM27EJQMIPTuc2FgpAEZga554BCEAwn3xVDZ4KQO0suFa0bQdAxaxBXSV+CECqoEIPoYgGQGwUZ7gFaAVAz3q2rVGHBUBS9SOy4FoFQFGyuE6NbAVAfpYg3juUBECYQn0ONioEQMlrwF/FhgFA9wfzFpK1AkDlEQp2JkgCQA=="}, "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "builtup land", "text": ["builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand", "builtupLand"], "x": {"dtype": "i2", "bdata": "qQeqB6sHrAetB64HrwewB7EHsgezB7QHtQe2B7cHuAe5B7oHuwe8B70Hvge/B8AHwQfCB8MHxAfFB8YHxwfIB8kHygfLB8wHzQfOB88H0AfRB9IH0wfUB9UH1gfXB9gH2QfaB9sH3AfdB94H3wfgB+EH4gfjB+QH5QfmBw=="}, "y": {"dtype": "f8", "bdata": "E5IJ4oWeoD/7e8XYjFuiPzNn3b72TKM/iIJZW+kMpj+LfffsQZmoP67uDCz406k/paJGxyaoqT9HaWCVelyqP/DO4LC6rao/JhFt6CuDrT8chP5Hx4KtPw53W8bI7aw/Bam+LLr6rD9L/AHM6LasPxo473SC1K0/f1krF05tqz9y1vSLf0OrPxJbWvlzba8/0C/FR3bFrT98PheZXzmwP76+P6RAQLA/ORBcsj3yrz/pRnn0hxewP9jtubNG0LA/As8NyEFwsT8ivuEklcGyP/MtC1wEdrI/qJsNheHfsD/RixkMEW6wP3itWQIQIrA/PfKyzGSBrT9dPgHqoYeuP+ACzh3r2q4/2XK9gEl5rj9LsIXPGhevP0Y3tz5+GbA/8buSimPhrz8q2l9YbsawP7j3mCOmWbA/FAFpfVpurz+HTA0yKN2wP3mDeN5Cl68//C076fVfsD/C0pu3vOywPz2WqmRahLA/qLyY/sjEsD9TcclhxrKwP66F2YE58bA/eo/dtm4VsD+hFQ3mJcawP0yby8HKzK4/kxkq7+6SsD+REzLCXiayP4LxE8RgHrI/2px9q5jqsT8Eq7Vx6R+zPy2nAAPBtbQ/DSfLVBXRtD8AXx5DUJm1P0gqlPfw9bQ/cBU1WggPtT9aJBmiuiK1Pw=="}, "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "crop land", "text": ["cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand", "cropLand"], "x": {"dtype": "i2", "bdata": "qQeqB6sHrAetB64HrwewB7EHsgezB7QHtQe2B7cHuAe5B7oHuwe8B70Hvge/B8AHwQfCB8MHxAfFB8YHxwfIB8kHygfLB8wHzQfOB88H0AfRB9IH0wfUB9UH1gfXB9gH2QfaB9sH3AfdB94H3wfgB+EH4gfjB+QH5QfmBw=="}, "y": {"dtype": "f8", "bdata": "z3yKCiPw3D+opmNhY/7bP3aWjIcW39s/rPZMjP7H3D+9FuVz31TZP21dPWzBytk/jRIr1DZJ2T/zQw7cvtraP9AE4hyNLdo/lcQ2o8Ri3D9RumHMH0XZP4+AQBKLj9g/UxmjM1L/2j/pdZBis6neP/nIXiuXZd0/L7FnFMNO2T+L9hfot7XaP2jxMk/3Kt0/iDt3nSsr3T9OtI76N6jhPzOWpBpGwOE/YgFPYpvV4D9X968Xss7hP/BLQTPdWuE/cDabivDG4D9YcgMtDYneP2H/CHxD/d8/SrsggAum4D8LkljBPGnhP5hHcVuHvuM/n2PTOid64z9/ug6p3VDkPwxuzIr4DuQ/mQO/XO1V4z8zbzu1RUXhP8SXwO/U3eM/M4W4QhCP4z/KVFSYlKDkP3SzcOLmZOU/NG3K337d5T8/OyW1pnvmP7nzqYMSJec/ZN1DKPnT5j+HNhKkqiHmP/C7ESwhDOY/EN83nC6c5j/nb4jC5MrlP1NcIJ3sruQ/R24EKpLw4z8cwegVC9TjPwNtLCyAS+M/jSPoqLOm4z93cZ9j4/3hP1/gpO5bgeI//zysZMTp4T8YTqeZ8IfiP8U7Y/iMR+I/WVmejSRH4j/ZZnvV7vDhPwrdJ1ny9N8/aIhiQkzH3z9MXEV7UZTfPw=="}, "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "forest land", "text": ["forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand", "forestLand"], "x": {"dtype": "i2", "bdata": "qQeqB6sHrAetB64HrwewB7EHsgezB7QHtQe2B7cHuAe5B7oHuwe8B70Hvge/B8AHwQfCB8MHxAfFB8YHxwfIB8kHygfLB8wHzQfOB88H0AfRB9IH0wfUB9UH1gfXB9gH2QfaB9sH3AfdB94H3wfgB+EH4gfjB+QH5QfmBw=="}, "y": {"dtype": "f8", "bdata": "MnBm7D2i0z/c8Jcd1vTTP5QCgXdM7tM/fhM0BSrm0z/IbjE6ItLTP8iZS5QzPtM/tAsXURqc0z8wzWqcVknTPwG/FMclQtM/1YAEwQ760z8HlJBnb3XSPwql8GzzLtI/NmNftq0l0j//UL1U1vTSP4wfrOn7odI/4A2gpaKU0j+sx8rpk6XSP4a2gR7C1M8/F8u7dd9d0D9l/BzLDE7RP+FHuwuC4tA/zlnwqc260D+4CmrNUF7QP9tfwcdyMdA/jbZc/QR60D8mNBQh0zTQP7GUy8CnWtA/FLVhs51E0D8zDIBel0jQP6ncbcmo7M8/WZwWa/jKzz/ZPgOJIAvQPzXz4bgwqNA/5uLUU8lf0D8UQK4n/TrQP9h+hzRdic4/yW5NCELIzz/5QNL1tbvQPyHpD9K48tE/9uLL1pQZ0z+DDVApFU7RP9uUOSETFtE/858V9jLY0T96nH7JhfTSP4uO8w/O99I/B+WALqSm1D/VC5bu0h/VP5ieiOSf0dM/Htk29TFY0D/Ycv/24wbRP5PVlvMFr9A/OJCs6Lqs0D9Ca50EftfQP/0FOXsYotA/b9boFBWp0D8y8PgACQ/RP7YkK218/dE/ysD1cejP0T9ecM1XI+vQP8of9PVfJNE/iTPYYOML0T8qKu/BivDQPw=="}, "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "fishing ground", "text": ["fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround", "fishingGround"], "x": {"dtype": "i2", "bdata": "qQeqB6sHrAetB64HrwewB7EHsgezB7QHtQe2B7cHuAe5B7oHuwe8B70Hvge/B8AHwQfCB8MHxAfFB8YHxwfIB8kHygfLB8wHzQfOB88H0AfRB9IH0wfUB9UH1gfXB9gH2QfaB9sH3AfdB94H3wfgB+EH4gfjB+QH5QfmBw=="}, "y": {"dtype": "f8", "bdata": "8Ec1raxTsT+IjYN43rSyP72zkIILELQ/3xxbIANJrz8sLbNuh42sPyFOV0Jpra4/zOd1pKA4sD925hbesHKsP1dsA6aL+Ks/urLiPuberT8LlLEHk/CwP8FGrCFRIbE/uKwXNegIsz8fiwZTP9mwP68kbiIFr7A/W/hBAPeWqT9wSiwwcn2nP2C7r7kuIrA/ONy7g8dTsj/bFTceta2zP+LnBf5Ek7o/pXGTo3HMsz8ETfWuJSmxP8paIkVYdLc/phq3POBFtT+l8cPRbYi0P2R2gwQ8jbU/Jq/Aj4l9uD8wi3yGaSu6Px+4+qy7Z7w/er16JI2Guj8D9Okd1Qa6P5Pkfxfvtro/03CZm7oHvD+f7Ksa2k68PxxtJwmz5b0/Io2XAl1lvz8DIen67hq5PyMr+QLkR7o/hSlnbrEBuD+9prVy6xe3P5GHfKfuArk/9MyHefQguD/w5hoWxpi5P56/lI8xqro/GIzt/64UuD9I+jEthQu5P6XPTWsrCrc/YqkJgEHQtD8acCuifhm2P48osJl7RrM/ualEcFGVsj/Kp9eTfdC1P53ESqhPrbk/UnO7gWO2vT/L6baMgKi+P8qvmGkIeb4/TFIheyMWvT+hwWJzSWC7P9alNSXbMLo/kMm1lHELuj9f1A6PqeG5Pw=="}, "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "grazing land", "text": ["grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand", "grazingLand"], "x": {"dtype": "i2", "bdata": "qQeqB6sHrAetB64HrwewB7EHsgezB7QHtQe2B7cHuAe5B7oHuwe8B70Hvge/B8AHwQfCB8MHxAfFB8YHxwfIB8kHygfLB8wHzQfOB88H0AfRB9IH0wfUB9UH1gfXB9gH2QfaB9sH3AfdB94H3wfgB+EH4gfjB+QH5QfmBw=="}, "y": {"dtype": "f8", "bdata": "pKbv4sYB5z8nZOiOvDvmP7xbDcxn5eU/2h2/i/sn5j+woW4dwEvlP4ZOr5i7ROQ/I96+17Tt4z/ycS3TgNHiP1y13GWm1+E/lRp9Xv8z4T/v9i/9D+HgP4L2wBv7998/eBvBq3vX3z/VLpXVZQ7gP8C9VQIC1t8/yYOsSF5G3j8YI88U2/PcPxfsjblpSds/PyyEnZLw2z9N9/UhTl3cP5sO/tL46ts/v2nDc0jA2j+2jV+9kGnaPzagM57yUNo/GjEtfXA+2j9zZNoSCIHYPx7jhd50INg/A+nEj31j2T8dO7AoQkPZPzBo+o/oKtg/1ajdW24Z2T/o7oVdoVjZP1L3O5Jg09c/IoGFyaoA2D/pwcqECMHUP+WG2snkgtY/YWXE9lDG1z9Kcn0hLXDYP8bVYywdLdg/jpGTEMBG2D907jpJ/RbYPz9mJgxYntg/1ICcn4Jf1j9tncvwZSXVPwGnxX4PK9U/vG6DfdLh1D/S5hBJqiPVPyzojlNiddQ/fPPP9fsR0z8xgIG0hrnRP02lCdwbH9A/GYfOZ+ZSzj95Xe7SPFfPPyi1+fImKc4/s+IPdLKvzT81uewNVcPNP+uP3IJNT80/mZTRaDuGzD/esx14EOfLPwcIZmBsBso/YY3XbD/hyT8nPi8Yu7fJPw=="}, "type": "scatter"}, {"connectgaps": true, "hoverinfo": "x+y+text", "marker": {"line": {"width": 0}, "showscale": false, "size": 2}, "mode": "lines+markers", "name": "carbon", "text": ["carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon", "carbon"], "x": {"dtype": "i2", "bdata": "qQeqB6sHrAetB64HrwewB7EHsgezB7QHtQe2B7cHuAe5B7oHuwe8B70Hvge/B8AHwQfCB8MHxAfFB8YHxwfIB8kHygfLB8wHzQfOB88H0AfRB9IH0wfUB9UH1gfXB9gH2QfaB9sH3AfdB94H3wfgB+EH4gfjB+QH5QfmBw=="}, "y": {"dtype": "f8", "bdata": "qNf5mZHj3z8jhk31/SvdP9Po66SBYdw/+HZlXg9k3T89G5avLUHcPzYOVzG5Ed8/ODFwVkqH4j/VYXCbsr/iPzhqacZ7meM/6mFAGBVK5z8sHfGT0JzoPzQk3Mc1QOk/UdNLipKr7T/T34U6tGPvP/wYlasmEfA/bGOk2SLn7z8B6qpOXazvP2A89wV/DvE/HICm1YFL8j+X9cmW2SzzP2UcbTQTefQ/vZTAPpGD8j8X+kKeFUrvP+4xQiA2R/E/HCt0aU/88j+ax6Sys2fxP6lKNYHPbvE/tLJwwFm98j8EYl9vponzP9e3YdFTzfI/uTCbaqyr8z/65ASZPZLyP7SjJTcXb/M/EpcozlXn9j/OEaIxm6L1P6i9aOsAwPo/8B7Royn1+T9CVJmAQ0L5P2hAwhZ9bAVAklyYQ+Uz+T/eOCwX6IAAQDm1N85sfvo/HvqshwJu9T8M6NGkC3j0P8gXlug6svg/FLmVzDTH+T/b3hiwf1H7P1maM6OAQ/0/NdICOw7i+j9kjFAWABoAQEylyBNS1/o/r2bzWOEA/T9sxs+LG3L5PzBViHX35PY/CxSH0nU/9z8vp5GVFVn2Py7Wz74eWfY/+ZXbXrDh9D8wrd0xsJT0P2R64N37k/A/aMGNuIgI8z/Cmq422EfyPw=="}, "type": "scatter"}], "layout": {"annotations": [{"showarrow": false, "text": "Ecological Footprint of consumption in global hectares (gha) divided by population", "x": 0.0, "xref": "paper", "y": -0.1, "yref": "paper"}], "font": {"family": "Arial"}, "hovermode": "closest", "legend": {"title": {"font": {"family": "Arial"}}, "orientation": "h", "xanchor": "center", "yanchor": "top", "x": 0.5, "y": 1.0}, "margin": {"b": 40, "l": 20, "r": 20, "t": 35}, "showlegend": true, "title": {"font": {"family": "Arial", "size": 16}, "text": "Mexico: Ecological Footprint per person", "x": 0.5}, "yaxis": {"tickformat": ".2f"}, "template": {"data": {"histogram2dcontour": [{"type": "histogram2dcontour", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "choropleth": [{"type": "choropleth", "colorbar": {"outlinewidth": 0, "ticks": ""}}], "histogram2d": [{"type": "histogram2d", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "heatmap": [{"type": "heatmap", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "contourcarpet": [{"type": "contourcarpet", "colorbar": {"outlinewidth": 0, "ticks": ""}}], "contour": [{"type": "contour", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "surface": [{"type": "surface", "colorbar": {"outlinewidth": 0, "ticks": ""}, "colorscale": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]]}], "mesh3d": [{"type": "mesh3d", "colorbar": {"outlinewidth": 0, "ticks": ""}}], "scatter": [{"fillpattern": {"fillmode": "overlay", "size": 10, "solidity": 0.2}, "type": "scatter"}], "parcoords": [{"type": "parcoords", "line": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scatterpolargl": [{"type": "scatterpolargl", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "bar": [{"error_x": {"color": "#2a3f5f"}, "error_y": {"color": "#2a3f5f"}, "marker": {"line": {"color": "#E5ECF6", "width": 0.5}, "pattern": {"fillmode": "overlay", "size": 10, "solidity": 0.2}}, "type": "bar"}], "scattergeo": [{"type": "scattergeo", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scatterpolar": [{"type": "scatterpolar", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "histogram": [{"marker": {"pattern": {"fillmode": "overlay", "size": 10, "solidity": 0.2}}, "type": "histogram"}], "scattergl": [{"type": "scattergl", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scatter3d": [{"type": "scatter3d", "line": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scattermap": [{"type": "scattermap", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scattermapbox": [{"type": "scattermapbox", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scatterternary": [{"type": "scatterternary", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "scattercarpet": [{"type": "scattercarpet", "marker": {"colorbar": {"outlinewidth": 0, "ticks": ""}}}], "carpet": [{"aaxis": {"endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f"}, "baxis": {"endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f"}, "type": "carpet"}], "table": [{"cells": {"fill": {"color": "#EBF0F8"}, "line": {"color": "white"}}, "header": {"fill": {"color": "#C8D4E3"}, "line": {"color": "white"}}, "type": "table"}], "barpolar": [{"marker": {"line": {"color": "#E5ECF6", "width": 0.5}, "pattern": {"fillmode": "overlay", "size": 10, "solidity": 0.2}}, "type": "barpolar"}], "pie": [{"automargin": true, "type": "pie"}]}, "layout": {"autotypenumbers": "strict", "colorway": ["#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52"], "font": {"color": "#2a3f5f"}, "hovermode": "closest", "hoverlabel": {"align": "left"}, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": {"bgcolor": "#E5ECF6", "angularaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "radialaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}}, "ternary": {"bgcolor": "#E5ECF6", "aaxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "baxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}, "caxis": {"gridcolor": "white", "linecolor": "white", "ticks": ""}}, "coloraxis": {"colorbar": {"outlinewidth": 0, "ticks": ""}}, "colorscale": {"sequential": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "sequentialminus": [[0.0, "#0d0887"], [0.1111111111111111, "#46039f"], [0.2222222222222222, "#7201a8"], [0.3333333333333333, "#9c179e"], [0.4444444444444444, "#bd3786"], [0.5555555555555556, "#d8576b"], [0.6666666666666666, "#ed7953"], [0.7777777777777778, "#fb9f3a"], [0.8888888888888888, "#fdca26"], [1.0, "#f0f921"]], "diverging": [[0, "#8e0152"], [0.1, "#c51b7d"], [0.2, "#de77ae"], [0.3, "#f1b6da"], [0.4, "#fde0ef"], [0.5, "#f7f7f7"], [0.6, "#e6f5d0"], [0.7, "#b8e186"], [0.8, "#7fbc41"], [0.9, "#4d9221"], [1, "#276419"]]}, "xaxis": {"gridcolor": "white", "linecolor": "white", "ticks": "", "title": {"standoff": 15}, "zerolinecolor": "white", "automargin": true, "zerolinewidth": 2}, "yaxis": {"gridcolor": "white", "linecolor": "white", "ticks": "", "title": {"standoff": 15}, "zerolinecolor": "white", "automargin": true, "zerolinewidth": 2}, "scene": {"xaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white", "gridwidth": 2}, "yaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white", "gridwidth": 2}, "zaxis": {"backgroundcolor": "#E5ECF6", "gridcolor": "white", "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white", "gridwidth": 2}}, "shapedefaults": {"line": {"color": "#2a3f5f"}}, "annotationdefaults": {"arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1}, "geo": {"bgcolor": "white", "landcolor": "#E5ECF6", "subunitcolor": "white", "showland": true, "showlakes": true, "lakecolor": "white"}, "title": {"x": 0.05}, "mapbox": {"style": "light"}}}}};
Plotly.plot('cons-footprint-plot', graphs, {}, {responsive: true});
Using the latest Plotly v6.0.0, my Flask web application no longer correctly displays a Plotly figure. While axes, background, and title renders, the plot displays an empty region with no data where a set of lines should be. The Flask UI receives a JSON string of a Plotly figure using
json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder).Comparing between prod (v5.24.1) and dev (6.0.0) version of app shows embedded base64 encoding in
bdataelements within the JSON content. And release notes indicate the following changes:With this update, should I use a different class other than
PlotlyJSONEncoderfor JSON string rendering of Plotly figures?Reproducible Example
Python
Production (v5.24.1) vs Development (v6.0.0)
Comparing between my production and development version of same code generates following differences viewable on https://jsfiddle.net.
Prod (no issue with desired plot display)
HTML
JS
Dev (empty line plots)
HTML
JS