Anomaly quadrants coloured by season
Scatter2D graphs are a fundamental visualization tool used to display the relationship between two numerical variables. Each data point is represented as a dot on a two-dimensional plane, where the x-coordinate and y-coordinate correspond to the values of the two variables. This allows for quick identification of trends, clusters, and outliers in the data. Applications range from scientific data analysis to business intelligence, making them highly versatile. Creating effective Scatter2D graphs involves careful consideration of axis scaling, labeling, and color-coding. Highlighting specific data points or regions can improve understanding. Interactive Scatter2D plots further enhance exploration, allowing users to zoom, pan, and select individual data points for detailed examination. Choosing appropriate visualization tools greatly impacts the ability to draw meaningful insights from data.
<html>
<head>
<!-- Include the CanvasXpress library in your HTML file -->
<link rel="stylesheet" href="https://www.canvasxpress.org/dist/canvasXpress.css" type="text/css"/>
<script src="https://www.canvasxpress.org/dist/canvasXpress.min.js"></script>
</head>
<body>
<!-- Create a canvas element for the chart with the desired dimensions -->
<div>
<canvas id="canvasId" width="600" height="600"></canvas>
</div>
<!-- Create a script to initialize the chart -->
<script>
// Use a data frame (2D-array) for the graph
var data =
// Create the configuration for the graph
var config = {
"graphType" : "Scatter2D",
"titleAlign" : "plot::0",
"subtitleAlign" : "plot::0",
"legendHorizontalJustification" : 0,
"legendJustifyTo" : "plot",
"theme" : "bw",
"title" : "How much hotter & drier was each season since 2010?",
"subtitle" : "Colors indicate the seasons: spring, summer, autumn, winter",
"xAxis" : [
"Temperature anomaly (°C)"
],
"yAxis" : [
"Precipitation anomaly (%)"
],
"colorBy" : "Season",
"colorScheme" : "User",
"colors" : [
"#B22030",
"#F7B500",
"#2E8B00",
"#6699FF"
],
"setMinX" : -2,
"setMaxX" : 5,
"setMinY" : -60,
"setMaxY" : 60,
"sizes" : [
8
],
"showSizeLegend" : false,
"showLegend" : true,
"legendPosition" : "top",
"xAxisTitle" : "Temperature anomaly (°C)",
"yAxisTitle" : "Precipitation anomaly (%)",
"showDecorations" : true,
"decorations" : {
"line" : [
{
"x" : 0,
"y" : 0,
"x2" : 0.77,
"y2" : -21.2,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : -0.09,
"y2" : -13.09,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : -1.18,
"y2" : 32.6,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.96,
"y2" : -4.72,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.46,
"y2" : -10.03,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.84,
"y2" : 11.74,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.24,
"y2" : 14.76,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.42,
"y2" : 45.5,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.28,
"y2" : -25.88,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.91,
"y2" : -29,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.2,
"y2" : -5.23,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.09,
"y2" : 15.02,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.53,
"y2" : 7.05,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.42,
"y2" : -35.04,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.23,
"y2" : 6.23,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.48,
"y2" : 47.73,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.7,
"y2" : 30.28,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.28,
"y2" : -11.12,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.72,
"y2" : -22.01,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : -0.1,
"y2" : 6.23,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.43,
"y2" : -8.61,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.63,
"y2" : -6.24,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.58,
"y2" : -13.96,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.33,
"y2" : 22.55,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.68,
"y2" : 37.06,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.38,
"y2" : -7.47,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.46,
"y2" : -7.87,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.25,
"y2" : 20.49,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.24,
"y2" : 21.98,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.8,
"y2" : -16.65,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.91,
"y2" : 20.43,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.12,
"y2" : 15.55,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.15,
"y2" : -1.17,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.92,
"y2" : -41.57,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.64,
"y2" : -2.33,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.27,
"y2" : 26.65,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.4,
"y2" : -17.49,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.72,
"y2" : -11.81,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.21,
"y2" : -13.37,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.5,
"y2" : 9.46,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.07,
"y2" : 22.33,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.11,
"y2" : -40.88,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.66,
"y2" : -22.57,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 4.91,
"y2" : 12.42,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"color" : "#222",
"width" : 1
},
{
"y" : 0,
"color" : "#222",
"width" : 1
}
],
"marker" : [
{
"type" : "text",
"variable" : "Summer 2019",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Colder & wetter",
"x" : 0.1,
"y" : 0.04,
"fontSize" : 14,
"color" : "rgb(140,140,140)"
},
{
"type" : "text",
"variable" : "Summer 2019",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Hotter & wetter",
"x" : 0.9,
"y" : 0.04,
"fontSize" : 14,
"color" : "rgb(140,140,140)"
},
{
"type" : "text",
"variable" : "Summer 2019",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Colder & drier",
"x" : 0.1,
"y" : 0.96,
"fontSize" : 14,
"color" : "rgb(140,140,140)"
},
{
"type" : "text",
"variable" : "Summer 2019",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Hotter & drier",
"x" : 0.9,
"y" : 0.96,
"fontSize" : 14,
"color" : "rgb(140,140,140)"
},
{
"type" : "text",
"variable" : "Winter 2020",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Winter 2020",
"offsetX" : -12,
"offsetY" : -14,
"align" : "right"
},
{
"type" : "text",
"variable" : "Winter 2013",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Winter 2013",
"offsetX" : 0,
"offsetY" : -14,
"align" : "center"
},
{
"type" : "text",
"variable" : "Summer 2018",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Summer 2018",
"offsetX" : 0,
"offsetY" : 16,
"align" : "center"
},
{
"type" : "text",
"variable" : "Autumn 2010",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Autumn 2010",
"offsetX" : 0,
"offsetY" : -14,
"align" : "center"
}
]
}
}
// Event used to create graph (optional)
var events = false
// Call the CanvasXpress function to create the graph
var cX = new CanvasXpress("canvasId", data, config, events);
</script>
</body>
</html>
<html>
<head>
<!-- Include the CanvasXpress library in your HTML file -->
<link rel="stylesheet" href="https://www.canvasxpress.org/dist/canvasXpress.css" type="text/css"/>
<script src="https://www.canvasxpress.org/dist/canvasXpress.min.js"></script>
</head>
<body>
<!-- Create a canvas element for the chart with the desired dimensions -->
<div>
<canvas id="canvasId" width="600" height="600"></canvas>
</div>
<!-- Create a script to initialize the chart -->
<script>
// Create the data for the graph
var data = {
"y" : {
"vars" : [
"Spring 2010",
"Summer 2010",
"Autumn 2010",
"Winter 2010",
"Spring 2011",
"Summer 2011",
"Autumn 2011",
"Winter 2011",
"Spring 2012",
"Summer 2012",
"Autumn 2012",
"Winter 2012",
"Spring 2013",
"Summer 2013",
"Autumn 2013",
"Winter 2013",
"Spring 2014",
"Summer 2014",
"Autumn 2014",
"Winter 2014",
"Spring 2015",
"Summer 2015",
"Autumn 2015",
"Winter 2015",
"Spring 2016",
"Summer 2016",
"Autumn 2016",
"Winter 2016",
"Spring 2017",
"Summer 2017",
"Autumn 2017",
"Winter 2017",
"Spring 2018",
"Summer 2018",
"Autumn 2018",
"Winter 2018",
"Spring 2019",
"Summer 2019",
"Autumn 2019",
"Winter 2019",
"Spring 2020",
"Summer 2020",
"Autumn 2020",
"Winter 2020"
],
"smps" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"data" : [
[
0.77,
-21.2
],
[
-0.09,
-13.09
],
[
-1.18,
32.6
],
[
0.96,
-4.72
],
[
0.46,
-10.03
],
[
0.84,
11.74
],
[
0.24,
14.76
],
[
1.42,
45.5
],
[
1.28,
-25.88
],
[
0.91,
-29
],
[
0.2,
-5.23
],
[
2.09,
15.02
],
[
0.53,
7.05
],
[
0.42,
-35.04
],
[
1.23,
6.23
],
[
2.48,
47.73
],
[
0.7,
30.28
],
[
1.28,
-11.12
],
[
0.72,
-22.01
],
[
-0.1,
6.23
],
[
1.43,
-8.61
],
[
2.63,
-6.24
],
[
0.58,
-13.96
],
[
2.33,
22.55
],
[
1.68,
37.06
],
[
0.38,
-7.47
],
[
2.46,
-7.87
],
[
2.25,
20.49
],
[
2.24,
21.98
],
[
1.8,
-16.65
],
[
1.91,
20.43
],
[
2.12,
15.55
],
[
1.15,
-1.17
],
[
1.92,
-41.57
],
[
1.64,
-2.33
],
[
2.27,
26.65
],
[
2.4,
-17.49
],
[
1.72,
-11.81
],
[
1.21,
-13.37
],
[
2.5,
9.46
],
[
2.07,
22.33
],
[
2.11,
-40.88
],
[
2.66,
-22.57
],
[
4.91,
12.42
]
]
},
"z" : {
"Season" : [
"Spring",
"Summer",
"Autumn",
"Winter",
"Spring",
"Summer",
"Autumn",
"Winter",
"Spring",
"Summer",
"Autumn",
"Winter",
"Spring",
"Summer",
"Autumn",
"Winter",
"Spring",
"Summer",
"Autumn",
"Winter",
"Spring",
"Summer",
"Autumn",
"Winter",
"Spring",
"Summer",
"Autumn",
"Winter",
"Spring",
"Summer",
"Autumn",
"Winter",
"Spring",
"Summer",
"Autumn",
"Winter",
"Spring",
"Summer",
"Autumn",
"Winter",
"Spring",
"Summer",
"Autumn",
"Winter"
]
}
}
// Create the configuration for the graph
var config = {
"graphType" : "Scatter2D",
"titleAlign" : "plot::0",
"subtitleAlign" : "plot::0",
"legendHorizontalJustification" : 0,
"legendJustifyTo" : "plot",
"theme" : "bw",
"title" : "How much hotter & drier was each season since 2010?",
"subtitle" : "Colors indicate the seasons: spring, summer, autumn, winter",
"xAxis" : [
"Temperature anomaly (°C)"
],
"yAxis" : [
"Precipitation anomaly (%)"
],
"colorBy" : "Season",
"colorScheme" : "User",
"colors" : [
"#B22030",
"#F7B500",
"#2E8B00",
"#6699FF"
],
"setMinX" : -2,
"setMaxX" : 5,
"setMinY" : -60,
"setMaxY" : 60,
"sizes" : [
8
],
"showSizeLegend" : false,
"showLegend" : true,
"legendPosition" : "top",
"xAxisTitle" : "Temperature anomaly (°C)",
"yAxisTitle" : "Precipitation anomaly (%)",
"showDecorations" : true,
"decorations" : {
"line" : [
{
"x" : 0,
"y" : 0,
"x2" : 0.77,
"y2" : -21.2,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : -0.09,
"y2" : -13.09,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : -1.18,
"y2" : 32.6,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.96,
"y2" : -4.72,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.46,
"y2" : -10.03,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.84,
"y2" : 11.74,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.24,
"y2" : 14.76,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.42,
"y2" : 45.5,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.28,
"y2" : -25.88,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.91,
"y2" : -29,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.2,
"y2" : -5.23,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.09,
"y2" : 15.02,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.53,
"y2" : 7.05,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.42,
"y2" : -35.04,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.23,
"y2" : 6.23,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.48,
"y2" : 47.73,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.7,
"y2" : 30.28,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.28,
"y2" : -11.12,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.72,
"y2" : -22.01,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : -0.1,
"y2" : 6.23,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.43,
"y2" : -8.61,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.63,
"y2" : -6.24,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.58,
"y2" : -13.96,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.33,
"y2" : 22.55,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.68,
"y2" : 37.06,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 0.38,
"y2" : -7.47,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.46,
"y2" : -7.87,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.25,
"y2" : 20.49,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.24,
"y2" : 21.98,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.8,
"y2" : -16.65,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.91,
"y2" : 20.43,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.12,
"y2" : 15.55,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.15,
"y2" : -1.17,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.92,
"y2" : -41.57,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.64,
"y2" : -2.33,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.27,
"y2" : 26.65,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.4,
"y2" : -17.49,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.72,
"y2" : -11.81,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 1.21,
"y2" : -13.37,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.5,
"y2" : 9.46,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.07,
"y2" : 22.33,
"color" : "rgba(240,180,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.11,
"y2" : -40.88,
"color" : "rgba(60,140,0,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 2.66,
"y2" : -22.57,
"color" : "rgba(170,30,40,0.35)",
"width" : 2
},
{
"x" : 0,
"y" : 0,
"x2" : 4.91,
"y2" : 12.42,
"color" : "rgba(90,140,255,0.35)",
"width" : 2
},
{
"x" : 0,
"color" : "#222",
"width" : 1
},
{
"y" : 0,
"color" : "#222",
"width" : 1
}
],
"marker" : [
{
"type" : "text",
"variable" : "Summer 2019",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Colder & wetter",
"x" : 0.1,
"y" : 0.04,
"fontSize" : 14,
"color" : "rgb(140,140,140)"
},
{
"type" : "text",
"variable" : "Summer 2019",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Hotter & wetter",
"x" : 0.9,
"y" : 0.04,
"fontSize" : 14,
"color" : "rgb(140,140,140)"
},
{
"type" : "text",
"variable" : "Summer 2019",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Colder & drier",
"x" : 0.1,
"y" : 0.96,
"fontSize" : 14,
"color" : "rgb(140,140,140)"
},
{
"type" : "text",
"variable" : "Summer 2019",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Hotter & drier",
"x" : 0.9,
"y" : 0.96,
"fontSize" : 14,
"color" : "rgb(140,140,140)"
},
{
"type" : "text",
"variable" : "Winter 2020",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Winter 2020",
"offsetX" : -12,
"offsetY" : -14,
"align" : "right"
},
{
"type" : "text",
"variable" : "Winter 2013",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Winter 2013",
"offsetX" : 0,
"offsetY" : -14,
"align" : "center"
},
{
"type" : "text",
"variable" : "Summer 2018",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Summer 2018",
"offsetX" : 0,
"offsetY" : 16,
"align" : "center"
},
{
"type" : "text",
"variable" : "Autumn 2010",
"sample" : [
"Temperature anomaly (°C)",
"Precipitation anomaly (%)"
],
"text" : "Autumn 2010",
"offsetX" : 0,
"offsetY" : -14,
"align" : "center"
}
]
}
}
// Event used to create graph (optional)
var events = false
// Call the CanvasXpress function to create the graph
var cX = new CanvasXpress("canvasId", data, config, events);
</script>
</body>
</html>
library(canvasXpress)
y=read.table("https://www.canvasxpress.org/data/r/cX-scatter2d31-dat.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
z=read.table("https://www.canvasxpress.org/data/r/cX-scatter2d31-var.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
canvasXpress(
data=y,
varAnnot=z,
colorBy="Season",
colorScheme="User",
colors=list("#B22030", "#F7B500", "#2E8B00", "#6699FF"),
decorations=list(line=list(list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=0.77, y=0, y2=-21.2), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=-0.09, y=0, y2=-13.09), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=-1.18, y=0, y2=32.6), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=0.96, y=0, y2=-4.72), list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=0.46, y=0, y2=-10.03), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=0.84, y=0, y2=11.74), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=0.24, y=0, y2=14.76), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=1.42, y=0, y2=45.5), list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=1.28, y=0, y2=-25.88), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=0.91, y=0, y2=-29), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=0.2, y=0, y2=-5.23), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=2.09, y=0, y2=15.02), list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=0.53, y=0, y2=7.05), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=0.42, y=0, y2=-35.04), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=1.23, y=0, y2=6.23), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=2.48, y=0, y2=47.73), list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=0.7, y=0, y2=30.28), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=1.28, y=0, y2=-11.12), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=0.72, y=0, y2=-22.01), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=-0.1, y=0, y2=6.23), list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=1.43, y=0, y2=-8.61), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=2.63, y=0, y2=-6.24), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=0.58, y=0, y2=-13.96), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=2.33, y=0, y2=22.55), list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=1.68, y=0, y2=37.06), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=0.38, y=0, y2=-7.47), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=2.46, y=0, y2=-7.87), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=2.25, y=0, y2=20.49), list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=2.24, y=0, y2=21.98), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=1.8, y=0, y2=-16.65), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=1.91, y=0, y2=20.43), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=2.12, y=0, y2=15.55), list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=1.15, y=0, y2=-1.17), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=1.92, y=0, y2=-41.57), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=1.64, y=0, y2=-2.33), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=2.27, y=0, y2=26.65), list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=2.4, y=0, y2=-17.49), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=1.72, y=0, y2=-11.81), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=1.21, y=0, y2=-13.37), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=2.5, y=0, y2=9.46), list(color="rgba(240,180,0,0.35)", width=2, x=0, x2=2.07, y=0, y2=22.33), list(color="rgba(60,140,0,0.35)", width=2, x=0, x2=2.11, y=0, y2=-40.88), list(color="rgba(170,30,40,0.35)", width=2, x=0, x2=2.66, y=0, y2=-22.57), list(color="rgba(90,140,255,0.35)", width=2, x=0, x2=4.91, y=0, y2=12.42), list(color="#222", width=1, x=0), list(color="#222", width=1, y=0)), marker=list(list(color="rgb(140,140,140)", fontSize=14, sample=list("Temperature anomaly (°C)", "Precipitation anomaly (%)"), text="Colder & wetter", type="text", variable="Summer 2019", x=0.1, y=0.04), list(color="rgb(140,140,140)", fontSize=14, sample=list("Temperature anomaly (°C)", "Precipitation anomaly (%)"), text="Hotter & wetter", type="text", variable="Summer 2019", x=0.9, y=0.04), list(color="rgb(140,140,140)", fontSize=14, sample=list("Temperature anomaly (°C)", "Precipitation anomaly (%)"), text="Colder & drier", type="text", variable="Summer 2019", x=0.1, y=0.96), list(color="rgb(140,140,140)", fontSize=14, sample=list("Temperature anomaly (°C)", "Precipitation anomaly (%)"), text="Hotter & drier", type="text", variable="Summer 2019", x=0.9, y=0.96), list(align="right", offsetX=-12, offsetY=-14, sample=list("Temperature anomaly (°C)", "Precipitation anomaly (%)"), text="Winter 2020", type="text", variable="Winter 2020"), list(align="center", offsetX=0, offsetY=-14, sample=list("Temperature anomaly (°C)", "Precipitation anomaly (%)"), text="Winter 2013", type="text", variable="Winter 2013"), list(align="center", offsetX=0, offsetY=16, sample=list("Temperature anomaly (°C)", "Precipitation anomaly (%)"), text="Summer 2018", type="text", variable="Summer 2018"), list(align="center", offsetX=0, offsetY=-14, sample=list("Temperature anomaly (°C)", "Precipitation anomaly (%)"), text="Autumn 2010", type="text", variable="Autumn 2010"))),
graphType="Scatter2D",
legendHorizontalJustification=0,
legendJustifyTo="plot",
legendPosition="top",
setMaxX=5,
setMaxY=60,
setMinX=-2,
setMinY=-60,
showDecorations=TRUE,
showLegend=TRUE,
showSizeLegend=FALSE,
sizes=list(8),
subtitle="Colors indicate the seasons: spring, summer, autumn, winter",
subtitleAlign="plot::0",
theme="bw",
title="How much hotter & drier was each season since 2010?",
titleAlign="plot::0",
xAxis=list("Temperature anomaly (°C)"),
xAxisTitle="Temperature anomaly (°C)",
yAxis=list("Precipitation anomaly (%)"),
yAxisTitle="Precipitation anomaly (%)"
)
from canvasxpress.canvas import CanvasXpress
from canvasxpress.plot import show_in_browser
if __name__ == "__main__":
# Define the chart with its data and configuration
chart: CanvasXpress = CanvasXpress(
render_to = "scatter2d31",
data = {
"y": {
"vars": ["Spring 2010", "Summer 2010", "Autumn 2010", "Winter 2010", "Spring 2011", "Summer 2011", "Autumn 2011", "Winter 2011", "Spring 2012", "Summer 2012", "Autumn 2012", "Winter 2012", "Spring 2013", "Summer 2013", "Autumn 2013", "Winter 2013", "Spring 2014", "Summer 2014", "Autumn 2014", "Winter 2014", "Spring 2015", "Summer 2015", "Autumn 2015", "Winter 2015", "Spring 2016", "Summer 2016", "Autumn 2016", "Winter 2016", "Spring 2017", "Summer 2017", "Autumn 2017", "Winter 2017", "Spring 2018", "Summer 2018", "Autumn 2018", "Winter 2018", "Spring 2019", "Summer 2019", "Autumn 2019", "Winter 2019", "Spring 2020", "Summer 2020", "Autumn 2020", "Winter 2020"],
"smps": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"data": [
[0.77, -21.2],
[-0.09, -13.09],
[-1.18, 32.6],
[0.96, -4.72],
[0.46, -10.03],
[0.84, 11.74],
[0.24, 14.76],
[1.42, 45.5],
[1.28, -25.88],
[0.91, -29],
[0.2, -5.23],
[2.09, 15.02],
[0.53, 7.05],
[0.42, -35.04],
[1.23, 6.23],
[2.48, 47.73],
[0.7, 30.28],
[1.28, -11.12],
[0.72, -22.01],
[-0.1, 6.23],
[1.43, -8.61],
[2.63, -6.24],
[0.58, -13.96],
[2.33, 22.55],
[1.68, 37.06],
[0.38, -7.47],
[2.46, -7.87],
[2.25, 20.49],
[2.24, 21.98],
[1.8, -16.65],
[1.91, 20.43],
[2.12, 15.55],
[1.15, -1.17],
[1.92, -41.57],
[1.64, -2.33],
[2.27, 26.65],
[2.4, -17.49],
[1.72, -11.81],
[1.21, -13.37],
[2.5, 9.46],
[2.07, 22.33],
[2.11, -40.88],
[2.66, -22.57],
[4.91, 12.42]
]
},
"z": {
"Season": ["Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter"]
}
},
config = {
"graphType": "Scatter2D",
"titleAlign": "plot::0",
"subtitleAlign": "plot::0",
"legendHorizontalJustification": 0,
"legendJustifyTo": "plot",
"theme": "bw",
"title": "How much hotter & drier was each season since 2010?",
"subtitle": "Colors indicate the seasons: spring, summer, autumn, winter",
"xAxis": ["Temperature anomaly (°C)"],
"yAxis": ["Precipitation anomaly (%)"],
"colorBy": "Season",
"colorScheme": "User",
"colors": ["#B22030", "#F7B500", "#2E8B00", "#6699FF"],
"setMinX": -2,
"setMaxX": 5,
"setMinY": -60,
"setMaxY": 60,
"sizes": [8],
"showSizeLegend": False,
"showLegend": True,
"legendPosition": "top",
"xAxisTitle": "Temperature anomaly (°C)",
"yAxisTitle": "Precipitation anomaly (%)",
"showDecorations": True,
"decorations": {
"line": [
{
"x": 0,
"y": 0,
"x2": 0.77,
"y2": -21.2,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": -0.09,
"y2": -13.09,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": -1.18,
"y2": 32.6,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.96,
"y2": -4.72,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.46,
"y2": -10.03,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.84,
"y2": 11.74,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.24,
"y2": 14.76,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.42,
"y2": 45.5,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.28,
"y2": -25.88,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.91,
"y2": -29,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.2,
"y2": -5.23,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.09,
"y2": 15.02,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.53,
"y2": 7.05,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.42,
"y2": -35.04,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.23,
"y2": 6.23,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.48,
"y2": 47.73,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.7,
"y2": 30.28,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.28,
"y2": -11.12,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.72,
"y2": -22.01,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": -0.1,
"y2": 6.23,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.43,
"y2": -8.61,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.63,
"y2": -6.24,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.58,
"y2": -13.96,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.33,
"y2": 22.55,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.68,
"y2": 37.06,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.38,
"y2": -7.47,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.46,
"y2": -7.87,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.25,
"y2": 20.49,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.24,
"y2": 21.98,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.8,
"y2": -16.65,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.91,
"y2": 20.43,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.12,
"y2": 15.55,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.15,
"y2": -1.17,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.92,
"y2": -41.57,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.64,
"y2": -2.33,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.27,
"y2": 26.65,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.4,
"y2": -17.49,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.72,
"y2": -11.81,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.21,
"y2": -13.37,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.5,
"y2": 9.46,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.07,
"y2": 22.33,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.11,
"y2": -40.88,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.66,
"y2": -22.57,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 4.91,
"y2": 12.42,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"color": "#222",
"width": 1
},
{
"y": 0,
"color": "#222",
"width": 1
}
],
"marker": [
{
"type": "text",
"variable": "Summer 2019",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Colder & wetter",
"x": 0.1,
"y": 0.04,
"fontSize": 14,
"color": "rgb(140,140,140)"
},
{
"type": "text",
"variable": "Summer 2019",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Hotter & wetter",
"x": 0.9,
"y": 0.04,
"fontSize": 14,
"color": "rgb(140,140,140)"
},
{
"type": "text",
"variable": "Summer 2019",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Colder & drier",
"x": 0.1,
"y": 0.96,
"fontSize": 14,
"color": "rgb(140,140,140)"
},
{
"type": "text",
"variable": "Summer 2019",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Hotter & drier",
"x": 0.9,
"y": 0.96,
"fontSize": 14,
"color": "rgb(140,140,140)"
},
{
"type": "text",
"variable": "Winter 2020",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Winter 2020",
"offsetX": -12,
"offsetY": -14,
"align": "right"
},
{
"type": "text",
"variable": "Winter 2013",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Winter 2013",
"offsetX": 0,
"offsetY": -14,
"align": "center"
},
{
"type": "text",
"variable": "Summer 2018",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Summer 2018",
"offsetX": 0,
"offsetY": 16,
"align": "center"
},
{
"type": "text",
"variable": "Autumn 2010",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Autumn 2010",
"offsetX": 0,
"offsetY": -14,
"align": "center"
}
]
}
},
width = 760,
height = 640
)
# Display the chart in its own Web page
show_in_browser(chart)
from canvasxpress.canvas import CanvasXpress
from canvasxpress.plot import graph
graph(
CanvasXpress(
render_to = "scatter2d31",
data = {
"y": {
"vars": ["Spring 2010", "Summer 2010", "Autumn 2010", "Winter 2010", "Spring 2011", "Summer 2011", "Autumn 2011", "Winter 2011", "Spring 2012", "Summer 2012", "Autumn 2012", "Winter 2012", "Spring 2013", "Summer 2013", "Autumn 2013", "Winter 2013", "Spring 2014", "Summer 2014", "Autumn 2014", "Winter 2014", "Spring 2015", "Summer 2015", "Autumn 2015", "Winter 2015", "Spring 2016", "Summer 2016", "Autumn 2016", "Winter 2016", "Spring 2017", "Summer 2017", "Autumn 2017", "Winter 2017", "Spring 2018", "Summer 2018", "Autumn 2018", "Winter 2018", "Spring 2019", "Summer 2019", "Autumn 2019", "Winter 2019", "Spring 2020", "Summer 2020", "Autumn 2020", "Winter 2020"],
"smps": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"data": [
[0.77, -21.2],
[-0.09, -13.09],
[-1.18, 32.6],
[0.96, -4.72],
[0.46, -10.03],
[0.84, 11.74],
[0.24, 14.76],
[1.42, 45.5],
[1.28, -25.88],
[0.91, -29],
[0.2, -5.23],
[2.09, 15.02],
[0.53, 7.05],
[0.42, -35.04],
[1.23, 6.23],
[2.48, 47.73],
[0.7, 30.28],
[1.28, -11.12],
[0.72, -22.01],
[-0.1, 6.23],
[1.43, -8.61],
[2.63, -6.24],
[0.58, -13.96],
[2.33, 22.55],
[1.68, 37.06],
[0.38, -7.47],
[2.46, -7.87],
[2.25, 20.49],
[2.24, 21.98],
[1.8, -16.65],
[1.91, 20.43],
[2.12, 15.55],
[1.15, -1.17],
[1.92, -41.57],
[1.64, -2.33],
[2.27, 26.65],
[2.4, -17.49],
[1.72, -11.81],
[1.21, -13.37],
[2.5, 9.46],
[2.07, 22.33],
[2.11, -40.88],
[2.66, -22.57],
[4.91, 12.42]
]
},
"z": {
"Season": ["Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter"]
}
},
config = {
"graphType": "Scatter2D",
"titleAlign": "plot::0",
"subtitleAlign": "plot::0",
"legendHorizontalJustification": 0,
"legendJustifyTo": "plot",
"theme": "bw",
"title": "How much hotter & drier was each season since 2010?",
"subtitle": "Colors indicate the seasons: spring, summer, autumn, winter",
"xAxis": ["Temperature anomaly (°C)"],
"yAxis": ["Precipitation anomaly (%)"],
"colorBy": "Season",
"colorScheme": "User",
"colors": ["#B22030", "#F7B500", "#2E8B00", "#6699FF"],
"setMinX": -2,
"setMaxX": 5,
"setMinY": -60,
"setMaxY": 60,
"sizes": [8],
"showSizeLegend": False,
"showLegend": True,
"legendPosition": "top",
"xAxisTitle": "Temperature anomaly (°C)",
"yAxisTitle": "Precipitation anomaly (%)",
"showDecorations": True,
"decorations": {
"line": [
{
"x": 0,
"y": 0,
"x2": 0.77,
"y2": -21.2,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": -0.09,
"y2": -13.09,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": -1.18,
"y2": 32.6,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.96,
"y2": -4.72,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.46,
"y2": -10.03,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.84,
"y2": 11.74,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.24,
"y2": 14.76,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.42,
"y2": 45.5,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.28,
"y2": -25.88,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.91,
"y2": -29,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.2,
"y2": -5.23,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.09,
"y2": 15.02,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.53,
"y2": 7.05,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.42,
"y2": -35.04,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.23,
"y2": 6.23,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.48,
"y2": 47.73,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.7,
"y2": 30.28,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.28,
"y2": -11.12,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.72,
"y2": -22.01,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": -0.1,
"y2": 6.23,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.43,
"y2": -8.61,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.63,
"y2": -6.24,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.58,
"y2": -13.96,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.33,
"y2": 22.55,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.68,
"y2": 37.06,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 0.38,
"y2": -7.47,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.46,
"y2": -7.87,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.25,
"y2": 20.49,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.24,
"y2": 21.98,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.8,
"y2": -16.65,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.91,
"y2": 20.43,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.12,
"y2": 15.55,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.15,
"y2": -1.17,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.92,
"y2": -41.57,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.64,
"y2": -2.33,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.27,
"y2": 26.65,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.4,
"y2": -17.49,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.72,
"y2": -11.81,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 1.21,
"y2": -13.37,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.5,
"y2": 9.46,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.07,
"y2": 22.33,
"color": "rgba(240,180,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.11,
"y2": -40.88,
"color": "rgba(60,140,0,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 2.66,
"y2": -22.57,
"color": "rgba(170,30,40,0.35)",
"width": 2
},
{
"x": 0,
"y": 0,
"x2": 4.91,
"y2": 12.42,
"color": "rgba(90,140,255,0.35)",
"width": 2
},
{
"x": 0,
"color": "#222",
"width": 1
},
{
"y": 0,
"color": "#222",
"width": 1
}
],
"marker": [
{
"type": "text",
"variable": "Summer 2019",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Colder & wetter",
"x": 0.1,
"y": 0.04,
"fontSize": 14,
"color": "rgb(140,140,140)"
},
{
"type": "text",
"variable": "Summer 2019",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Hotter & wetter",
"x": 0.9,
"y": 0.04,
"fontSize": 14,
"color": "rgb(140,140,140)"
},
{
"type": "text",
"variable": "Summer 2019",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Colder & drier",
"x": 0.1,
"y": 0.96,
"fontSize": 14,
"color": "rgb(140,140,140)"
},
{
"type": "text",
"variable": "Summer 2019",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Hotter & drier",
"x": 0.9,
"y": 0.96,
"fontSize": 14,
"color": "rgb(140,140,140)"
},
{
"type": "text",
"variable": "Winter 2020",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Winter 2020",
"offsetX": -12,
"offsetY": -14,
"align": "right"
},
{
"type": "text",
"variable": "Winter 2013",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Winter 2013",
"offsetX": 0,
"offsetY": -14,
"align": "center"
},
{
"type": "text",
"variable": "Summer 2018",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Summer 2018",
"offsetX": 0,
"offsetY": 16,
"align": "center"
},
{
"type": "text",
"variable": "Autumn 2010",
"sample": ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text": "Autumn 2010",
"offsetX": 0,
"offsetY": -14,
"align": "center"
}
]
}
},
width = 760,
height = 640
)
)
using CanvasXpress
canvasxpress(Dict(
"y" => Dict(
"vars" => ["Spring 2010", "Summer 2010", "Autumn 2010", "Winter 2010", "Spring 2011", "Summer 2011", "Autumn 2011", "Winter 2011", "Spring 2012", "Summer 2012", "Autumn 2012", "Winter 2012", "Spring 2013", "Summer 2013", "Autumn 2013", "Winter 2013", "Spring 2014", "Summer 2014", "Autumn 2014", "Winter 2014", "Spring 2015", "Summer 2015", "Autumn 2015", "Winter 2015", "Spring 2016", "Summer 2016", "Autumn 2016", "Winter 2016", "Spring 2017", "Summer 2017", "Autumn 2017", "Winter 2017", "Spring 2018", "Summer 2018", "Autumn 2018", "Winter 2018", "Spring 2019", "Summer 2019", "Autumn 2019", "Winter 2019", "Spring 2020", "Summer 2020", "Autumn 2020", "Winter 2020"],
"smps" => ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"data" => [
[0.77, -21.2],
[-0.09, -13.09],
[-1.18, 32.6],
[0.96, -4.72],
[0.46, -10.03],
[0.84, 11.74],
[0.24, 14.76],
[1.42, 45.5],
[1.28, -25.88],
[0.91, -29],
[0.2, -5.23],
[2.09, 15.02],
[0.53, 7.05],
[0.42, -35.04],
[1.23, 6.23],
[2.48, 47.73],
[0.7, 30.28],
[1.28, -11.12],
[0.72, -22.01],
[-0.1, 6.23],
[1.43, -8.61],
[2.63, -6.24],
[0.58, -13.96],
[2.33, 22.55],
[1.68, 37.06],
[0.38, -7.47],
[2.46, -7.87],
[2.25, 20.49],
[2.24, 21.98],
[1.8, -16.65],
[1.91, 20.43],
[2.12, 15.55],
[1.15, -1.17],
[1.92, -41.57],
[1.64, -2.33],
[2.27, 26.65],
[2.4, -17.49],
[1.72, -11.81],
[1.21, -13.37],
[2.5, 9.46],
[2.07, 22.33],
[2.11, -40.88],
[2.66, -22.57],
[4.91, 12.42]
]
),
"z" => Dict(
"Season" => ["Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter"]
)
);
graphType = "Scatter2D",
titleAlign = "plot::0",
subtitleAlign = "plot::0",
legendHorizontalJustification = 0,
legendJustifyTo = "plot",
theme = "bw",
title = "How much hotter & drier was each season since 2010?",
subtitle = "Colors indicate the seasons: spring, summer, autumn, winter",
xAxis = ["Temperature anomaly (°C)"],
yAxis = ["Precipitation anomaly (%)"],
colorBy = "Season",
colorScheme = "User",
colors = ["#B22030", "#F7B500", "#2E8B00", "#6699FF"],
setMinX = -2,
setMaxX = 5,
setMinY = -60,
setMaxY = 60,
sizes = [8],
showSizeLegend = false,
showLegend = true,
legendPosition = "top",
xAxisTitle = "Temperature anomaly (°C)",
yAxisTitle = "Precipitation anomaly (%)",
showDecorations = true,
decorations = Dict(
"line" => [
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.77,
"y2" => -21.2,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => -0.09,
"y2" => -13.09,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => -1.18,
"y2" => 32.6,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.96,
"y2" => -4.72,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.46,
"y2" => -10.03,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.84,
"y2" => 11.74,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.24,
"y2" => 14.76,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.42,
"y2" => 45.5,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.28,
"y2" => -25.88,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.91,
"y2" => -29,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.2,
"y2" => -5.23,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.09,
"y2" => 15.02,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.53,
"y2" => 7.05,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.42,
"y2" => -35.04,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.23,
"y2" => 6.23,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.48,
"y2" => 47.73,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.7,
"y2" => 30.28,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.28,
"y2" => -11.12,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.72,
"y2" => -22.01,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => -0.1,
"y2" => 6.23,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.43,
"y2" => -8.61,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.63,
"y2" => -6.24,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.58,
"y2" => -13.96,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.33,
"y2" => 22.55,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.68,
"y2" => 37.06,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 0.38,
"y2" => -7.47,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.46,
"y2" => -7.87,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.25,
"y2" => 20.49,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.24,
"y2" => 21.98,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.8,
"y2" => -16.65,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.91,
"y2" => 20.43,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.12,
"y2" => 15.55,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.15,
"y2" => -1.17,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.92,
"y2" => -41.57,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.64,
"y2" => -2.33,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.27,
"y2" => 26.65,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.4,
"y2" => -17.49,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.72,
"y2" => -11.81,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 1.21,
"y2" => -13.37,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.5,
"y2" => 9.46,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.07,
"y2" => 22.33,
"color" => "rgba(240,180,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.11,
"y2" => -40.88,
"color" => "rgba(60,140,0,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 2.66,
"y2" => -22.57,
"color" => "rgba(170,30,40,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"y" => 0,
"x2" => 4.91,
"y2" => 12.42,
"color" => "rgba(90,140,255,0.35)",
"width" => 2
),
Dict(
"x" => 0,
"color" => "#222",
"width" => 1
),
Dict(
"y" => 0,
"color" => "#222",
"width" => 1
)
],
"marker" => [
Dict(
"type" => "text",
"variable" => "Summer 2019",
"sample" => ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text" => "Colder & wetter",
"x" => 0.1,
"y" => 0.04,
"fontSize" => 14,
"color" => "rgb(140,140,140)"
),
Dict(
"type" => "text",
"variable" => "Summer 2019",
"sample" => ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text" => "Hotter & wetter",
"x" => 0.9,
"y" => 0.04,
"fontSize" => 14,
"color" => "rgb(140,140,140)"
),
Dict(
"type" => "text",
"variable" => "Summer 2019",
"sample" => ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text" => "Colder & drier",
"x" => 0.1,
"y" => 0.96,
"fontSize" => 14,
"color" => "rgb(140,140,140)"
),
Dict(
"type" => "text",
"variable" => "Summer 2019",
"sample" => ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text" => "Hotter & drier",
"x" => 0.9,
"y" => 0.96,
"fontSize" => 14,
"color" => "rgb(140,140,140)"
),
Dict(
"type" => "text",
"variable" => "Winter 2020",
"sample" => ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text" => "Winter 2020",
"offsetX" => -12,
"offsetY" => -14,
"align" => "right"
),
Dict(
"type" => "text",
"variable" => "Winter 2013",
"sample" => ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text" => "Winter 2013",
"offsetX" => 0,
"offsetY" => -14,
"align" => "center"
),
Dict(
"type" => "text",
"variable" => "Summer 2018",
"sample" => ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text" => "Summer 2018",
"offsetX" => 0,
"offsetY" => 16,
"align" => "center"
),
Dict(
"type" => "text",
"variable" => "Autumn 2010",
"sample" => ["Temperature anomaly (°C)", "Precipitation anomaly (%)"],
"text" => "Autumn 2010",
"offsetX" => 0,
"offsetY" => -14,
"align" => "center"
)
]
)
)

































