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:
importjsonimportpandasaspdimportplotlyimportplotly.graph_objectsasgomexico_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}})
defbuild_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)
forftypein [
"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),
)
returnjson.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.
vargraphs={"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});vargraphs={"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