remove outputs
Browse files
sandbox/talk_to_data/20250306 - CQA - Drias.ipynb
CHANGED
@@ -11,17 +11,7 @@
|
|
11 |
"cell_type": "code",
|
12 |
"execution_count": null,
|
13 |
"metadata": {},
|
14 |
-
"outputs": [
|
15 |
-
{
|
16 |
-
"name": "stdout",
|
17 |
-
"output_type": "stream",
|
18 |
-
"text": [
|
19 |
-
"The autoreload extension is already loaded. To reload it, use:\n",
|
20 |
-
" %reload_ext autoreload\n",
|
21 |
-
"Loading embeddings model: BAAI/bge-base-en-v1.5\n"
|
22 |
-
]
|
23 |
-
}
|
24 |
-
],
|
25 |
"source": [
|
26 |
"import sys\n",
|
27 |
"import os\n",
|
@@ -50,7 +40,8 @@
|
|
50 |
"# query = \"What is the impact of climate in Bordeaux?\"\n",
|
51 |
"# query = \"what is the number of days where the temperature above 35 in 2050 in Marseille\"\n",
|
52 |
"# query = \"Quelle sera la température à Marseille sur les prochaines années ?\"\n",
|
53 |
-
"query = \"Comment vont évoluer les températures à Marseille ?\""
|
|
|
54 |
]
|
55 |
},
|
56 |
{
|
@@ -64,1090 +55,9 @@
|
|
64 |
"cell_type": "code",
|
65 |
"execution_count": null,
|
66 |
"metadata": {},
|
67 |
-
"outputs": [
|
68 |
-
{
|
69 |
-
"name": "stdout",
|
70 |
-
"output_type": "stream",
|
71 |
-
"text": [
|
72 |
-
"SQL Prompt: [{'role': 'system', 'content': \"You are a SQLite expert. Please help to generate a SQL query to answer the question. Your response should ONLY be based on the given context and follow the response guidelines and format instructions. \\n===Tables \\nCREATE TABLE Mean_winter_temperature ( y FLOAT, x FLOAT, year INT, \\n month INT, \\n day INT \\n, LambertParisII VARCHAR(255), lat FLOAT, lon FLOAT, TMm FLOAT);\\n\\nCREATE TABLE Mean_winter_temperature (\\n y FLOAT,\\n x FLOAT,\\n year INT, \\n month INT, \\n day INT \\n,\\n LambertParisII VARCHAR(255),\\n lat FLOAT,\\n lon FLOAT,\\n TMm FLOAT\\n);\\n\\nCREATE TABLE Mean_summer_temperature ( y FLOAT, x FLOAT, year INT, \\n month INT, \\n day INT \\n, LambertParisII VARCHAR(255), lat FLOAT, lon FLOAT, TMm FLOAT);\\n\\nCREATE TABLE Mean_summer_temperature (\\n y FLOAT,\\n x FLOAT,\\n year INT, \\n month INT, \\n day INT \\n,\\n LambertParisII VARCHAR(255),\\n lat FLOAT,\\n lon FLOAT,\\n TMm FLOAT\\n);\\n\\n\\n===Additional Context \\n\\nThe Number of days with Tx above 35C table contains information on the number of days when the maximum temperature in the past and the future\\nis greater than or equal to 35°C.\\nThe variables are as follows:\\n- 'y' and 'x': Lambert Paris II coordinates for the location.\\n- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.\\n- 'lat' and 'lon': Latitude and longitude of the location.\\n- 'TX35D': Number of days with Tx ≥ 35°C.\\n\\nThe Number of days with Tx above 35C table contains information on the number of days when the maximum temperature in the past and the futureis greater than or equal to 35°C.The variables are as follows:- 'y' and 'x': Lambert Paris II coordinates for the location.- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.- 'lat' and 'lon': Latitude and longitude of the location.- 'TX35D': Number of days with Tx ≥ 35°C.\\n\\nThe Number of days with Tx above 30C table contains information on the number of days when the maximum temperature in the past and the futureis greater than or equal to 30°C.The variables are as follows:- 'y' and 'x': Lambert Paris II coordinates for the location.- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.- 'lat' and 'lon': Latitude and longitude of the location.- 'TX30D': Number of days with Tx ≥ 30°C.\\n\\nThe Number of days with Tx above 30C table contains information on the number of days when the maximum temperature in the past and the future\\nis greater than or equal to 30°C.\\nThe variables are as follows:\\n- 'y' and 'x': Lambert Paris II coordinates for the location.\\n- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.\\n- 'lat' and 'lon': Latitude and longitude of the location.\\n- 'TX30D': Number of days with Tx ≥ 30°C.\\n\\n===Response Guidelines \\n1. If the provided context is sufficient, please generate a valid SQL query without any explanations for the question. \\n2. If the provided context is almost sufficient but requires knowledge of a specific string in a particular column, please generate an intermediate SQL query to find the distinct strings in that column. Prepend the query with a comment saying intermediate_sql \\n3. If the provided context is insufficient, please give a sql query based on your knowledge and the context provided. \\n4. Please use the most relevant table(s). \\n5. If the question has been asked and answered before, please repeat the answer exactly as it was given before. \\n6. Ensure that the output SQL is SQLite-compliant and executable, and free of syntax errors. \\n7. Add a description of the table in the result of the sql query, if relevant. \\n8 Make sure to include the relevant KPI in the SQL query. The query should return impactfull data \\n\"}, {'role': 'user', 'content': 'Comment vont évoluer les températures à lat, long : (43.166954040527344, 5.430534839630127) ?'}]\n",
|
73 |
-
"Using model gpt-4o-mini for 1097.5 tokens (approx)\n",
|
74 |
-
"LLM Response: ```sql\n",
|
75 |
-
"-- intermediate_sql\n",
|
76 |
-
"SELECT DISTINCT year FROM Mean_winter_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
77 |
-
"UNION\n",
|
78 |
-
"SELECT DISTINCT year FROM Mean_summer_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127;\n",
|
79 |
-
"```\n",
|
80 |
-
"LLM Response: ```sql\n",
|
81 |
-
"-- intermediate_sql\n",
|
82 |
-
"SELECT DISTINCT year FROM Mean_winter_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
83 |
-
"UNION\n",
|
84 |
-
"SELECT DISTINCT year FROM Mean_summer_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127;\n",
|
85 |
-
"```\n",
|
86 |
-
"Extracted SQL: SELECT DISTINCT year FROM Mean_winter_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
87 |
-
"UNION\n",
|
88 |
-
"SELECT DISTINCT year FROM Mean_summer_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127;\n",
|
89 |
-
"Running Intermediate SQL: SELECT DISTINCT year FROM Mean_winter_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
90 |
-
"UNION\n",
|
91 |
-
"SELECT DISTINCT year FROM Mean_summer_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127;\n",
|
92 |
-
"Final SQL Prompt: [{'role': 'system', 'content': \"You are a SQLite expert. Please help to generate a SQL query to answer the question. Your response should ONLY be based on the given context and follow the response guidelines and format instructions. \\n===Tables \\nCREATE TABLE Mean_winter_temperature ( y FLOAT, x FLOAT, year INT, \\n month INT, \\n day INT \\n, LambertParisII VARCHAR(255), lat FLOAT, lon FLOAT, TMm FLOAT);\\n\\nCREATE TABLE Mean_winter_temperature (\\n y FLOAT,\\n x FLOAT,\\n year INT, \\n month INT, \\n day INT \\n,\\n LambertParisII VARCHAR(255),\\n lat FLOAT,\\n lon FLOAT,\\n TMm FLOAT\\n);\\n\\nCREATE TABLE Mean_summer_temperature ( y FLOAT, x FLOAT, year INT, \\n month INT, \\n day INT \\n, LambertParisII VARCHAR(255), lat FLOAT, lon FLOAT, TMm FLOAT);\\n\\nCREATE TABLE Mean_summer_temperature (\\n y FLOAT,\\n x FLOAT,\\n year INT, \\n month INT, \\n day INT \\n,\\n LambertParisII VARCHAR(255),\\n lat FLOAT,\\n lon FLOAT,\\n TMm FLOAT\\n);\\n\\n\\n===Additional Context \\n\\nThe Number of days with Tx above 35C table contains information on the number of days when the maximum temperature in the past and the future\\nis greater than or equal to 35°C.\\nThe variables are as follows:\\n- 'y' and 'x': Lambert Paris II coordinates for the location.\\n- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.\\n- 'lat' and 'lon': Latitude and longitude of the location.\\n- 'TX35D': Number of days with Tx ≥ 35°C.\\n\\nThe Number of days with Tx above 35C table contains information on the number of days when the maximum temperature in the past and the futureis greater than or equal to 35°C.The variables are as follows:- 'y' and 'x': Lambert Paris II coordinates for the location.- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.- 'lat' and 'lon': Latitude and longitude of the location.- 'TX35D': Number of days with Tx ≥ 35°C.\\n\\nThe Number of days with Tx above 30C table contains information on the number of days when the maximum temperature in the past and the futureis greater than or equal to 30°C.The variables are as follows:- 'y' and 'x': Lambert Paris II coordinates for the location.- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.- 'lat' and 'lon': Latitude and longitude of the location.- 'TX30D': Number of days with Tx ≥ 30°C.\\n\\nThe Number of days with Tx above 30C table contains information on the number of days when the maximum temperature in the past and the future\\nis greater than or equal to 30°C.\\nThe variables are as follows:\\n- 'y' and 'x': Lambert Paris II coordinates for the location.\\n- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.\\n- 'lat' and 'lon': Latitude and longitude of the location.\\n- 'TX30D': Number of days with Tx ≥ 30°C.\\n\\nThe following is a pandas DataFrame with the results of the intermediate SQL query SELECT DISTINCT year FROM Mean_winter_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\\nUNION\\nSELECT DISTINCT year FROM Mean_summer_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127;: \\n| | year |\\n|---:|-------:|\\n| 0 | 2031 |\\n| 1 | 2032 |\\n| 2 | 2033 |\\n| 3 | 2034 |\\n| 4 | 2035 |\\n| 5 | 2036 |\\n| 6 | 2037 |\\n| 7 | 2038 |\\n| 8 | 2039 |\\n| 9 | 2040 |\\n| 10 | 2041 |\\n| 11 | 2042 |\\n| 12 | 2043 |\\n| 13 | 2044 |\\n| 14 | 2045 |\\n| 15 | 2046 |\\n| 16 | 2047 |\\n| 17 | 2048 |\\n| 18 | 2049 |\\n| 19 | 2050 |\\n\\n===Response Guidelines \\n1. If the provided context is sufficient, please generate a valid SQL query without any explanations for the question. \\n2. If the provided context is almost sufficient but requires knowledge of a specific string in a particular column, please generate an intermediate SQL query to find the distinct strings in that column. Prepend the query with a comment saying intermediate_sql \\n3. If the provided context is insufficient, please give a sql query based on your knowledge and the context provided. \\n4. Please use the most relevant table(s). \\n5. If the question has been asked and answered before, please repeat the answer exactly as it was given before. \\n6. Ensure that the output SQL is SQLite-compliant and executable, and free of syntax errors. \\n7. Add a description of the table in the result of the sql query, if relevant. \\n8 Make sure to include the relevant KPI in the SQL query. The query should return impactfull data \\n\"}, {'role': 'user', 'content': 'Comment vont évoluer les températures à lat, long : (43.166954040527344, 5.430534839630127) ?'}]\n",
|
93 |
-
"Using model gpt-4o-mini for 1263.25 tokens (approx)\n",
|
94 |
-
"LLM Response: ```sql\n",
|
95 |
-
"SELECT year, AVG(TMm) AS avg_winter_temp, (SELECT AVG(TMm) FROM Mean_summer_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127 AND year = Mean_winter_temperature.year) AS avg_summer_temp\n",
|
96 |
-
"FROM Mean_winter_temperature\n",
|
97 |
-
"WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
98 |
-
"GROUP BY year\n",
|
99 |
-
"ORDER BY year;\n",
|
100 |
-
"```\n",
|
101 |
-
"Extracted SQL: SELECT year, AVG(TMm) AS avg_winter_temp, (SELECT AVG(TMm) FROM Mean_summer_temperature WHERE lat = 43.166954040527344 AND lon = 5.430534839630127 AND year = Mean_winter_temperature.year) AS avg_summer_temp\n",
|
102 |
-
"FROM Mean_winter_temperature\n",
|
103 |
-
"WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
104 |
-
"GROUP BY year\n",
|
105 |
-
"ORDER BY year;\n",
|
106 |
-
"Using model gpt-4o-mini for 264.25 tokens (approx)\n",
|
107 |
-
"execute sql query : SELECT year, AVG(TMm) AS avg_winter_temp, \n",
|
108 |
-
" (SELECT AVG(TMm) \n",
|
109 |
-
" FROM Mean_summer_temperature \n",
|
110 |
-
" WHERE lat = 43.166954040527344 \n",
|
111 |
-
" AND lon = 5.430534839630127 \n",
|
112 |
-
" AND year = Mean_winter_temperature.year) AS avg_summer_temp,\n",
|
113 |
-
" 'Mean_winter_temperature' AS source_table\n",
|
114 |
-
"FROM Mean_winter_temperature\n",
|
115 |
-
"WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
116 |
-
"GROUP BY year\n",
|
117 |
-
"ORDER BY year;\n",
|
118 |
-
"column list : ['year', 'avg_winter_temp', 'avg_summer_temp', 'source_table']\n",
|
119 |
-
"Using model gpt-4o-mini for 173.25 tokens (approx)\n",
|
120 |
-
" year avg_winter_temp avg_summer_temp source_table\n",
|
121 |
-
"0 2031 9.952474 24.061035 Mean_winter_temperature\n",
|
122 |
-
"1 2032 10.142323 24.530693 Mean_winter_temperature\n",
|
123 |
-
"2 2033 9.907943 24.722235 Mean_winter_temperature\n",
|
124 |
-
"3 2034 9.548874 23.846292 Mean_winter_temperature\n",
|
125 |
-
"4 2035 10.284758 24.231422 Mean_winter_temperature\n"
|
126 |
-
]
|
127 |
-
},
|
128 |
-
{
|
129 |
-
"data": {
|
130 |
-
"application/vnd.plotly.v1+json": {
|
131 |
-
"config": {
|
132 |
-
"plotlyServerURL": "https://plot.ly"
|
133 |
-
},
|
134 |
-
"data": [
|
135 |
-
{
|
136 |
-
"hovertemplate": "variable=avg_winter_temp<br>Year=%{x}<br>Temperature=%{y}<extra></extra>",
|
137 |
-
"legendgroup": "avg_winter_temp",
|
138 |
-
"line": {
|
139 |
-
"color": "#636efa",
|
140 |
-
"dash": "solid"
|
141 |
-
},
|
142 |
-
"marker": {
|
143 |
-
"symbol": "circle"
|
144 |
-
},
|
145 |
-
"mode": "lines",
|
146 |
-
"name": "avg_winter_temp",
|
147 |
-
"orientation": "v",
|
148 |
-
"showlegend": true,
|
149 |
-
"type": "scatter",
|
150 |
-
"x": [
|
151 |
-
2031,
|
152 |
-
2032,
|
153 |
-
2033,
|
154 |
-
2034,
|
155 |
-
2035,
|
156 |
-
2036,
|
157 |
-
2037,
|
158 |
-
2038,
|
159 |
-
2039,
|
160 |
-
2040,
|
161 |
-
2041,
|
162 |
-
2042,
|
163 |
-
2043,
|
164 |
-
2044,
|
165 |
-
2045,
|
166 |
-
2046,
|
167 |
-
2047,
|
168 |
-
2048,
|
169 |
-
2049,
|
170 |
-
2050
|
171 |
-
],
|
172 |
-
"xaxis": "x",
|
173 |
-
"y": [
|
174 |
-
9.952474117647114,
|
175 |
-
10.142322941176474,
|
176 |
-
9.907942941176486,
|
177 |
-
9.548873529411765,
|
178 |
-
10.284758235294191,
|
179 |
-
10.372100000000046,
|
180 |
-
9.98571000000004,
|
181 |
-
10.221372352941216,
|
182 |
-
10.222609411764722,
|
183 |
-
10.473662941176485,
|
184 |
-
10.427640588235306,
|
185 |
-
10.364736470588241,
|
186 |
-
10.112910588235309,
|
187 |
-
10.250792352941176,
|
188 |
-
10.166119411764669,
|
189 |
-
10.728997647058861,
|
190 |
-
10.347248823529412,
|
191 |
-
10.706604117647089,
|
192 |
-
10.59243764705883,
|
193 |
-
10.63225529411767
|
194 |
-
],
|
195 |
-
"yaxis": "y"
|
196 |
-
},
|
197 |
-
{
|
198 |
-
"hovertemplate": "variable=avg_summer_temp<br>Year=%{x}<br>Temperature=%{y}<extra></extra>",
|
199 |
-
"legendgroup": "avg_summer_temp",
|
200 |
-
"line": {
|
201 |
-
"color": "#EF553B",
|
202 |
-
"dash": "solid"
|
203 |
-
},
|
204 |
-
"marker": {
|
205 |
-
"symbol": "circle"
|
206 |
-
},
|
207 |
-
"mode": "lines",
|
208 |
-
"name": "avg_summer_temp",
|
209 |
-
"orientation": "v",
|
210 |
-
"showlegend": true,
|
211 |
-
"type": "scatter",
|
212 |
-
"x": [
|
213 |
-
2031,
|
214 |
-
2032,
|
215 |
-
2033,
|
216 |
-
2034,
|
217 |
-
2035,
|
218 |
-
2036,
|
219 |
-
2037,
|
220 |
-
2038,
|
221 |
-
2039,
|
222 |
-
2040,
|
223 |
-
2041,
|
224 |
-
2042,
|
225 |
-
2043,
|
226 |
-
2044,
|
227 |
-
2045,
|
228 |
-
2046,
|
229 |
-
2047,
|
230 |
-
2048,
|
231 |
-
2049,
|
232 |
-
2050
|
233 |
-
],
|
234 |
-
"xaxis": "x",
|
235 |
-
"y": [
|
236 |
-
24.061035294117687,
|
237 |
-
24.530692941176483,
|
238 |
-
24.722234705882386,
|
239 |
-
23.84629176470588,
|
240 |
-
24.231422352941195,
|
241 |
-
24.488941764705885,
|
242 |
-
24.79424117647062,
|
243 |
-
24.730553529411793,
|
244 |
-
24.44979882352942,
|
245 |
-
24.40726882352942,
|
246 |
-
24.768547647058824,
|
247 |
-
24.53479647058822,
|
248 |
-
24.769181176470624,
|
249 |
-
24.489877058823538,
|
250 |
-
24.448076470588262,
|
251 |
-
25.111282352941203,
|
252 |
-
24.72313823529413,
|
253 |
-
25.187577058823535,
|
254 |
-
24.829653529411814,
|
255 |
-
25.053394117647144
|
256 |
-
],
|
257 |
-
"yaxis": "y"
|
258 |
-
}
|
259 |
-
],
|
260 |
-
"layout": {
|
261 |
-
"legend": {
|
262 |
-
"title": {
|
263 |
-
"text": "variable"
|
264 |
-
},
|
265 |
-
"tracegroupgap": 0
|
266 |
-
},
|
267 |
-
"template": {
|
268 |
-
"data": {
|
269 |
-
"bar": [
|
270 |
-
{
|
271 |
-
"error_x": {
|
272 |
-
"color": "#f2f5fa"
|
273 |
-
},
|
274 |
-
"error_y": {
|
275 |
-
"color": "#f2f5fa"
|
276 |
-
},
|
277 |
-
"marker": {
|
278 |
-
"line": {
|
279 |
-
"color": "rgb(17,17,17)",
|
280 |
-
"width": 0.5
|
281 |
-
},
|
282 |
-
"pattern": {
|
283 |
-
"fillmode": "overlay",
|
284 |
-
"size": 10,
|
285 |
-
"solidity": 0.2
|
286 |
-
}
|
287 |
-
},
|
288 |
-
"type": "bar"
|
289 |
-
}
|
290 |
-
],
|
291 |
-
"barpolar": [
|
292 |
-
{
|
293 |
-
"marker": {
|
294 |
-
"line": {
|
295 |
-
"color": "rgb(17,17,17)",
|
296 |
-
"width": 0.5
|
297 |
-
},
|
298 |
-
"pattern": {
|
299 |
-
"fillmode": "overlay",
|
300 |
-
"size": 10,
|
301 |
-
"solidity": 0.2
|
302 |
-
}
|
303 |
-
},
|
304 |
-
"type": "barpolar"
|
305 |
-
}
|
306 |
-
],
|
307 |
-
"carpet": [
|
308 |
-
{
|
309 |
-
"aaxis": {
|
310 |
-
"endlinecolor": "#A2B1C6",
|
311 |
-
"gridcolor": "#506784",
|
312 |
-
"linecolor": "#506784",
|
313 |
-
"minorgridcolor": "#506784",
|
314 |
-
"startlinecolor": "#A2B1C6"
|
315 |
-
},
|
316 |
-
"baxis": {
|
317 |
-
"endlinecolor": "#A2B1C6",
|
318 |
-
"gridcolor": "#506784",
|
319 |
-
"linecolor": "#506784",
|
320 |
-
"minorgridcolor": "#506784",
|
321 |
-
"startlinecolor": "#A2B1C6"
|
322 |
-
},
|
323 |
-
"type": "carpet"
|
324 |
-
}
|
325 |
-
],
|
326 |
-
"choropleth": [
|
327 |
-
{
|
328 |
-
"colorbar": {
|
329 |
-
"outlinewidth": 0,
|
330 |
-
"ticks": ""
|
331 |
-
},
|
332 |
-
"type": "choropleth"
|
333 |
-
}
|
334 |
-
],
|
335 |
-
"contour": [
|
336 |
-
{
|
337 |
-
"colorbar": {
|
338 |
-
"outlinewidth": 0,
|
339 |
-
"ticks": ""
|
340 |
-
},
|
341 |
-
"colorscale": [
|
342 |
-
[
|
343 |
-
0,
|
344 |
-
"#0d0887"
|
345 |
-
],
|
346 |
-
[
|
347 |
-
0.1111111111111111,
|
348 |
-
"#46039f"
|
349 |
-
],
|
350 |
-
[
|
351 |
-
0.2222222222222222,
|
352 |
-
"#7201a8"
|
353 |
-
],
|
354 |
-
[
|
355 |
-
0.3333333333333333,
|
356 |
-
"#9c179e"
|
357 |
-
],
|
358 |
-
[
|
359 |
-
0.4444444444444444,
|
360 |
-
"#bd3786"
|
361 |
-
],
|
362 |
-
[
|
363 |
-
0.5555555555555556,
|
364 |
-
"#d8576b"
|
365 |
-
],
|
366 |
-
[
|
367 |
-
0.6666666666666666,
|
368 |
-
"#ed7953"
|
369 |
-
],
|
370 |
-
[
|
371 |
-
0.7777777777777778,
|
372 |
-
"#fb9f3a"
|
373 |
-
],
|
374 |
-
[
|
375 |
-
0.8888888888888888,
|
376 |
-
"#fdca26"
|
377 |
-
],
|
378 |
-
[
|
379 |
-
1,
|
380 |
-
"#f0f921"
|
381 |
-
]
|
382 |
-
],
|
383 |
-
"type": "contour"
|
384 |
-
}
|
385 |
-
],
|
386 |
-
"contourcarpet": [
|
387 |
-
{
|
388 |
-
"colorbar": {
|
389 |
-
"outlinewidth": 0,
|
390 |
-
"ticks": ""
|
391 |
-
},
|
392 |
-
"type": "contourcarpet"
|
393 |
-
}
|
394 |
-
],
|
395 |
-
"heatmap": [
|
396 |
-
{
|
397 |
-
"colorbar": {
|
398 |
-
"outlinewidth": 0,
|
399 |
-
"ticks": ""
|
400 |
-
},
|
401 |
-
"colorscale": [
|
402 |
-
[
|
403 |
-
0,
|
404 |
-
"#0d0887"
|
405 |
-
],
|
406 |
-
[
|
407 |
-
0.1111111111111111,
|
408 |
-
"#46039f"
|
409 |
-
],
|
410 |
-
[
|
411 |
-
0.2222222222222222,
|
412 |
-
"#7201a8"
|
413 |
-
],
|
414 |
-
[
|
415 |
-
0.3333333333333333,
|
416 |
-
"#9c179e"
|
417 |
-
],
|
418 |
-
[
|
419 |
-
0.4444444444444444,
|
420 |
-
"#bd3786"
|
421 |
-
],
|
422 |
-
[
|
423 |
-
0.5555555555555556,
|
424 |
-
"#d8576b"
|
425 |
-
],
|
426 |
-
[
|
427 |
-
0.6666666666666666,
|
428 |
-
"#ed7953"
|
429 |
-
],
|
430 |
-
[
|
431 |
-
0.7777777777777778,
|
432 |
-
"#fb9f3a"
|
433 |
-
],
|
434 |
-
[
|
435 |
-
0.8888888888888888,
|
436 |
-
"#fdca26"
|
437 |
-
],
|
438 |
-
[
|
439 |
-
1,
|
440 |
-
"#f0f921"
|
441 |
-
]
|
442 |
-
],
|
443 |
-
"type": "heatmap"
|
444 |
-
}
|
445 |
-
],
|
446 |
-
"heatmapgl": [
|
447 |
-
{
|
448 |
-
"colorbar": {
|
449 |
-
"outlinewidth": 0,
|
450 |
-
"ticks": ""
|
451 |
-
},
|
452 |
-
"colorscale": [
|
453 |
-
[
|
454 |
-
0,
|
455 |
-
"#0d0887"
|
456 |
-
],
|
457 |
-
[
|
458 |
-
0.1111111111111111,
|
459 |
-
"#46039f"
|
460 |
-
],
|
461 |
-
[
|
462 |
-
0.2222222222222222,
|
463 |
-
"#7201a8"
|
464 |
-
],
|
465 |
-
[
|
466 |
-
0.3333333333333333,
|
467 |
-
"#9c179e"
|
468 |
-
],
|
469 |
-
[
|
470 |
-
0.4444444444444444,
|
471 |
-
"#bd3786"
|
472 |
-
],
|
473 |
-
[
|
474 |
-
0.5555555555555556,
|
475 |
-
"#d8576b"
|
476 |
-
],
|
477 |
-
[
|
478 |
-
0.6666666666666666,
|
479 |
-
"#ed7953"
|
480 |
-
],
|
481 |
-
[
|
482 |
-
0.7777777777777778,
|
483 |
-
"#fb9f3a"
|
484 |
-
],
|
485 |
-
[
|
486 |
-
0.8888888888888888,
|
487 |
-
"#fdca26"
|
488 |
-
],
|
489 |
-
[
|
490 |
-
1,
|
491 |
-
"#f0f921"
|
492 |
-
]
|
493 |
-
],
|
494 |
-
"type": "heatmapgl"
|
495 |
-
}
|
496 |
-
],
|
497 |
-
"histogram": [
|
498 |
-
{
|
499 |
-
"marker": {
|
500 |
-
"pattern": {
|
501 |
-
"fillmode": "overlay",
|
502 |
-
"size": 10,
|
503 |
-
"solidity": 0.2
|
504 |
-
}
|
505 |
-
},
|
506 |
-
"type": "histogram"
|
507 |
-
}
|
508 |
-
],
|
509 |
-
"histogram2d": [
|
510 |
-
{
|
511 |
-
"colorbar": {
|
512 |
-
"outlinewidth": 0,
|
513 |
-
"ticks": ""
|
514 |
-
},
|
515 |
-
"colorscale": [
|
516 |
-
[
|
517 |
-
0,
|
518 |
-
"#0d0887"
|
519 |
-
],
|
520 |
-
[
|
521 |
-
0.1111111111111111,
|
522 |
-
"#46039f"
|
523 |
-
],
|
524 |
-
[
|
525 |
-
0.2222222222222222,
|
526 |
-
"#7201a8"
|
527 |
-
],
|
528 |
-
[
|
529 |
-
0.3333333333333333,
|
530 |
-
"#9c179e"
|
531 |
-
],
|
532 |
-
[
|
533 |
-
0.4444444444444444,
|
534 |
-
"#bd3786"
|
535 |
-
],
|
536 |
-
[
|
537 |
-
0.5555555555555556,
|
538 |
-
"#d8576b"
|
539 |
-
],
|
540 |
-
[
|
541 |
-
0.6666666666666666,
|
542 |
-
"#ed7953"
|
543 |
-
],
|
544 |
-
[
|
545 |
-
0.7777777777777778,
|
546 |
-
"#fb9f3a"
|
547 |
-
],
|
548 |
-
[
|
549 |
-
0.8888888888888888,
|
550 |
-
"#fdca26"
|
551 |
-
],
|
552 |
-
[
|
553 |
-
1,
|
554 |
-
"#f0f921"
|
555 |
-
]
|
556 |
-
],
|
557 |
-
"type": "histogram2d"
|
558 |
-
}
|
559 |
-
],
|
560 |
-
"histogram2dcontour": [
|
561 |
-
{
|
562 |
-
"colorbar": {
|
563 |
-
"outlinewidth": 0,
|
564 |
-
"ticks": ""
|
565 |
-
},
|
566 |
-
"colorscale": [
|
567 |
-
[
|
568 |
-
0,
|
569 |
-
"#0d0887"
|
570 |
-
],
|
571 |
-
[
|
572 |
-
0.1111111111111111,
|
573 |
-
"#46039f"
|
574 |
-
],
|
575 |
-
[
|
576 |
-
0.2222222222222222,
|
577 |
-
"#7201a8"
|
578 |
-
],
|
579 |
-
[
|
580 |
-
0.3333333333333333,
|
581 |
-
"#9c179e"
|
582 |
-
],
|
583 |
-
[
|
584 |
-
0.4444444444444444,
|
585 |
-
"#bd3786"
|
586 |
-
],
|
587 |
-
[
|
588 |
-
0.5555555555555556,
|
589 |
-
"#d8576b"
|
590 |
-
],
|
591 |
-
[
|
592 |
-
0.6666666666666666,
|
593 |
-
"#ed7953"
|
594 |
-
],
|
595 |
-
[
|
596 |
-
0.7777777777777778,
|
597 |
-
"#fb9f3a"
|
598 |
-
],
|
599 |
-
[
|
600 |
-
0.8888888888888888,
|
601 |
-
"#fdca26"
|
602 |
-
],
|
603 |
-
[
|
604 |
-
1,
|
605 |
-
"#f0f921"
|
606 |
-
]
|
607 |
-
],
|
608 |
-
"type": "histogram2dcontour"
|
609 |
-
}
|
610 |
-
],
|
611 |
-
"mesh3d": [
|
612 |
-
{
|
613 |
-
"colorbar": {
|
614 |
-
"outlinewidth": 0,
|
615 |
-
"ticks": ""
|
616 |
-
},
|
617 |
-
"type": "mesh3d"
|
618 |
-
}
|
619 |
-
],
|
620 |
-
"parcoords": [
|
621 |
-
{
|
622 |
-
"line": {
|
623 |
-
"colorbar": {
|
624 |
-
"outlinewidth": 0,
|
625 |
-
"ticks": ""
|
626 |
-
}
|
627 |
-
},
|
628 |
-
"type": "parcoords"
|
629 |
-
}
|
630 |
-
],
|
631 |
-
"pie": [
|
632 |
-
{
|
633 |
-
"automargin": true,
|
634 |
-
"type": "pie"
|
635 |
-
}
|
636 |
-
],
|
637 |
-
"scatter": [
|
638 |
-
{
|
639 |
-
"marker": {
|
640 |
-
"line": {
|
641 |
-
"color": "#283442"
|
642 |
-
}
|
643 |
-
},
|
644 |
-
"type": "scatter"
|
645 |
-
}
|
646 |
-
],
|
647 |
-
"scatter3d": [
|
648 |
-
{
|
649 |
-
"line": {
|
650 |
-
"colorbar": {
|
651 |
-
"outlinewidth": 0,
|
652 |
-
"ticks": ""
|
653 |
-
}
|
654 |
-
},
|
655 |
-
"marker": {
|
656 |
-
"colorbar": {
|
657 |
-
"outlinewidth": 0,
|
658 |
-
"ticks": ""
|
659 |
-
}
|
660 |
-
},
|
661 |
-
"type": "scatter3d"
|
662 |
-
}
|
663 |
-
],
|
664 |
-
"scattercarpet": [
|
665 |
-
{
|
666 |
-
"marker": {
|
667 |
-
"colorbar": {
|
668 |
-
"outlinewidth": 0,
|
669 |
-
"ticks": ""
|
670 |
-
}
|
671 |
-
},
|
672 |
-
"type": "scattercarpet"
|
673 |
-
}
|
674 |
-
],
|
675 |
-
"scattergeo": [
|
676 |
-
{
|
677 |
-
"marker": {
|
678 |
-
"colorbar": {
|
679 |
-
"outlinewidth": 0,
|
680 |
-
"ticks": ""
|
681 |
-
}
|
682 |
-
},
|
683 |
-
"type": "scattergeo"
|
684 |
-
}
|
685 |
-
],
|
686 |
-
"scattergl": [
|
687 |
-
{
|
688 |
-
"marker": {
|
689 |
-
"line": {
|
690 |
-
"color": "#283442"
|
691 |
-
}
|
692 |
-
},
|
693 |
-
"type": "scattergl"
|
694 |
-
}
|
695 |
-
],
|
696 |
-
"scattermapbox": [
|
697 |
-
{
|
698 |
-
"marker": {
|
699 |
-
"colorbar": {
|
700 |
-
"outlinewidth": 0,
|
701 |
-
"ticks": ""
|
702 |
-
}
|
703 |
-
},
|
704 |
-
"type": "scattermapbox"
|
705 |
-
}
|
706 |
-
],
|
707 |
-
"scatterpolar": [
|
708 |
-
{
|
709 |
-
"marker": {
|
710 |
-
"colorbar": {
|
711 |
-
"outlinewidth": 0,
|
712 |
-
"ticks": ""
|
713 |
-
}
|
714 |
-
},
|
715 |
-
"type": "scatterpolar"
|
716 |
-
}
|
717 |
-
],
|
718 |
-
"scatterpolargl": [
|
719 |
-
{
|
720 |
-
"marker": {
|
721 |
-
"colorbar": {
|
722 |
-
"outlinewidth": 0,
|
723 |
-
"ticks": ""
|
724 |
-
}
|
725 |
-
},
|
726 |
-
"type": "scatterpolargl"
|
727 |
-
}
|
728 |
-
],
|
729 |
-
"scatterternary": [
|
730 |
-
{
|
731 |
-
"marker": {
|
732 |
-
"colorbar": {
|
733 |
-
"outlinewidth": 0,
|
734 |
-
"ticks": ""
|
735 |
-
}
|
736 |
-
},
|
737 |
-
"type": "scatterternary"
|
738 |
-
}
|
739 |
-
],
|
740 |
-
"surface": [
|
741 |
-
{
|
742 |
-
"colorbar": {
|
743 |
-
"outlinewidth": 0,
|
744 |
-
"ticks": ""
|
745 |
-
},
|
746 |
-
"colorscale": [
|
747 |
-
[
|
748 |
-
0,
|
749 |
-
"#0d0887"
|
750 |
-
],
|
751 |
-
[
|
752 |
-
0.1111111111111111,
|
753 |
-
"#46039f"
|
754 |
-
],
|
755 |
-
[
|
756 |
-
0.2222222222222222,
|
757 |
-
"#7201a8"
|
758 |
-
],
|
759 |
-
[
|
760 |
-
0.3333333333333333,
|
761 |
-
"#9c179e"
|
762 |
-
],
|
763 |
-
[
|
764 |
-
0.4444444444444444,
|
765 |
-
"#bd3786"
|
766 |
-
],
|
767 |
-
[
|
768 |
-
0.5555555555555556,
|
769 |
-
"#d8576b"
|
770 |
-
],
|
771 |
-
[
|
772 |
-
0.6666666666666666,
|
773 |
-
"#ed7953"
|
774 |
-
],
|
775 |
-
[
|
776 |
-
0.7777777777777778,
|
777 |
-
"#fb9f3a"
|
778 |
-
],
|
779 |
-
[
|
780 |
-
0.8888888888888888,
|
781 |
-
"#fdca26"
|
782 |
-
],
|
783 |
-
[
|
784 |
-
1,
|
785 |
-
"#f0f921"
|
786 |
-
]
|
787 |
-
],
|
788 |
-
"type": "surface"
|
789 |
-
}
|
790 |
-
],
|
791 |
-
"table": [
|
792 |
-
{
|
793 |
-
"cells": {
|
794 |
-
"fill": {
|
795 |
-
"color": "#506784"
|
796 |
-
},
|
797 |
-
"line": {
|
798 |
-
"color": "rgb(17,17,17)"
|
799 |
-
}
|
800 |
-
},
|
801 |
-
"header": {
|
802 |
-
"fill": {
|
803 |
-
"color": "#2a3f5f"
|
804 |
-
},
|
805 |
-
"line": {
|
806 |
-
"color": "rgb(17,17,17)"
|
807 |
-
}
|
808 |
-
},
|
809 |
-
"type": "table"
|
810 |
-
}
|
811 |
-
]
|
812 |
-
},
|
813 |
-
"layout": {
|
814 |
-
"annotationdefaults": {
|
815 |
-
"arrowcolor": "#f2f5fa",
|
816 |
-
"arrowhead": 0,
|
817 |
-
"arrowwidth": 1
|
818 |
-
},
|
819 |
-
"autotypenumbers": "strict",
|
820 |
-
"coloraxis": {
|
821 |
-
"colorbar": {
|
822 |
-
"outlinewidth": 0,
|
823 |
-
"ticks": ""
|
824 |
-
}
|
825 |
-
},
|
826 |
-
"colorscale": {
|
827 |
-
"diverging": [
|
828 |
-
[
|
829 |
-
0,
|
830 |
-
"#8e0152"
|
831 |
-
],
|
832 |
-
[
|
833 |
-
0.1,
|
834 |
-
"#c51b7d"
|
835 |
-
],
|
836 |
-
[
|
837 |
-
0.2,
|
838 |
-
"#de77ae"
|
839 |
-
],
|
840 |
-
[
|
841 |
-
0.3,
|
842 |
-
"#f1b6da"
|
843 |
-
],
|
844 |
-
[
|
845 |
-
0.4,
|
846 |
-
"#fde0ef"
|
847 |
-
],
|
848 |
-
[
|
849 |
-
0.5,
|
850 |
-
"#f7f7f7"
|
851 |
-
],
|
852 |
-
[
|
853 |
-
0.6,
|
854 |
-
"#e6f5d0"
|
855 |
-
],
|
856 |
-
[
|
857 |
-
0.7,
|
858 |
-
"#b8e186"
|
859 |
-
],
|
860 |
-
[
|
861 |
-
0.8,
|
862 |
-
"#7fbc41"
|
863 |
-
],
|
864 |
-
[
|
865 |
-
0.9,
|
866 |
-
"#4d9221"
|
867 |
-
],
|
868 |
-
[
|
869 |
-
1,
|
870 |
-
"#276419"
|
871 |
-
]
|
872 |
-
],
|
873 |
-
"sequential": [
|
874 |
-
[
|
875 |
-
0,
|
876 |
-
"#0d0887"
|
877 |
-
],
|
878 |
-
[
|
879 |
-
0.1111111111111111,
|
880 |
-
"#46039f"
|
881 |
-
],
|
882 |
-
[
|
883 |
-
0.2222222222222222,
|
884 |
-
"#7201a8"
|
885 |
-
],
|
886 |
-
[
|
887 |
-
0.3333333333333333,
|
888 |
-
"#9c179e"
|
889 |
-
],
|
890 |
-
[
|
891 |
-
0.4444444444444444,
|
892 |
-
"#bd3786"
|
893 |
-
],
|
894 |
-
[
|
895 |
-
0.5555555555555556,
|
896 |
-
"#d8576b"
|
897 |
-
],
|
898 |
-
[
|
899 |
-
0.6666666666666666,
|
900 |
-
"#ed7953"
|
901 |
-
],
|
902 |
-
[
|
903 |
-
0.7777777777777778,
|
904 |
-
"#fb9f3a"
|
905 |
-
],
|
906 |
-
[
|
907 |
-
0.8888888888888888,
|
908 |
-
"#fdca26"
|
909 |
-
],
|
910 |
-
[
|
911 |
-
1,
|
912 |
-
"#f0f921"
|
913 |
-
]
|
914 |
-
],
|
915 |
-
"sequentialminus": [
|
916 |
-
[
|
917 |
-
0,
|
918 |
-
"#0d0887"
|
919 |
-
],
|
920 |
-
[
|
921 |
-
0.1111111111111111,
|
922 |
-
"#46039f"
|
923 |
-
],
|
924 |
-
[
|
925 |
-
0.2222222222222222,
|
926 |
-
"#7201a8"
|
927 |
-
],
|
928 |
-
[
|
929 |
-
0.3333333333333333,
|
930 |
-
"#9c179e"
|
931 |
-
],
|
932 |
-
[
|
933 |
-
0.4444444444444444,
|
934 |
-
"#bd3786"
|
935 |
-
],
|
936 |
-
[
|
937 |
-
0.5555555555555556,
|
938 |
-
"#d8576b"
|
939 |
-
],
|
940 |
-
[
|
941 |
-
0.6666666666666666,
|
942 |
-
"#ed7953"
|
943 |
-
],
|
944 |
-
[
|
945 |
-
0.7777777777777778,
|
946 |
-
"#fb9f3a"
|
947 |
-
],
|
948 |
-
[
|
949 |
-
0.8888888888888888,
|
950 |
-
"#fdca26"
|
951 |
-
],
|
952 |
-
[
|
953 |
-
1,
|
954 |
-
"#f0f921"
|
955 |
-
]
|
956 |
-
]
|
957 |
-
},
|
958 |
-
"colorway": [
|
959 |
-
"#636efa",
|
960 |
-
"#EF553B",
|
961 |
-
"#00cc96",
|
962 |
-
"#ab63fa",
|
963 |
-
"#FFA15A",
|
964 |
-
"#19d3f3",
|
965 |
-
"#FF6692",
|
966 |
-
"#B6E880",
|
967 |
-
"#FF97FF",
|
968 |
-
"#FECB52"
|
969 |
-
],
|
970 |
-
"font": {
|
971 |
-
"color": "#f2f5fa"
|
972 |
-
},
|
973 |
-
"geo": {
|
974 |
-
"bgcolor": "rgb(17,17,17)",
|
975 |
-
"lakecolor": "rgb(17,17,17)",
|
976 |
-
"landcolor": "rgb(17,17,17)",
|
977 |
-
"showlakes": true,
|
978 |
-
"showland": true,
|
979 |
-
"subunitcolor": "#506784"
|
980 |
-
},
|
981 |
-
"hoverlabel": {
|
982 |
-
"align": "left"
|
983 |
-
},
|
984 |
-
"hovermode": "closest",
|
985 |
-
"mapbox": {
|
986 |
-
"style": "dark"
|
987 |
-
},
|
988 |
-
"paper_bgcolor": "rgb(17,17,17)",
|
989 |
-
"plot_bgcolor": "rgb(17,17,17)",
|
990 |
-
"polar": {
|
991 |
-
"angularaxis": {
|
992 |
-
"gridcolor": "#506784",
|
993 |
-
"linecolor": "#506784",
|
994 |
-
"ticks": ""
|
995 |
-
},
|
996 |
-
"bgcolor": "rgb(17,17,17)",
|
997 |
-
"radialaxis": {
|
998 |
-
"gridcolor": "#506784",
|
999 |
-
"linecolor": "#506784",
|
1000 |
-
"ticks": ""
|
1001 |
-
}
|
1002 |
-
},
|
1003 |
-
"scene": {
|
1004 |
-
"xaxis": {
|
1005 |
-
"backgroundcolor": "rgb(17,17,17)",
|
1006 |
-
"gridcolor": "#506784",
|
1007 |
-
"gridwidth": 2,
|
1008 |
-
"linecolor": "#506784",
|
1009 |
-
"showbackground": true,
|
1010 |
-
"ticks": "",
|
1011 |
-
"zerolinecolor": "#C8D4E3"
|
1012 |
-
},
|
1013 |
-
"yaxis": {
|
1014 |
-
"backgroundcolor": "rgb(17,17,17)",
|
1015 |
-
"gridcolor": "#506784",
|
1016 |
-
"gridwidth": 2,
|
1017 |
-
"linecolor": "#506784",
|
1018 |
-
"showbackground": true,
|
1019 |
-
"ticks": "",
|
1020 |
-
"zerolinecolor": "#C8D4E3"
|
1021 |
-
},
|
1022 |
-
"zaxis": {
|
1023 |
-
"backgroundcolor": "rgb(17,17,17)",
|
1024 |
-
"gridcolor": "#506784",
|
1025 |
-
"gridwidth": 2,
|
1026 |
-
"linecolor": "#506784",
|
1027 |
-
"showbackground": true,
|
1028 |
-
"ticks": "",
|
1029 |
-
"zerolinecolor": "#C8D4E3"
|
1030 |
-
}
|
1031 |
-
},
|
1032 |
-
"shapedefaults": {
|
1033 |
-
"line": {
|
1034 |
-
"color": "#f2f5fa"
|
1035 |
-
}
|
1036 |
-
},
|
1037 |
-
"sliderdefaults": {
|
1038 |
-
"bgcolor": "#C8D4E3",
|
1039 |
-
"bordercolor": "rgb(17,17,17)",
|
1040 |
-
"borderwidth": 1,
|
1041 |
-
"tickwidth": 0
|
1042 |
-
},
|
1043 |
-
"ternary": {
|
1044 |
-
"aaxis": {
|
1045 |
-
"gridcolor": "#506784",
|
1046 |
-
"linecolor": "#506784",
|
1047 |
-
"ticks": ""
|
1048 |
-
},
|
1049 |
-
"baxis": {
|
1050 |
-
"gridcolor": "#506784",
|
1051 |
-
"linecolor": "#506784",
|
1052 |
-
"ticks": ""
|
1053 |
-
},
|
1054 |
-
"bgcolor": "rgb(17,17,17)",
|
1055 |
-
"caxis": {
|
1056 |
-
"gridcolor": "#506784",
|
1057 |
-
"linecolor": "#506784",
|
1058 |
-
"ticks": ""
|
1059 |
-
}
|
1060 |
-
},
|
1061 |
-
"title": {
|
1062 |
-
"x": 0.05
|
1063 |
-
},
|
1064 |
-
"updatemenudefaults": {
|
1065 |
-
"bgcolor": "#506784",
|
1066 |
-
"borderwidth": 0
|
1067 |
-
},
|
1068 |
-
"xaxis": {
|
1069 |
-
"automargin": true,
|
1070 |
-
"gridcolor": "#283442",
|
1071 |
-
"linecolor": "#506784",
|
1072 |
-
"ticks": "",
|
1073 |
-
"title": {
|
1074 |
-
"standoff": 15
|
1075 |
-
},
|
1076 |
-
"zerolinecolor": "#283442",
|
1077 |
-
"zerolinewidth": 2
|
1078 |
-
},
|
1079 |
-
"yaxis": {
|
1080 |
-
"automargin": true,
|
1081 |
-
"gridcolor": "#283442",
|
1082 |
-
"linecolor": "#506784",
|
1083 |
-
"ticks": "",
|
1084 |
-
"title": {
|
1085 |
-
"standoff": 15
|
1086 |
-
},
|
1087 |
-
"zerolinecolor": "#283442",
|
1088 |
-
"zerolinewidth": 2
|
1089 |
-
}
|
1090 |
-
}
|
1091 |
-
},
|
1092 |
-
"title": {
|
1093 |
-
"text": "Average Winter and Summer Temperatures Over Years"
|
1094 |
-
},
|
1095 |
-
"xaxis": {
|
1096 |
-
"anchor": "y",
|
1097 |
-
"domain": [
|
1098 |
-
0,
|
1099 |
-
1
|
1100 |
-
],
|
1101 |
-
"title": {
|
1102 |
-
"text": "Year"
|
1103 |
-
}
|
1104 |
-
},
|
1105 |
-
"yaxis": {
|
1106 |
-
"anchor": "x",
|
1107 |
-
"domain": [
|
1108 |
-
0,
|
1109 |
-
1
|
1110 |
-
],
|
1111 |
-
"title": {
|
1112 |
-
"text": "Temperature"
|
1113 |
-
}
|
1114 |
-
}
|
1115 |
-
}
|
1116 |
-
},
|
1117 |
-
"text/html": [
|
1118 |
-
"<div> <div id=\"23e07085-e6fd-4d41-828f-581a93dd2540\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"23e07085-e6fd-4d41-828f-581a93dd2540\")) { Plotly.newPlot( \"23e07085-e6fd-4d41-828f-581a93dd2540\", [{\"hovertemplate\":\"variable=avg_winter_temp\\u003cbr\\u003eYear=%{x}\\u003cbr\\u003eTemperature=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"avg_winter_temp\",\"line\":{\"color\":\"#636efa\",\"dash\":\"solid\"},\"marker\":{\"symbol\":\"circle\"},\"mode\":\"lines\",\"name\":\"avg_winter_temp\",\"orientation\":\"v\",\"showlegend\":true,\"x\":[2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050],\"xaxis\":\"x\",\"y\":[9.952474117647114,10.142322941176474,9.907942941176486,9.548873529411765,10.284758235294191,10.372100000000046,9.98571000000004,10.221372352941216,10.222609411764722,10.473662941176485,10.427640588235306,10.364736470588241,10.112910588235309,10.250792352941176,10.166119411764669,10.728997647058861,10.347248823529412,10.706604117647089,10.59243764705883,10.63225529411767],\"yaxis\":\"y\",\"type\":\"scatter\"},{\"hovertemplate\":\"variable=avg_summer_temp\\u003cbr\\u003eYear=%{x}\\u003cbr\\u003eTemperature=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"avg_summer_temp\",\"line\":{\"color\":\"#EF553B\",\"dash\":\"solid\"},\"marker\":{\"symbol\":\"circle\"},\"mode\":\"lines\",\"name\":\"avg_summer_temp\",\"orientation\":\"v\",\"showlegend\":true,\"x\":[2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050],\"xaxis\":\"x\",\"y\":[24.061035294117687,24.530692941176483,24.722234705882386,23.84629176470588,24.231422352941195,24.488941764705885,24.79424117647062,24.730553529411793,24.44979882352942,24.40726882352942,24.768547647058824,24.53479647058822,24.769181176470624,24.489877058823538,24.448076470588262,25.111282352941203,24.72313823529413,25.187577058823535,24.829653529411814,25.053394117647144],\"yaxis\":\"y\",\"type\":\"scatter\"}], {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"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\"]],\"type\":\"contour\"}],\"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\"]],\"type\":\"heatmapgl\"}],\"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\"]],\"type\":\"heatmap\"}],\"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\"]],\"type\":\"histogram2dcontour\"}],\"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\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"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\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"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\"]],\"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\"]]},\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#f2f5fa\"},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"closest\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"rgb(17,17,17)\",\"plot_bgcolor\":\"rgb(17,17,17)\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"Year\"}},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"Temperature\"}},\"legend\":{\"title\":{\"text\":\"variable\"},\"tracegroupgap\":0},\"title\":{\"text\":\"Average Winter and Summer Temperatures Over Years\"}}, {\"responsive\": true} ).then(function(){\n",
|
1119 |
-
" \n",
|
1120 |
-
"var gd = document.getElementById('23e07085-e6fd-4d41-828f-581a93dd2540');\n",
|
1121 |
-
"var x = new MutationObserver(function (mutations, observer) {{\n",
|
1122 |
-
" var display = window.getComputedStyle(gd).display;\n",
|
1123 |
-
" if (!display || display === 'none') {{\n",
|
1124 |
-
" console.log([gd, 'removed!']);\n",
|
1125 |
-
" Plotly.purge(gd);\n",
|
1126 |
-
" observer.disconnect();\n",
|
1127 |
-
" }}\n",
|
1128 |
-
"}});\n",
|
1129 |
-
"\n",
|
1130 |
-
"// Listen for the removal of the full notebook cells\n",
|
1131 |
-
"var notebookContainer = gd.closest('#notebook-container');\n",
|
1132 |
-
"if (notebookContainer) {{\n",
|
1133 |
-
" x.observe(notebookContainer, {childList: true});\n",
|
1134 |
-
"}}\n",
|
1135 |
-
"\n",
|
1136 |
-
"// Listen for the clearing of the current output cell\n",
|
1137 |
-
"var outputEl = gd.closest('.output');\n",
|
1138 |
-
"if (outputEl) {{\n",
|
1139 |
-
" x.observe(outputEl, {childList: true});\n",
|
1140 |
-
"}}\n",
|
1141 |
-
"\n",
|
1142 |
-
" }) }; }); </script> </div>"
|
1143 |
-
]
|
1144 |
-
},
|
1145 |
-
"metadata": {},
|
1146 |
-
"output_type": "display_data"
|
1147 |
-
}
|
1148 |
-
],
|
1149 |
"source": [
|
1150 |
-
"df, fig = ask_vanna(query)\n",
|
1151 |
"print(df.head())\n",
|
1152 |
"fig.show()"
|
1153 |
]
|
|
|
11 |
"cell_type": "code",
|
12 |
"execution_count": null,
|
13 |
"metadata": {},
|
14 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
"source": [
|
16 |
"import sys\n",
|
17 |
"import os\n",
|
|
|
40 |
"# query = \"What is the impact of climate in Bordeaux?\"\n",
|
41 |
"# query = \"what is the number of days where the temperature above 35 in 2050 in Marseille\"\n",
|
42 |
"# query = \"Quelle sera la température à Marseille sur les prochaines années ?\"\n",
|
43 |
+
"# query = \"Comment vont évoluer les températures à Marseille ?\"\n",
|
44 |
+
"query = \"Comment vont évoluer les températures à marseille ?\""
|
45 |
]
|
46 |
},
|
47 |
{
|
|
|
55 |
"cell_type": "code",
|
56 |
"execution_count": null,
|
57 |
"metadata": {},
|
58 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
"source": [
|
60 |
+
"sql_query, df, fig = ask_vanna(query)\n",
|
61 |
"print(df.head())\n",
|
62 |
"fig.show()"
|
63 |
]
|
sandbox/talk_to_data/20250306 - CQA - Step_by_step_vanna.ipynb
CHANGED
@@ -2,18 +2,9 @@
|
|
2 |
"cells": [
|
3 |
{
|
4 |
"cell_type": "code",
|
5 |
-
"execution_count":
|
6 |
"metadata": {},
|
7 |
-
"outputs": [
|
8 |
-
{
|
9 |
-
"name": "stdout",
|
10 |
-
"output_type": "stream",
|
11 |
-
"text": [
|
12 |
-
"The autoreload extension is already loaded. To reload it, use:\n",
|
13 |
-
" %reload_ext autoreload\n"
|
14 |
-
]
|
15 |
-
}
|
16 |
-
],
|
17 |
"source": [
|
18 |
"import sys\n",
|
19 |
"import os\n",
|
@@ -38,7 +29,7 @@
|
|
38 |
},
|
39 |
{
|
40 |
"cell_type": "code",
|
41 |
-
"execution_count":
|
42 |
"metadata": {},
|
43 |
"outputs": [],
|
44 |
"source": [
|
@@ -59,15 +50,7 @@
|
|
59 |
"cell_type": "code",
|
60 |
"execution_count": null,
|
61 |
"metadata": {},
|
62 |
-
"outputs": [
|
63 |
-
{
|
64 |
-
"name": "stdout",
|
65 |
-
"output_type": "stream",
|
66 |
-
"text": [
|
67 |
-
"Loading embeddings model: BAAI/bge-base-en-v1.5\n"
|
68 |
-
]
|
69 |
-
}
|
70 |
-
],
|
71 |
"source": [
|
72 |
"from dotenv import load_dotenv\n",
|
73 |
"\n",
|
@@ -97,11 +80,12 @@
|
|
97 |
},
|
98 |
{
|
99 |
"cell_type": "code",
|
100 |
-
"execution_count":
|
101 |
"metadata": {},
|
102 |
"outputs": [],
|
103 |
"source": [
|
104 |
-
"query = \"Quelle sera la température à Marseille sur les prochaines années ?\""
|
|
|
105 |
]
|
106 |
},
|
107 |
{
|
@@ -113,17 +97,9 @@
|
|
113 |
},
|
114 |
{
|
115 |
"cell_type": "code",
|
116 |
-
"execution_count":
|
117 |
"metadata": {},
|
118 |
-
"outputs": [
|
119 |
-
{
|
120 |
-
"name": "stdout",
|
121 |
-
"output_type": "stream",
|
122 |
-
"text": [
|
123 |
-
"Marseille\n"
|
124 |
-
]
|
125 |
-
}
|
126 |
-
],
|
127 |
"source": [
|
128 |
"location = detect_location_with_openai(OPENAI_API_KEY, query)\n",
|
129 |
"print(location)"
|
@@ -138,20 +114,12 @@
|
|
138 |
},
|
139 |
{
|
140 |
"cell_type": "code",
|
141 |
-
"execution_count":
|
142 |
"metadata": {},
|
143 |
-
"outputs": [
|
144 |
-
{
|
145 |
-
"name": "stdout",
|
146 |
-
"output_type": "stream",
|
147 |
-
"text": [
|
148 |
-
"Quelle sera la température à lat, long : (43.2961743, 5.3699525) sur les prochaines années ?\n"
|
149 |
-
]
|
150 |
-
}
|
151 |
-
],
|
152 |
"source": [
|
153 |
"coords = loc2coords(location)\n",
|
154 |
-
"user_input = query.replace(location, f\"lat, long : {coords}\")\n",
|
155 |
"print(user_input)"
|
156 |
]
|
157 |
},
|
@@ -166,26 +134,12 @@
|
|
166 |
"cell_type": "code",
|
167 |
"execution_count": null,
|
168 |
"metadata": {},
|
169 |
-
"outputs": [
|
170 |
-
{
|
171 |
-
"name": "stderr",
|
172 |
-
"output_type": "stream",
|
173 |
-
"text": [
|
174 |
-
"Failed to multipart ingest runs: langsmith.utils.LangSmithError: Failed to POST https://eu.api.smith.langchain.com/runs/multipart in LangSmith API. HTTPError('403 Client Error: Forbidden for url: https://eu.api.smith.langchain.com/runs/multipart', '{\"error\":\"Forbidden\"}\\n')\n"
|
175 |
-
]
|
176 |
-
},
|
177 |
-
{
|
178 |
-
"name": "stderr",
|
179 |
-
"output_type": "stream",
|
180 |
-
"text": [
|
181 |
-
"Failed to multipart ingest runs: langsmith.utils.LangSmithError: Failed to POST https://eu.api.smith.langchain.com/runs/multipart in LangSmith API. HTTPError('403 Client Error: Forbidden for url: https://eu.api.smith.langchain.com/runs/multipart', '{\"error\":\"Forbidden\"}\\n')\n"
|
182 |
-
]
|
183 |
-
}
|
184 |
-
],
|
185 |
"source": [
|
186 |
"relevant_tables = detect_relevant_tables(user_input, llm) \n",
|
187 |
"coords_tables = [nearestNeighbourSQL(db_vanna_path, coords, relevant_tables[i]) for i in range(len(relevant_tables))]\n",
|
188 |
-
"user_input_with_coords = replace_coordonates(coords, user_input, coords_tables)"
|
|
|
189 |
]
|
190 |
},
|
191 |
{
|
@@ -197,1285 +151,27 @@
|
|
197 |
},
|
198 |
{
|
199 |
"cell_type": "code",
|
200 |
-
"execution_count":
|
201 |
"metadata": {},
|
202 |
-
"outputs": [
|
203 |
-
{
|
204 |
-
"name": "stdout",
|
205 |
-
"output_type": "stream",
|
206 |
-
"text": [
|
207 |
-
"SQL Prompt: [{'role': 'system', 'content': \"You are a SQLite expert. Please help to generate a SQL query to answer the question. Your response should ONLY be based on the given context and follow the response guidelines and format instructions. \\n===Tables \\nCREATE TABLE Mean_winter_temperature ( y FLOAT, x FLOAT, year INT, \\n month INT, \\n day INT \\n, LambertParisII VARCHAR(255), lat FLOAT, lon FLOAT, TMm FLOAT);\\n\\nCREATE TABLE Mean_winter_temperature (\\n y FLOAT,\\n x FLOAT,\\n year INT, \\n month INT, \\n day INT \\n,\\n LambertParisII VARCHAR(255),\\n lat FLOAT,\\n lon FLOAT,\\n TMm FLOAT\\n);\\n\\nCREATE TABLE Mean_summer_temperature ( y FLOAT, x FLOAT, year INT, \\n month INT, \\n day INT \\n, LambertParisII VARCHAR(255), lat FLOAT, lon FLOAT, TMm FLOAT);\\n\\nCREATE TABLE Mean_summer_temperature (\\n y FLOAT,\\n x FLOAT,\\n year INT, \\n month INT, \\n day INT \\n,\\n LambertParisII VARCHAR(255),\\n lat FLOAT,\\n lon FLOAT,\\n TMm FLOAT\\n);\\n\\n\\n===Additional Context \\n\\nThe Number of days with Tx above 35C table contains information on the number of days when the maximum temperature in the past and the futureis greater than or equal to 35°C.The variables are as follows:- 'y' and 'x': Lambert Paris II coordinates for the location.- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.- 'lat' and 'lon': Latitude and longitude of the location.- 'TX35D': Number of days with Tx ≥ 35°C.\\n\\nThe Number of days with Tx above 30C table contains information on the number of days when the maximum temperature in the past and the futureis greater than or equal to 30°C.The variables are as follows:- 'y' and 'x': Lambert Paris II coordinates for the location.- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.- 'lat' and 'lon': Latitude and longitude of the location.- 'TX30D': Number of days with Tx ≥ 30°C.\\n\\nThe Number of days with Tx above 35C table contains information on the number of days when the maximum temperature in the past and the future\\nis greater than or equal to 35°C.\\nThe variables are as follows:\\n- 'y' and 'x': Lambert Paris II coordinates for the location.\\n- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.\\n- 'lat' and 'lon': Latitude and longitude of the location.\\n- 'TX35D': Number of days with Tx ≥ 35°C.\\n\\nThe Number of days with Tx above 30C table contains information on the number of days when the maximum temperature in the past and the future\\nis greater than or equal to 30°C.\\nThe variables are as follows:\\n- 'y' and 'x': Lambert Paris II coordinates for the location.\\n- year: Year of the observation.\\n\\n - month : Month of the observation.\\n\\n - day: Day of the observation.\\n\\n- 'LambertParisII': Indicates that the x, y coordinates are in the Lambert Paris II projection.\\n- 'lat' and 'lon': Latitude and longitude of the location.\\n- 'TX30D': Number of days with Tx ≥ 30°C.\\n\\n===Response Guidelines \\n1. If the provided context is sufficient, please generate a valid SQL query without any explanations for the question. \\n2. If the provided context is almost sufficient but requires knowledge of a specific string in a particular column, please generate an intermediate SQL query to find the distinct strings in that column. Prepend the query with a comment saying intermediate_sql \\n3. If the provided context is insufficient, please give a sql query based on your knowledge and the context provided. \\n4. Please use the most relevant table(s). \\n5. If the question has been asked and answered before, please repeat the answer exactly as it was given before. \\n6. Ensure that the output SQL is SQLite-compliant and executable, and free of syntax errors. \\n7. Add a description of the table in the result of the sql query, if relevant. \\n8 Make sure to include the relevant KPI in the SQL query. The query should return impactfull data \\n\"}, {'role': 'user', 'content': 'Quelle sera la température à lat, long : (43.166954040527344, 5.430534839630127) sur les prochaines années ?'}]\n",
|
208 |
-
"Using model gpt-4o-mini for 1101.25 tokens (approx)\n",
|
209 |
-
"LLM Response: ```sql\n",
|
210 |
-
"SELECT year, month, day, TMm \n",
|
211 |
-
"FROM Mean_winter_temperature \n",
|
212 |
-
"WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
213 |
-
"UNION ALL\n",
|
214 |
-
"SELECT year, month, day, TMm \n",
|
215 |
-
"FROM Mean_summer_temperature \n",
|
216 |
-
"WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
217 |
-
"ORDER BY year, month, day;\n",
|
218 |
-
"```\n",
|
219 |
-
"LLM Response: ```sql\n",
|
220 |
-
"SELECT year, month, day, TMm \n",
|
221 |
-
"FROM Mean_winter_temperature \n",
|
222 |
-
"WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
223 |
-
"UNION ALL\n",
|
224 |
-
"SELECT year, month, day, TMm \n",
|
225 |
-
"FROM Mean_summer_temperature \n",
|
226 |
-
"WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
227 |
-
"ORDER BY year, month, day;\n",
|
228 |
-
"```\n",
|
229 |
-
"Extracted SQL: SELECT year, month, day, TMm \n",
|
230 |
-
"FROM Mean_winter_temperature \n",
|
231 |
-
"WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
232 |
-
"UNION ALL\n",
|
233 |
-
"SELECT year, month, day, TMm \n",
|
234 |
-
"FROM Mean_summer_temperature \n",
|
235 |
-
"WHERE lat = 43.166954040527344 AND lon = 5.430534839630127\n",
|
236 |
-
"ORDER BY year, month, day;\n",
|
237 |
-
"Using model gpt-4o-mini for 252.5 tokens (approx)\n"
|
238 |
-
]
|
239 |
-
}
|
240 |
-
],
|
241 |
"source": [
|
242 |
-
"sql_query, result_dataframe, figure = vn.ask(user_input_with_coords, print_results=False, allow_llm_to_see_data=True)\n"
|
243 |
]
|
244 |
},
|
245 |
{
|
246 |
"cell_type": "code",
|
247 |
-
"execution_count":
|
248 |
"metadata": {},
|
249 |
-
"outputs": [
|
250 |
-
{
|
251 |
-
"data": {
|
252 |
-
"text/html": [
|
253 |
-
"<div>\n",
|
254 |
-
"<style scoped>\n",
|
255 |
-
" .dataframe tbody tr th:only-of-type {\n",
|
256 |
-
" vertical-align: middle;\n",
|
257 |
-
" }\n",
|
258 |
-
"\n",
|
259 |
-
" .dataframe tbody tr th {\n",
|
260 |
-
" vertical-align: top;\n",
|
261 |
-
" }\n",
|
262 |
-
"\n",
|
263 |
-
" .dataframe thead th {\n",
|
264 |
-
" text-align: right;\n",
|
265 |
-
" }\n",
|
266 |
-
"</style>\n",
|
267 |
-
"<table border=\"1\" class=\"dataframe\">\n",
|
268 |
-
" <thead>\n",
|
269 |
-
" <tr style=\"text-align: right;\">\n",
|
270 |
-
" <th></th>\n",
|
271 |
-
" <th>year</th>\n",
|
272 |
-
" <th>month</th>\n",
|
273 |
-
" <th>day</th>\n",
|
274 |
-
" <th>TMm</th>\n",
|
275 |
-
" <th>date</th>\n",
|
276 |
-
" </tr>\n",
|
277 |
-
" </thead>\n",
|
278 |
-
" <tbody>\n",
|
279 |
-
" <tr>\n",
|
280 |
-
" <th>0</th>\n",
|
281 |
-
" <td>2031</td>\n",
|
282 |
-
" <td>1</td>\n",
|
283 |
-
" <td>14</td>\n",
|
284 |
-
" <td>9.952474</td>\n",
|
285 |
-
" <td>2031-01-14</td>\n",
|
286 |
-
" </tr>\n",
|
287 |
-
" <tr>\n",
|
288 |
-
" <th>1</th>\n",
|
289 |
-
" <td>2031</td>\n",
|
290 |
-
" <td>1</td>\n",
|
291 |
-
" <td>14</td>\n",
|
292 |
-
" <td>9.952474</td>\n",
|
293 |
-
" <td>2031-01-14</td>\n",
|
294 |
-
" </tr>\n",
|
295 |
-
" <tr>\n",
|
296 |
-
" <th>2</th>\n",
|
297 |
-
" <td>2031</td>\n",
|
298 |
-
" <td>7</td>\n",
|
299 |
-
" <td>16</td>\n",
|
300 |
-
" <td>24.061035</td>\n",
|
301 |
-
" <td>2031-07-16</td>\n",
|
302 |
-
" </tr>\n",
|
303 |
-
" <tr>\n",
|
304 |
-
" <th>3</th>\n",
|
305 |
-
" <td>2031</td>\n",
|
306 |
-
" <td>7</td>\n",
|
307 |
-
" <td>16</td>\n",
|
308 |
-
" <td>24.061035</td>\n",
|
309 |
-
" <td>2031-07-16</td>\n",
|
310 |
-
" </tr>\n",
|
311 |
-
" <tr>\n",
|
312 |
-
" <th>4</th>\n",
|
313 |
-
" <td>2032</td>\n",
|
314 |
-
" <td>1</td>\n",
|
315 |
-
" <td>15</td>\n",
|
316 |
-
" <td>10.142323</td>\n",
|
317 |
-
" <td>2032-01-15</td>\n",
|
318 |
-
" </tr>\n",
|
319 |
-
" <tr>\n",
|
320 |
-
" <th>...</th>\n",
|
321 |
-
" <td>...</td>\n",
|
322 |
-
" <td>...</td>\n",
|
323 |
-
" <td>...</td>\n",
|
324 |
-
" <td>...</td>\n",
|
325 |
-
" <td>...</td>\n",
|
326 |
-
" </tr>\n",
|
327 |
-
" <tr>\n",
|
328 |
-
" <th>75</th>\n",
|
329 |
-
" <td>2049</td>\n",
|
330 |
-
" <td>7</td>\n",
|
331 |
-
" <td>16</td>\n",
|
332 |
-
" <td>24.829654</td>\n",
|
333 |
-
" <td>2049-07-16</td>\n",
|
334 |
-
" </tr>\n",
|
335 |
-
" <tr>\n",
|
336 |
-
" <th>76</th>\n",
|
337 |
-
" <td>2050</td>\n",
|
338 |
-
" <td>1</td>\n",
|
339 |
-
" <td>14</td>\n",
|
340 |
-
" <td>10.632255</td>\n",
|
341 |
-
" <td>2050-01-14</td>\n",
|
342 |
-
" </tr>\n",
|
343 |
-
" <tr>\n",
|
344 |
-
" <th>77</th>\n",
|
345 |
-
" <td>2050</td>\n",
|
346 |
-
" <td>1</td>\n",
|
347 |
-
" <td>14</td>\n",
|
348 |
-
" <td>10.632255</td>\n",
|
349 |
-
" <td>2050-01-14</td>\n",
|
350 |
-
" </tr>\n",
|
351 |
-
" <tr>\n",
|
352 |
-
" <th>78</th>\n",
|
353 |
-
" <td>2050</td>\n",
|
354 |
-
" <td>7</td>\n",
|
355 |
-
" <td>16</td>\n",
|
356 |
-
" <td>25.053394</td>\n",
|
357 |
-
" <td>2050-07-16</td>\n",
|
358 |
-
" </tr>\n",
|
359 |
-
" <tr>\n",
|
360 |
-
" <th>79</th>\n",
|
361 |
-
" <td>2050</td>\n",
|
362 |
-
" <td>7</td>\n",
|
363 |
-
" <td>16</td>\n",
|
364 |
-
" <td>25.053394</td>\n",
|
365 |
-
" <td>2050-07-16</td>\n",
|
366 |
-
" </tr>\n",
|
367 |
-
" </tbody>\n",
|
368 |
-
"</table>\n",
|
369 |
-
"<p>80 rows × 5 columns</p>\n",
|
370 |
-
"</div>"
|
371 |
-
],
|
372 |
-
"text/plain": [
|
373 |
-
" year month day TMm date\n",
|
374 |
-
"0 2031 1 14 9.952474 2031-01-14\n",
|
375 |
-
"1 2031 1 14 9.952474 2031-01-14\n",
|
376 |
-
"2 2031 7 16 24.061035 2031-07-16\n",
|
377 |
-
"3 2031 7 16 24.061035 2031-07-16\n",
|
378 |
-
"4 2032 1 15 10.142323 2032-01-15\n",
|
379 |
-
".. ... ... ... ... ...\n",
|
380 |
-
"75 2049 7 16 24.829654 2049-07-16\n",
|
381 |
-
"76 2050 1 14 10.632255 2050-01-14\n",
|
382 |
-
"77 2050 1 14 10.632255 2050-01-14\n",
|
383 |
-
"78 2050 7 16 25.053394 2050-07-16\n",
|
384 |
-
"79 2050 7 16 25.053394 2050-07-16\n",
|
385 |
-
"\n",
|
386 |
-
"[80 rows x 5 columns]"
|
387 |
-
]
|
388 |
-
},
|
389 |
-
"execution_count": 18,
|
390 |
-
"metadata": {},
|
391 |
-
"output_type": "execute_result"
|
392 |
-
}
|
393 |
-
],
|
394 |
"source": [
|
395 |
"result_dataframe"
|
396 |
]
|
397 |
},
|
398 |
{
|
399 |
"cell_type": "code",
|
400 |
-
"execution_count":
|
401 |
"metadata": {},
|
402 |
-
"outputs": [
|
403 |
-
{
|
404 |
-
"data": {
|
405 |
-
"application/vnd.plotly.v1+json": {
|
406 |
-
"config": {
|
407 |
-
"plotlyServerURL": "https://plot.ly"
|
408 |
-
},
|
409 |
-
"data": [
|
410 |
-
{
|
411 |
-
"hovertemplate": "Date=%{x}<br>Temperature (°C)=%{y}<extra></extra>",
|
412 |
-
"legendgroup": "",
|
413 |
-
"line": {
|
414 |
-
"color": "#636efa",
|
415 |
-
"dash": "solid"
|
416 |
-
},
|
417 |
-
"marker": {
|
418 |
-
"symbol": "circle"
|
419 |
-
},
|
420 |
-
"mode": "lines",
|
421 |
-
"name": "",
|
422 |
-
"orientation": "v",
|
423 |
-
"showlegend": false,
|
424 |
-
"type": "scatter",
|
425 |
-
"x": [
|
426 |
-
"2031-01-14T00:00:00",
|
427 |
-
"2031-01-14T00:00:00",
|
428 |
-
"2031-07-16T00:00:00",
|
429 |
-
"2031-07-16T00:00:00",
|
430 |
-
"2032-01-15T00:00:00",
|
431 |
-
"2032-01-15T00:00:00",
|
432 |
-
"2032-07-16T00:00:00",
|
433 |
-
"2032-07-16T00:00:00",
|
434 |
-
"2033-01-14T00:00:00",
|
435 |
-
"2033-01-14T00:00:00",
|
436 |
-
"2033-07-16T00:00:00",
|
437 |
-
"2033-07-16T00:00:00",
|
438 |
-
"2034-01-14T00:00:00",
|
439 |
-
"2034-01-14T00:00:00",
|
440 |
-
"2034-07-16T00:00:00",
|
441 |
-
"2034-07-16T00:00:00",
|
442 |
-
"2035-01-14T00:00:00",
|
443 |
-
"2035-01-14T00:00:00",
|
444 |
-
"2035-07-16T00:00:00",
|
445 |
-
"2035-07-16T00:00:00",
|
446 |
-
"2036-01-15T00:00:00",
|
447 |
-
"2036-01-15T00:00:00",
|
448 |
-
"2036-07-16T00:00:00",
|
449 |
-
"2036-07-16T00:00:00",
|
450 |
-
"2037-01-14T00:00:00",
|
451 |
-
"2037-01-14T00:00:00",
|
452 |
-
"2037-07-16T00:00:00",
|
453 |
-
"2037-07-16T00:00:00",
|
454 |
-
"2038-01-14T00:00:00",
|
455 |
-
"2038-01-14T00:00:00",
|
456 |
-
"2038-07-16T00:00:00",
|
457 |
-
"2038-07-16T00:00:00",
|
458 |
-
"2039-01-14T00:00:00",
|
459 |
-
"2039-01-14T00:00:00",
|
460 |
-
"2039-07-16T00:00:00",
|
461 |
-
"2039-07-16T00:00:00",
|
462 |
-
"2040-01-15T00:00:00",
|
463 |
-
"2040-01-15T00:00:00",
|
464 |
-
"2040-07-16T00:00:00",
|
465 |
-
"2040-07-16T00:00:00",
|
466 |
-
"2041-01-14T00:00:00",
|
467 |
-
"2041-01-14T00:00:00",
|
468 |
-
"2041-07-16T00:00:00",
|
469 |
-
"2041-07-16T00:00:00",
|
470 |
-
"2042-01-14T00:00:00",
|
471 |
-
"2042-01-14T00:00:00",
|
472 |
-
"2042-07-16T00:00:00",
|
473 |
-
"2042-07-16T00:00:00",
|
474 |
-
"2043-01-14T00:00:00",
|
475 |
-
"2043-01-14T00:00:00",
|
476 |
-
"2043-07-16T00:00:00",
|
477 |
-
"2043-07-16T00:00:00",
|
478 |
-
"2044-01-15T00:00:00",
|
479 |
-
"2044-01-15T00:00:00",
|
480 |
-
"2044-07-16T00:00:00",
|
481 |
-
"2044-07-16T00:00:00",
|
482 |
-
"2045-01-14T00:00:00",
|
483 |
-
"2045-01-14T00:00:00",
|
484 |
-
"2045-07-16T00:00:00",
|
485 |
-
"2045-07-16T00:00:00",
|
486 |
-
"2046-01-14T00:00:00",
|
487 |
-
"2046-01-14T00:00:00",
|
488 |
-
"2046-07-16T00:00:00",
|
489 |
-
"2046-07-16T00:00:00",
|
490 |
-
"2047-01-14T00:00:00",
|
491 |
-
"2047-01-14T00:00:00",
|
492 |
-
"2047-07-16T00:00:00",
|
493 |
-
"2047-07-16T00:00:00",
|
494 |
-
"2048-01-15T00:00:00",
|
495 |
-
"2048-01-15T00:00:00",
|
496 |
-
"2048-07-16T00:00:00",
|
497 |
-
"2048-07-16T00:00:00",
|
498 |
-
"2049-01-14T00:00:00",
|
499 |
-
"2049-01-14T00:00:00",
|
500 |
-
"2049-07-16T00:00:00",
|
501 |
-
"2049-07-16T00:00:00",
|
502 |
-
"2050-01-14T00:00:00",
|
503 |
-
"2050-01-14T00:00:00",
|
504 |
-
"2050-07-16T00:00:00",
|
505 |
-
"2050-07-16T00:00:00"
|
506 |
-
],
|
507 |
-
"xaxis": "x",
|
508 |
-
"y": [
|
509 |
-
9.952474117647114,
|
510 |
-
9.952474117647114,
|
511 |
-
24.061035294117687,
|
512 |
-
24.061035294117687,
|
513 |
-
10.142322941176474,
|
514 |
-
10.142322941176474,
|
515 |
-
24.530692941176483,
|
516 |
-
24.530692941176483,
|
517 |
-
9.907942941176486,
|
518 |
-
9.907942941176486,
|
519 |
-
24.722234705882386,
|
520 |
-
24.722234705882386,
|
521 |
-
9.548873529411765,
|
522 |
-
9.548873529411765,
|
523 |
-
23.84629176470588,
|
524 |
-
23.84629176470588,
|
525 |
-
10.284758235294191,
|
526 |
-
10.284758235294191,
|
527 |
-
24.231422352941195,
|
528 |
-
24.231422352941195,
|
529 |
-
10.372100000000046,
|
530 |
-
10.372100000000046,
|
531 |
-
24.488941764705885,
|
532 |
-
24.488941764705885,
|
533 |
-
9.98571000000004,
|
534 |
-
9.98571000000004,
|
535 |
-
24.79424117647062,
|
536 |
-
24.79424117647062,
|
537 |
-
10.221372352941216,
|
538 |
-
10.221372352941216,
|
539 |
-
24.730553529411793,
|
540 |
-
24.730553529411793,
|
541 |
-
10.222609411764722,
|
542 |
-
10.222609411764722,
|
543 |
-
24.44979882352942,
|
544 |
-
24.44979882352942,
|
545 |
-
10.473662941176485,
|
546 |
-
10.473662941176485,
|
547 |
-
24.40726882352942,
|
548 |
-
24.40726882352942,
|
549 |
-
10.427640588235306,
|
550 |
-
10.427640588235306,
|
551 |
-
24.768547647058824,
|
552 |
-
24.768547647058824,
|
553 |
-
10.364736470588241,
|
554 |
-
10.364736470588241,
|
555 |
-
24.53479647058822,
|
556 |
-
24.53479647058822,
|
557 |
-
10.112910588235309,
|
558 |
-
10.112910588235309,
|
559 |
-
24.769181176470624,
|
560 |
-
24.769181176470624,
|
561 |
-
10.250792352941176,
|
562 |
-
10.250792352941176,
|
563 |
-
24.489877058823538,
|
564 |
-
24.489877058823538,
|
565 |
-
10.166119411764669,
|
566 |
-
10.166119411764669,
|
567 |
-
24.448076470588262,
|
568 |
-
24.448076470588262,
|
569 |
-
10.728997647058861,
|
570 |
-
10.728997647058861,
|
571 |
-
25.111282352941203,
|
572 |
-
25.111282352941203,
|
573 |
-
10.347248823529412,
|
574 |
-
10.347248823529412,
|
575 |
-
24.72313823529413,
|
576 |
-
24.72313823529413,
|
577 |
-
10.706604117647089,
|
578 |
-
10.706604117647089,
|
579 |
-
25.187577058823535,
|
580 |
-
25.187577058823535,
|
581 |
-
10.59243764705883,
|
582 |
-
10.59243764705883,
|
583 |
-
24.829653529411814,
|
584 |
-
24.829653529411814,
|
585 |
-
10.63225529411767,
|
586 |
-
10.63225529411767,
|
587 |
-
25.053394117647144,
|
588 |
-
25.053394117647144
|
589 |
-
],
|
590 |
-
"yaxis": "y"
|
591 |
-
}
|
592 |
-
],
|
593 |
-
"layout": {
|
594 |
-
"legend": {
|
595 |
-
"tracegroupgap": 0
|
596 |
-
},
|
597 |
-
"template": {
|
598 |
-
"data": {
|
599 |
-
"bar": [
|
600 |
-
{
|
601 |
-
"error_x": {
|
602 |
-
"color": "#f2f5fa"
|
603 |
-
},
|
604 |
-
"error_y": {
|
605 |
-
"color": "#f2f5fa"
|
606 |
-
},
|
607 |
-
"marker": {
|
608 |
-
"line": {
|
609 |
-
"color": "rgb(17,17,17)",
|
610 |
-
"width": 0.5
|
611 |
-
},
|
612 |
-
"pattern": {
|
613 |
-
"fillmode": "overlay",
|
614 |
-
"size": 10,
|
615 |
-
"solidity": 0.2
|
616 |
-
}
|
617 |
-
},
|
618 |
-
"type": "bar"
|
619 |
-
}
|
620 |
-
],
|
621 |
-
"barpolar": [
|
622 |
-
{
|
623 |
-
"marker": {
|
624 |
-
"line": {
|
625 |
-
"color": "rgb(17,17,17)",
|
626 |
-
"width": 0.5
|
627 |
-
},
|
628 |
-
"pattern": {
|
629 |
-
"fillmode": "overlay",
|
630 |
-
"size": 10,
|
631 |
-
"solidity": 0.2
|
632 |
-
}
|
633 |
-
},
|
634 |
-
"type": "barpolar"
|
635 |
-
}
|
636 |
-
],
|
637 |
-
"carpet": [
|
638 |
-
{
|
639 |
-
"aaxis": {
|
640 |
-
"endlinecolor": "#A2B1C6",
|
641 |
-
"gridcolor": "#506784",
|
642 |
-
"linecolor": "#506784",
|
643 |
-
"minorgridcolor": "#506784",
|
644 |
-
"startlinecolor": "#A2B1C6"
|
645 |
-
},
|
646 |
-
"baxis": {
|
647 |
-
"endlinecolor": "#A2B1C6",
|
648 |
-
"gridcolor": "#506784",
|
649 |
-
"linecolor": "#506784",
|
650 |
-
"minorgridcolor": "#506784",
|
651 |
-
"startlinecolor": "#A2B1C6"
|
652 |
-
},
|
653 |
-
"type": "carpet"
|
654 |
-
}
|
655 |
-
],
|
656 |
-
"choropleth": [
|
657 |
-
{
|
658 |
-
"colorbar": {
|
659 |
-
"outlinewidth": 0,
|
660 |
-
"ticks": ""
|
661 |
-
},
|
662 |
-
"type": "choropleth"
|
663 |
-
}
|
664 |
-
],
|
665 |
-
"contour": [
|
666 |
-
{
|
667 |
-
"colorbar": {
|
668 |
-
"outlinewidth": 0,
|
669 |
-
"ticks": ""
|
670 |
-
},
|
671 |
-
"colorscale": [
|
672 |
-
[
|
673 |
-
0,
|
674 |
-
"#0d0887"
|
675 |
-
],
|
676 |
-
[
|
677 |
-
0.1111111111111111,
|
678 |
-
"#46039f"
|
679 |
-
],
|
680 |
-
[
|
681 |
-
0.2222222222222222,
|
682 |
-
"#7201a8"
|
683 |
-
],
|
684 |
-
[
|
685 |
-
0.3333333333333333,
|
686 |
-
"#9c179e"
|
687 |
-
],
|
688 |
-
[
|
689 |
-
0.4444444444444444,
|
690 |
-
"#bd3786"
|
691 |
-
],
|
692 |
-
[
|
693 |
-
0.5555555555555556,
|
694 |
-
"#d8576b"
|
695 |
-
],
|
696 |
-
[
|
697 |
-
0.6666666666666666,
|
698 |
-
"#ed7953"
|
699 |
-
],
|
700 |
-
[
|
701 |
-
0.7777777777777778,
|
702 |
-
"#fb9f3a"
|
703 |
-
],
|
704 |
-
[
|
705 |
-
0.8888888888888888,
|
706 |
-
"#fdca26"
|
707 |
-
],
|
708 |
-
[
|
709 |
-
1,
|
710 |
-
"#f0f921"
|
711 |
-
]
|
712 |
-
],
|
713 |
-
"type": "contour"
|
714 |
-
}
|
715 |
-
],
|
716 |
-
"contourcarpet": [
|
717 |
-
{
|
718 |
-
"colorbar": {
|
719 |
-
"outlinewidth": 0,
|
720 |
-
"ticks": ""
|
721 |
-
},
|
722 |
-
"type": "contourcarpet"
|
723 |
-
}
|
724 |
-
],
|
725 |
-
"heatmap": [
|
726 |
-
{
|
727 |
-
"colorbar": {
|
728 |
-
"outlinewidth": 0,
|
729 |
-
"ticks": ""
|
730 |
-
},
|
731 |
-
"colorscale": [
|
732 |
-
[
|
733 |
-
0,
|
734 |
-
"#0d0887"
|
735 |
-
],
|
736 |
-
[
|
737 |
-
0.1111111111111111,
|
738 |
-
"#46039f"
|
739 |
-
],
|
740 |
-
[
|
741 |
-
0.2222222222222222,
|
742 |
-
"#7201a8"
|
743 |
-
],
|
744 |
-
[
|
745 |
-
0.3333333333333333,
|
746 |
-
"#9c179e"
|
747 |
-
],
|
748 |
-
[
|
749 |
-
0.4444444444444444,
|
750 |
-
"#bd3786"
|
751 |
-
],
|
752 |
-
[
|
753 |
-
0.5555555555555556,
|
754 |
-
"#d8576b"
|
755 |
-
],
|
756 |
-
[
|
757 |
-
0.6666666666666666,
|
758 |
-
"#ed7953"
|
759 |
-
],
|
760 |
-
[
|
761 |
-
0.7777777777777778,
|
762 |
-
"#fb9f3a"
|
763 |
-
],
|
764 |
-
[
|
765 |
-
0.8888888888888888,
|
766 |
-
"#fdca26"
|
767 |
-
],
|
768 |
-
[
|
769 |
-
1,
|
770 |
-
"#f0f921"
|
771 |
-
]
|
772 |
-
],
|
773 |
-
"type": "heatmap"
|
774 |
-
}
|
775 |
-
],
|
776 |
-
"heatmapgl": [
|
777 |
-
{
|
778 |
-
"colorbar": {
|
779 |
-
"outlinewidth": 0,
|
780 |
-
"ticks": ""
|
781 |
-
},
|
782 |
-
"colorscale": [
|
783 |
-
[
|
784 |
-
0,
|
785 |
-
"#0d0887"
|
786 |
-
],
|
787 |
-
[
|
788 |
-
0.1111111111111111,
|
789 |
-
"#46039f"
|
790 |
-
],
|
791 |
-
[
|
792 |
-
0.2222222222222222,
|
793 |
-
"#7201a8"
|
794 |
-
],
|
795 |
-
[
|
796 |
-
0.3333333333333333,
|
797 |
-
"#9c179e"
|
798 |
-
],
|
799 |
-
[
|
800 |
-
0.4444444444444444,
|
801 |
-
"#bd3786"
|
802 |
-
],
|
803 |
-
[
|
804 |
-
0.5555555555555556,
|
805 |
-
"#d8576b"
|
806 |
-
],
|
807 |
-
[
|
808 |
-
0.6666666666666666,
|
809 |
-
"#ed7953"
|
810 |
-
],
|
811 |
-
[
|
812 |
-
0.7777777777777778,
|
813 |
-
"#fb9f3a"
|
814 |
-
],
|
815 |
-
[
|
816 |
-
0.8888888888888888,
|
817 |
-
"#fdca26"
|
818 |
-
],
|
819 |
-
[
|
820 |
-
1,
|
821 |
-
"#f0f921"
|
822 |
-
]
|
823 |
-
],
|
824 |
-
"type": "heatmapgl"
|
825 |
-
}
|
826 |
-
],
|
827 |
-
"histogram": [
|
828 |
-
{
|
829 |
-
"marker": {
|
830 |
-
"pattern": {
|
831 |
-
"fillmode": "overlay",
|
832 |
-
"size": 10,
|
833 |
-
"solidity": 0.2
|
834 |
-
}
|
835 |
-
},
|
836 |
-
"type": "histogram"
|
837 |
-
}
|
838 |
-
],
|
839 |
-
"histogram2d": [
|
840 |
-
{
|
841 |
-
"colorbar": {
|
842 |
-
"outlinewidth": 0,
|
843 |
-
"ticks": ""
|
844 |
-
},
|
845 |
-
"colorscale": [
|
846 |
-
[
|
847 |
-
0,
|
848 |
-
"#0d0887"
|
849 |
-
],
|
850 |
-
[
|
851 |
-
0.1111111111111111,
|
852 |
-
"#46039f"
|
853 |
-
],
|
854 |
-
[
|
855 |
-
0.2222222222222222,
|
856 |
-
"#7201a8"
|
857 |
-
],
|
858 |
-
[
|
859 |
-
0.3333333333333333,
|
860 |
-
"#9c179e"
|
861 |
-
],
|
862 |
-
[
|
863 |
-
0.4444444444444444,
|
864 |
-
"#bd3786"
|
865 |
-
],
|
866 |
-
[
|
867 |
-
0.5555555555555556,
|
868 |
-
"#d8576b"
|
869 |
-
],
|
870 |
-
[
|
871 |
-
0.6666666666666666,
|
872 |
-
"#ed7953"
|
873 |
-
],
|
874 |
-
[
|
875 |
-
0.7777777777777778,
|
876 |
-
"#fb9f3a"
|
877 |
-
],
|
878 |
-
[
|
879 |
-
0.8888888888888888,
|
880 |
-
"#fdca26"
|
881 |
-
],
|
882 |
-
[
|
883 |
-
1,
|
884 |
-
"#f0f921"
|
885 |
-
]
|
886 |
-
],
|
887 |
-
"type": "histogram2d"
|
888 |
-
}
|
889 |
-
],
|
890 |
-
"histogram2dcontour": [
|
891 |
-
{
|
892 |
-
"colorbar": {
|
893 |
-
"outlinewidth": 0,
|
894 |
-
"ticks": ""
|
895 |
-
},
|
896 |
-
"colorscale": [
|
897 |
-
[
|
898 |
-
0,
|
899 |
-
"#0d0887"
|
900 |
-
],
|
901 |
-
[
|
902 |
-
0.1111111111111111,
|
903 |
-
"#46039f"
|
904 |
-
],
|
905 |
-
[
|
906 |
-
0.2222222222222222,
|
907 |
-
"#7201a8"
|
908 |
-
],
|
909 |
-
[
|
910 |
-
0.3333333333333333,
|
911 |
-
"#9c179e"
|
912 |
-
],
|
913 |
-
[
|
914 |
-
0.4444444444444444,
|
915 |
-
"#bd3786"
|
916 |
-
],
|
917 |
-
[
|
918 |
-
0.5555555555555556,
|
919 |
-
"#d8576b"
|
920 |
-
],
|
921 |
-
[
|
922 |
-
0.6666666666666666,
|
923 |
-
"#ed7953"
|
924 |
-
],
|
925 |
-
[
|
926 |
-
0.7777777777777778,
|
927 |
-
"#fb9f3a"
|
928 |
-
],
|
929 |
-
[
|
930 |
-
0.8888888888888888,
|
931 |
-
"#fdca26"
|
932 |
-
],
|
933 |
-
[
|
934 |
-
1,
|
935 |
-
"#f0f921"
|
936 |
-
]
|
937 |
-
],
|
938 |
-
"type": "histogram2dcontour"
|
939 |
-
}
|
940 |
-
],
|
941 |
-
"mesh3d": [
|
942 |
-
{
|
943 |
-
"colorbar": {
|
944 |
-
"outlinewidth": 0,
|
945 |
-
"ticks": ""
|
946 |
-
},
|
947 |
-
"type": "mesh3d"
|
948 |
-
}
|
949 |
-
],
|
950 |
-
"parcoords": [
|
951 |
-
{
|
952 |
-
"line": {
|
953 |
-
"colorbar": {
|
954 |
-
"outlinewidth": 0,
|
955 |
-
"ticks": ""
|
956 |
-
}
|
957 |
-
},
|
958 |
-
"type": "parcoords"
|
959 |
-
}
|
960 |
-
],
|
961 |
-
"pie": [
|
962 |
-
{
|
963 |
-
"automargin": true,
|
964 |
-
"type": "pie"
|
965 |
-
}
|
966 |
-
],
|
967 |
-
"scatter": [
|
968 |
-
{
|
969 |
-
"marker": {
|
970 |
-
"line": {
|
971 |
-
"color": "#283442"
|
972 |
-
}
|
973 |
-
},
|
974 |
-
"type": "scatter"
|
975 |
-
}
|
976 |
-
],
|
977 |
-
"scatter3d": [
|
978 |
-
{
|
979 |
-
"line": {
|
980 |
-
"colorbar": {
|
981 |
-
"outlinewidth": 0,
|
982 |
-
"ticks": ""
|
983 |
-
}
|
984 |
-
},
|
985 |
-
"marker": {
|
986 |
-
"colorbar": {
|
987 |
-
"outlinewidth": 0,
|
988 |
-
"ticks": ""
|
989 |
-
}
|
990 |
-
},
|
991 |
-
"type": "scatter3d"
|
992 |
-
}
|
993 |
-
],
|
994 |
-
"scattercarpet": [
|
995 |
-
{
|
996 |
-
"marker": {
|
997 |
-
"colorbar": {
|
998 |
-
"outlinewidth": 0,
|
999 |
-
"ticks": ""
|
1000 |
-
}
|
1001 |
-
},
|
1002 |
-
"type": "scattercarpet"
|
1003 |
-
}
|
1004 |
-
],
|
1005 |
-
"scattergeo": [
|
1006 |
-
{
|
1007 |
-
"marker": {
|
1008 |
-
"colorbar": {
|
1009 |
-
"outlinewidth": 0,
|
1010 |
-
"ticks": ""
|
1011 |
-
}
|
1012 |
-
},
|
1013 |
-
"type": "scattergeo"
|
1014 |
-
}
|
1015 |
-
],
|
1016 |
-
"scattergl": [
|
1017 |
-
{
|
1018 |
-
"marker": {
|
1019 |
-
"line": {
|
1020 |
-
"color": "#283442"
|
1021 |
-
}
|
1022 |
-
},
|
1023 |
-
"type": "scattergl"
|
1024 |
-
}
|
1025 |
-
],
|
1026 |
-
"scattermapbox": [
|
1027 |
-
{
|
1028 |
-
"marker": {
|
1029 |
-
"colorbar": {
|
1030 |
-
"outlinewidth": 0,
|
1031 |
-
"ticks": ""
|
1032 |
-
}
|
1033 |
-
},
|
1034 |
-
"type": "scattermapbox"
|
1035 |
-
}
|
1036 |
-
],
|
1037 |
-
"scatterpolar": [
|
1038 |
-
{
|
1039 |
-
"marker": {
|
1040 |
-
"colorbar": {
|
1041 |
-
"outlinewidth": 0,
|
1042 |
-
"ticks": ""
|
1043 |
-
}
|
1044 |
-
},
|
1045 |
-
"type": "scatterpolar"
|
1046 |
-
}
|
1047 |
-
],
|
1048 |
-
"scatterpolargl": [
|
1049 |
-
{
|
1050 |
-
"marker": {
|
1051 |
-
"colorbar": {
|
1052 |
-
"outlinewidth": 0,
|
1053 |
-
"ticks": ""
|
1054 |
-
}
|
1055 |
-
},
|
1056 |
-
"type": "scatterpolargl"
|
1057 |
-
}
|
1058 |
-
],
|
1059 |
-
"scatterternary": [
|
1060 |
-
{
|
1061 |
-
"marker": {
|
1062 |
-
"colorbar": {
|
1063 |
-
"outlinewidth": 0,
|
1064 |
-
"ticks": ""
|
1065 |
-
}
|
1066 |
-
},
|
1067 |
-
"type": "scatterternary"
|
1068 |
-
}
|
1069 |
-
],
|
1070 |
-
"surface": [
|
1071 |
-
{
|
1072 |
-
"colorbar": {
|
1073 |
-
"outlinewidth": 0,
|
1074 |
-
"ticks": ""
|
1075 |
-
},
|
1076 |
-
"colorscale": [
|
1077 |
-
[
|
1078 |
-
0,
|
1079 |
-
"#0d0887"
|
1080 |
-
],
|
1081 |
-
[
|
1082 |
-
0.1111111111111111,
|
1083 |
-
"#46039f"
|
1084 |
-
],
|
1085 |
-
[
|
1086 |
-
0.2222222222222222,
|
1087 |
-
"#7201a8"
|
1088 |
-
],
|
1089 |
-
[
|
1090 |
-
0.3333333333333333,
|
1091 |
-
"#9c179e"
|
1092 |
-
],
|
1093 |
-
[
|
1094 |
-
0.4444444444444444,
|
1095 |
-
"#bd3786"
|
1096 |
-
],
|
1097 |
-
[
|
1098 |
-
0.5555555555555556,
|
1099 |
-
"#d8576b"
|
1100 |
-
],
|
1101 |
-
[
|
1102 |
-
0.6666666666666666,
|
1103 |
-
"#ed7953"
|
1104 |
-
],
|
1105 |
-
[
|
1106 |
-
0.7777777777777778,
|
1107 |
-
"#fb9f3a"
|
1108 |
-
],
|
1109 |
-
[
|
1110 |
-
0.8888888888888888,
|
1111 |
-
"#fdca26"
|
1112 |
-
],
|
1113 |
-
[
|
1114 |
-
1,
|
1115 |
-
"#f0f921"
|
1116 |
-
]
|
1117 |
-
],
|
1118 |
-
"type": "surface"
|
1119 |
-
}
|
1120 |
-
],
|
1121 |
-
"table": [
|
1122 |
-
{
|
1123 |
-
"cells": {
|
1124 |
-
"fill": {
|
1125 |
-
"color": "#506784"
|
1126 |
-
},
|
1127 |
-
"line": {
|
1128 |
-
"color": "rgb(17,17,17)"
|
1129 |
-
}
|
1130 |
-
},
|
1131 |
-
"header": {
|
1132 |
-
"fill": {
|
1133 |
-
"color": "#2a3f5f"
|
1134 |
-
},
|
1135 |
-
"line": {
|
1136 |
-
"color": "rgb(17,17,17)"
|
1137 |
-
}
|
1138 |
-
},
|
1139 |
-
"type": "table"
|
1140 |
-
}
|
1141 |
-
]
|
1142 |
-
},
|
1143 |
-
"layout": {
|
1144 |
-
"annotationdefaults": {
|
1145 |
-
"arrowcolor": "#f2f5fa",
|
1146 |
-
"arrowhead": 0,
|
1147 |
-
"arrowwidth": 1
|
1148 |
-
},
|
1149 |
-
"autotypenumbers": "strict",
|
1150 |
-
"coloraxis": {
|
1151 |
-
"colorbar": {
|
1152 |
-
"outlinewidth": 0,
|
1153 |
-
"ticks": ""
|
1154 |
-
}
|
1155 |
-
},
|
1156 |
-
"colorscale": {
|
1157 |
-
"diverging": [
|
1158 |
-
[
|
1159 |
-
0,
|
1160 |
-
"#8e0152"
|
1161 |
-
],
|
1162 |
-
[
|
1163 |
-
0.1,
|
1164 |
-
"#c51b7d"
|
1165 |
-
],
|
1166 |
-
[
|
1167 |
-
0.2,
|
1168 |
-
"#de77ae"
|
1169 |
-
],
|
1170 |
-
[
|
1171 |
-
0.3,
|
1172 |
-
"#f1b6da"
|
1173 |
-
],
|
1174 |
-
[
|
1175 |
-
0.4,
|
1176 |
-
"#fde0ef"
|
1177 |
-
],
|
1178 |
-
[
|
1179 |
-
0.5,
|
1180 |
-
"#f7f7f7"
|
1181 |
-
],
|
1182 |
-
[
|
1183 |
-
0.6,
|
1184 |
-
"#e6f5d0"
|
1185 |
-
],
|
1186 |
-
[
|
1187 |
-
0.7,
|
1188 |
-
"#b8e186"
|
1189 |
-
],
|
1190 |
-
[
|
1191 |
-
0.8,
|
1192 |
-
"#7fbc41"
|
1193 |
-
],
|
1194 |
-
[
|
1195 |
-
0.9,
|
1196 |
-
"#4d9221"
|
1197 |
-
],
|
1198 |
-
[
|
1199 |
-
1,
|
1200 |
-
"#276419"
|
1201 |
-
]
|
1202 |
-
],
|
1203 |
-
"sequential": [
|
1204 |
-
[
|
1205 |
-
0,
|
1206 |
-
"#0d0887"
|
1207 |
-
],
|
1208 |
-
[
|
1209 |
-
0.1111111111111111,
|
1210 |
-
"#46039f"
|
1211 |
-
],
|
1212 |
-
[
|
1213 |
-
0.2222222222222222,
|
1214 |
-
"#7201a8"
|
1215 |
-
],
|
1216 |
-
[
|
1217 |
-
0.3333333333333333,
|
1218 |
-
"#9c179e"
|
1219 |
-
],
|
1220 |
-
[
|
1221 |
-
0.4444444444444444,
|
1222 |
-
"#bd3786"
|
1223 |
-
],
|
1224 |
-
[
|
1225 |
-
0.5555555555555556,
|
1226 |
-
"#d8576b"
|
1227 |
-
],
|
1228 |
-
[
|
1229 |
-
0.6666666666666666,
|
1230 |
-
"#ed7953"
|
1231 |
-
],
|
1232 |
-
[
|
1233 |
-
0.7777777777777778,
|
1234 |
-
"#fb9f3a"
|
1235 |
-
],
|
1236 |
-
[
|
1237 |
-
0.8888888888888888,
|
1238 |
-
"#fdca26"
|
1239 |
-
],
|
1240 |
-
[
|
1241 |
-
1,
|
1242 |
-
"#f0f921"
|
1243 |
-
]
|
1244 |
-
],
|
1245 |
-
"sequentialminus": [
|
1246 |
-
[
|
1247 |
-
0,
|
1248 |
-
"#0d0887"
|
1249 |
-
],
|
1250 |
-
[
|
1251 |
-
0.1111111111111111,
|
1252 |
-
"#46039f"
|
1253 |
-
],
|
1254 |
-
[
|
1255 |
-
0.2222222222222222,
|
1256 |
-
"#7201a8"
|
1257 |
-
],
|
1258 |
-
[
|
1259 |
-
0.3333333333333333,
|
1260 |
-
"#9c179e"
|
1261 |
-
],
|
1262 |
-
[
|
1263 |
-
0.4444444444444444,
|
1264 |
-
"#bd3786"
|
1265 |
-
],
|
1266 |
-
[
|
1267 |
-
0.5555555555555556,
|
1268 |
-
"#d8576b"
|
1269 |
-
],
|
1270 |
-
[
|
1271 |
-
0.6666666666666666,
|
1272 |
-
"#ed7953"
|
1273 |
-
],
|
1274 |
-
[
|
1275 |
-
0.7777777777777778,
|
1276 |
-
"#fb9f3a"
|
1277 |
-
],
|
1278 |
-
[
|
1279 |
-
0.8888888888888888,
|
1280 |
-
"#fdca26"
|
1281 |
-
],
|
1282 |
-
[
|
1283 |
-
1,
|
1284 |
-
"#f0f921"
|
1285 |
-
]
|
1286 |
-
]
|
1287 |
-
},
|
1288 |
-
"colorway": [
|
1289 |
-
"#636efa",
|
1290 |
-
"#EF553B",
|
1291 |
-
"#00cc96",
|
1292 |
-
"#ab63fa",
|
1293 |
-
"#FFA15A",
|
1294 |
-
"#19d3f3",
|
1295 |
-
"#FF6692",
|
1296 |
-
"#B6E880",
|
1297 |
-
"#FF97FF",
|
1298 |
-
"#FECB52"
|
1299 |
-
],
|
1300 |
-
"font": {
|
1301 |
-
"color": "#f2f5fa"
|
1302 |
-
},
|
1303 |
-
"geo": {
|
1304 |
-
"bgcolor": "rgb(17,17,17)",
|
1305 |
-
"lakecolor": "rgb(17,17,17)",
|
1306 |
-
"landcolor": "rgb(17,17,17)",
|
1307 |
-
"showlakes": true,
|
1308 |
-
"showland": true,
|
1309 |
-
"subunitcolor": "#506784"
|
1310 |
-
},
|
1311 |
-
"hoverlabel": {
|
1312 |
-
"align": "left"
|
1313 |
-
},
|
1314 |
-
"hovermode": "closest",
|
1315 |
-
"mapbox": {
|
1316 |
-
"style": "dark"
|
1317 |
-
},
|
1318 |
-
"paper_bgcolor": "rgb(17,17,17)",
|
1319 |
-
"plot_bgcolor": "rgb(17,17,17)",
|
1320 |
-
"polar": {
|
1321 |
-
"angularaxis": {
|
1322 |
-
"gridcolor": "#506784",
|
1323 |
-
"linecolor": "#506784",
|
1324 |
-
"ticks": ""
|
1325 |
-
},
|
1326 |
-
"bgcolor": "rgb(17,17,17)",
|
1327 |
-
"radialaxis": {
|
1328 |
-
"gridcolor": "#506784",
|
1329 |
-
"linecolor": "#506784",
|
1330 |
-
"ticks": ""
|
1331 |
-
}
|
1332 |
-
},
|
1333 |
-
"scene": {
|
1334 |
-
"xaxis": {
|
1335 |
-
"backgroundcolor": "rgb(17,17,17)",
|
1336 |
-
"gridcolor": "#506784",
|
1337 |
-
"gridwidth": 2,
|
1338 |
-
"linecolor": "#506784",
|
1339 |
-
"showbackground": true,
|
1340 |
-
"ticks": "",
|
1341 |
-
"zerolinecolor": "#C8D4E3"
|
1342 |
-
},
|
1343 |
-
"yaxis": {
|
1344 |
-
"backgroundcolor": "rgb(17,17,17)",
|
1345 |
-
"gridcolor": "#506784",
|
1346 |
-
"gridwidth": 2,
|
1347 |
-
"linecolor": "#506784",
|
1348 |
-
"showbackground": true,
|
1349 |
-
"ticks": "",
|
1350 |
-
"zerolinecolor": "#C8D4E3"
|
1351 |
-
},
|
1352 |
-
"zaxis": {
|
1353 |
-
"backgroundcolor": "rgb(17,17,17)",
|
1354 |
-
"gridcolor": "#506784",
|
1355 |
-
"gridwidth": 2,
|
1356 |
-
"linecolor": "#506784",
|
1357 |
-
"showbackground": true,
|
1358 |
-
"ticks": "",
|
1359 |
-
"zerolinecolor": "#C8D4E3"
|
1360 |
-
}
|
1361 |
-
},
|
1362 |
-
"shapedefaults": {
|
1363 |
-
"line": {
|
1364 |
-
"color": "#f2f5fa"
|
1365 |
-
}
|
1366 |
-
},
|
1367 |
-
"sliderdefaults": {
|
1368 |
-
"bgcolor": "#C8D4E3",
|
1369 |
-
"bordercolor": "rgb(17,17,17)",
|
1370 |
-
"borderwidth": 1,
|
1371 |
-
"tickwidth": 0
|
1372 |
-
},
|
1373 |
-
"ternary": {
|
1374 |
-
"aaxis": {
|
1375 |
-
"gridcolor": "#506784",
|
1376 |
-
"linecolor": "#506784",
|
1377 |
-
"ticks": ""
|
1378 |
-
},
|
1379 |
-
"baxis": {
|
1380 |
-
"gridcolor": "#506784",
|
1381 |
-
"linecolor": "#506784",
|
1382 |
-
"ticks": ""
|
1383 |
-
},
|
1384 |
-
"bgcolor": "rgb(17,17,17)",
|
1385 |
-
"caxis": {
|
1386 |
-
"gridcolor": "#506784",
|
1387 |
-
"linecolor": "#506784",
|
1388 |
-
"ticks": ""
|
1389 |
-
}
|
1390 |
-
},
|
1391 |
-
"title": {
|
1392 |
-
"x": 0.05
|
1393 |
-
},
|
1394 |
-
"updatemenudefaults": {
|
1395 |
-
"bgcolor": "#506784",
|
1396 |
-
"borderwidth": 0
|
1397 |
-
},
|
1398 |
-
"xaxis": {
|
1399 |
-
"automargin": true,
|
1400 |
-
"gridcolor": "#283442",
|
1401 |
-
"linecolor": "#506784",
|
1402 |
-
"ticks": "",
|
1403 |
-
"title": {
|
1404 |
-
"standoff": 15
|
1405 |
-
},
|
1406 |
-
"zerolinecolor": "#283442",
|
1407 |
-
"zerolinewidth": 2
|
1408 |
-
},
|
1409 |
-
"yaxis": {
|
1410 |
-
"automargin": true,
|
1411 |
-
"gridcolor": "#283442",
|
1412 |
-
"linecolor": "#506784",
|
1413 |
-
"ticks": "",
|
1414 |
-
"title": {
|
1415 |
-
"standoff": 15
|
1416 |
-
},
|
1417 |
-
"zerolinecolor": "#283442",
|
1418 |
-
"zerolinewidth": 2
|
1419 |
-
}
|
1420 |
-
}
|
1421 |
-
},
|
1422 |
-
"title": {
|
1423 |
-
"text": "Mean Temperature Over Time"
|
1424 |
-
},
|
1425 |
-
"xaxis": {
|
1426 |
-
"anchor": "y",
|
1427 |
-
"domain": [
|
1428 |
-
0,
|
1429 |
-
1
|
1430 |
-
],
|
1431 |
-
"title": {
|
1432 |
-
"text": "Date"
|
1433 |
-
}
|
1434 |
-
},
|
1435 |
-
"yaxis": {
|
1436 |
-
"anchor": "x",
|
1437 |
-
"domain": [
|
1438 |
-
0,
|
1439 |
-
1
|
1440 |
-
],
|
1441 |
-
"title": {
|
1442 |
-
"text": "Temperature (°C)"
|
1443 |
-
}
|
1444 |
-
}
|
1445 |
-
}
|
1446 |
-
},
|
1447 |
-
"text/html": [
|
1448 |
-
"<div> <div id=\"0ca9e356-0087-49c5-9366-b7197b98f96f\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"0ca9e356-0087-49c5-9366-b7197b98f96f\")) { Plotly.newPlot( \"0ca9e356-0087-49c5-9366-b7197b98f96f\", [{\"hovertemplate\":\"Date=%{x}\\u003cbr\\u003eTemperature (°C)=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"\",\"line\":{\"color\":\"#636efa\",\"dash\":\"solid\"},\"marker\":{\"symbol\":\"circle\"},\"mode\":\"lines\",\"name\":\"\",\"orientation\":\"v\",\"showlegend\":false,\"x\":[\"2031-01-14T00:00:00\",\"2031-01-14T00:00:00\",\"2031-07-16T00:00:00\",\"2031-07-16T00:00:00\",\"2032-01-15T00:00:00\",\"2032-01-15T00:00:00\",\"2032-07-16T00:00:00\",\"2032-07-16T00:00:00\",\"2033-01-14T00:00:00\",\"2033-01-14T00:00:00\",\"2033-07-16T00:00:00\",\"2033-07-16T00:00:00\",\"2034-01-14T00:00:00\",\"2034-01-14T00:00:00\",\"2034-07-16T00:00:00\",\"2034-07-16T00:00:00\",\"2035-01-14T00:00:00\",\"2035-01-14T00:00:00\",\"2035-07-16T00:00:00\",\"2035-07-16T00:00:00\",\"2036-01-15T00:00:00\",\"2036-01-15T00:00:00\",\"2036-07-16T00:00:00\",\"2036-07-16T00:00:00\",\"2037-01-14T00:00:00\",\"2037-01-14T00:00:00\",\"2037-07-16T00:00:00\",\"2037-07-16T00:00:00\",\"2038-01-14T00:00:00\",\"2038-01-14T00:00:00\",\"2038-07-16T00:00:00\",\"2038-07-16T00:00:00\",\"2039-01-14T00:00:00\",\"2039-01-14T00:00:00\",\"2039-07-16T00:00:00\",\"2039-07-16T00:00:00\",\"2040-01-15T00:00:00\",\"2040-01-15T00:00:00\",\"2040-07-16T00:00:00\",\"2040-07-16T00:00:00\",\"2041-01-14T00:00:00\",\"2041-01-14T00:00:00\",\"2041-07-16T00:00:00\",\"2041-07-16T00:00:00\",\"2042-01-14T00:00:00\",\"2042-01-14T00:00:00\",\"2042-07-16T00:00:00\",\"2042-07-16T00:00:00\",\"2043-01-14T00:00:00\",\"2043-01-14T00:00:00\",\"2043-07-16T00:00:00\",\"2043-07-16T00:00:00\",\"2044-01-15T00:00:00\",\"2044-01-15T00:00:00\",\"2044-07-16T00:00:00\",\"2044-07-16T00:00:00\",\"2045-01-14T00:00:00\",\"2045-01-14T00:00:00\",\"2045-07-16T00:00:00\",\"2045-07-16T00:00:00\",\"2046-01-14T00:00:00\",\"2046-01-14T00:00:00\",\"2046-07-16T00:00:00\",\"2046-07-16T00:00:00\",\"2047-01-14T00:00:00\",\"2047-01-14T00:00:00\",\"2047-07-16T00:00:00\",\"2047-07-16T00:00:00\",\"2048-01-15T00:00:00\",\"2048-01-15T00:00:00\",\"2048-07-16T00:00:00\",\"2048-07-16T00:00:00\",\"2049-01-14T00:00:00\",\"2049-01-14T00:00:00\",\"2049-07-16T00:00:00\",\"2049-07-16T00:00:00\",\"2050-01-14T00:00:00\",\"2050-01-14T00:00:00\",\"2050-07-16T00:00:00\",\"2050-07-16T00:00:00\"],\"xaxis\":\"x\",\"y\":[9.952474117647114,9.952474117647114,24.061035294117687,24.061035294117687,10.142322941176474,10.142322941176474,24.530692941176483,24.530692941176483,9.907942941176486,9.907942941176486,24.722234705882386,24.722234705882386,9.548873529411765,9.548873529411765,23.84629176470588,23.84629176470588,10.284758235294191,10.284758235294191,24.231422352941195,24.231422352941195,10.372100000000046,10.372100000000046,24.488941764705885,24.488941764705885,9.98571000000004,9.98571000000004,24.79424117647062,24.79424117647062,10.221372352941216,10.221372352941216,24.730553529411793,24.730553529411793,10.222609411764722,10.222609411764722,24.44979882352942,24.44979882352942,10.473662941176485,10.473662941176485,24.40726882352942,24.40726882352942,10.427640588235306,10.427640588235306,24.768547647058824,24.768547647058824,10.364736470588241,10.364736470588241,24.53479647058822,24.53479647058822,10.112910588235309,10.112910588235309,24.769181176470624,24.769181176470624,10.250792352941176,10.250792352941176,24.489877058823538,24.489877058823538,10.166119411764669,10.166119411764669,24.448076470588262,24.448076470588262,10.728997647058861,10.728997647058861,25.111282352941203,25.111282352941203,10.347248823529412,10.347248823529412,24.72313823529413,24.72313823529413,10.706604117647089,10.706604117647089,25.187577058823535,25.187577058823535,10.59243764705883,10.59243764705883,24.829653529411814,24.829653529411814,10.63225529411767,10.63225529411767,25.053394117647144,25.053394117647144],\"yaxis\":\"y\",\"type\":\"scatter\"}], {\"template\":{\"data\":{\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"choropleth\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"choropleth\"}],\"contourcarpet\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"contourcarpet\"}],\"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\"]],\"type\":\"contour\"}],\"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\"]],\"type\":\"heatmapgl\"}],\"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\"]],\"type\":\"heatmap\"}],\"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\"]],\"type\":\"histogram2dcontour\"}],\"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\"]],\"type\":\"histogram2d\"}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"mesh3d\":[{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"type\":\"mesh3d\"}],\"parcoords\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"parcoords\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}],\"scatter3d\":[{\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatter3d\"}],\"scattercarpet\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattercarpet\"}],\"scattergeo\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattergeo\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scattermapbox\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scattermapbox\"}],\"scatterpolargl\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolargl\"}],\"scatterpolar\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterpolar\"}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"scatterternary\":[{\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"type\":\"scatterternary\"}],\"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\"]],\"type\":\"surface\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}]},\"layout\":{\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1},\"autotypenumbers\":\"strict\",\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"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\"]],\"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\"]]},\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#f2f5fa\"},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"lakecolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"showlakes\":true,\"showland\":true,\"subunitcolor\":\"#506784\"},\"hoverlabel\":{\"align\":\"left\"},\"hovermode\":\"closest\",\"mapbox\":{\"style\":\"dark\"},\"paper_bgcolor\":\"rgb(17,17,17)\",\"plot_bgcolor\":\"rgb(17,17,17)\",\"polar\":{\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"gridwidth\":2,\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\"}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"bordercolor\":\"rgb(17,17,17)\",\"borderwidth\":1,\"tickwidth\":0},\"ternary\":{\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"bgcolor\":\"rgb(17,17,17)\",\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"xaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2},\"yaxis\":{\"automargin\":true,\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"zerolinewidth\":2}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"Date\"}},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"Temperature (°C)\"}},\"legend\":{\"tracegroupgap\":0},\"title\":{\"text\":\"Mean Temperature Over Time\"}}, {\"responsive\": true} ).then(function(){\n",
|
1449 |
-
" \n",
|
1450 |
-
"var gd = document.getElementById('0ca9e356-0087-49c5-9366-b7197b98f96f');\n",
|
1451 |
-
"var x = new MutationObserver(function (mutations, observer) {{\n",
|
1452 |
-
" var display = window.getComputedStyle(gd).display;\n",
|
1453 |
-
" if (!display || display === 'none') {{\n",
|
1454 |
-
" console.log([gd, 'removed!']);\n",
|
1455 |
-
" Plotly.purge(gd);\n",
|
1456 |
-
" observer.disconnect();\n",
|
1457 |
-
" }}\n",
|
1458 |
-
"}});\n",
|
1459 |
-
"\n",
|
1460 |
-
"// Listen for the removal of the full notebook cells\n",
|
1461 |
-
"var notebookContainer = gd.closest('#notebook-container');\n",
|
1462 |
-
"if (notebookContainer) {{\n",
|
1463 |
-
" x.observe(notebookContainer, {childList: true});\n",
|
1464 |
-
"}}\n",
|
1465 |
-
"\n",
|
1466 |
-
"// Listen for the clearing of the current output cell\n",
|
1467 |
-
"var outputEl = gd.closest('.output');\n",
|
1468 |
-
"if (outputEl) {{\n",
|
1469 |
-
" x.observe(outputEl, {childList: true});\n",
|
1470 |
-
"}}\n",
|
1471 |
-
"\n",
|
1472 |
-
" }) }; }); </script> </div>"
|
1473 |
-
]
|
1474 |
-
},
|
1475 |
-
"metadata": {},
|
1476 |
-
"output_type": "display_data"
|
1477 |
-
}
|
1478 |
-
],
|
1479 |
"source": [
|
1480 |
"figure"
|
1481 |
]
|
|
|
2 |
"cells": [
|
3 |
{
|
4 |
"cell_type": "code",
|
5 |
+
"execution_count": null,
|
6 |
"metadata": {},
|
7 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
"source": [
|
9 |
"import sys\n",
|
10 |
"import os\n",
|
|
|
29 |
},
|
30 |
{
|
31 |
"cell_type": "code",
|
32 |
+
"execution_count": null,
|
33 |
"metadata": {},
|
34 |
"outputs": [],
|
35 |
"source": [
|
|
|
50 |
"cell_type": "code",
|
51 |
"execution_count": null,
|
52 |
"metadata": {},
|
53 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
"source": [
|
55 |
"from dotenv import load_dotenv\n",
|
56 |
"\n",
|
|
|
80 |
},
|
81 |
{
|
82 |
"cell_type": "code",
|
83 |
+
"execution_count": null,
|
84 |
"metadata": {},
|
85 |
"outputs": [],
|
86 |
"source": [
|
87 |
+
"# query = \"Quelle sera la température à Marseille sur les prochaines années ?\"\n",
|
88 |
+
"query = \"Comment vont évoluer les températures à marseille ?\""
|
89 |
]
|
90 |
},
|
91 |
{
|
|
|
97 |
},
|
98 |
{
|
99 |
"cell_type": "code",
|
100 |
+
"execution_count": null,
|
101 |
"metadata": {},
|
102 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
"source": [
|
104 |
"location = detect_location_with_openai(OPENAI_API_KEY, query)\n",
|
105 |
"print(location)"
|
|
|
114 |
},
|
115 |
{
|
116 |
"cell_type": "code",
|
117 |
+
"execution_count": null,
|
118 |
"metadata": {},
|
119 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
"source": [
|
121 |
"coords = loc2coords(location)\n",
|
122 |
+
"user_input = query.lower().replace(location.lower(), f\"lat, long : {coords}\")\n",
|
123 |
"print(user_input)"
|
124 |
]
|
125 |
},
|
|
|
134 |
"cell_type": "code",
|
135 |
"execution_count": null,
|
136 |
"metadata": {},
|
137 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
"source": [
|
139 |
"relevant_tables = detect_relevant_tables(user_input, llm) \n",
|
140 |
"coords_tables = [nearestNeighbourSQL(db_vanna_path, coords, relevant_tables[i]) for i in range(len(relevant_tables))]\n",
|
141 |
+
"user_input_with_coords = replace_coordonates(coords, user_input, coords_tables)\n",
|
142 |
+
"print(user_input_with_coords)"
|
143 |
]
|
144 |
},
|
145 |
{
|
|
|
151 |
},
|
152 |
{
|
153 |
"cell_type": "code",
|
154 |
+
"execution_count": null,
|
155 |
"metadata": {},
|
156 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
"source": [
|
158 |
+
"sql_query, result_dataframe, figure = vn.ask(user_input_with_coords, print_results=False, allow_llm_to_see_data=True, auto_train=False)\n"
|
159 |
]
|
160 |
},
|
161 |
{
|
162 |
"cell_type": "code",
|
163 |
+
"execution_count": null,
|
164 |
"metadata": {},
|
165 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
"source": [
|
167 |
"result_dataframe"
|
168 |
]
|
169 |
},
|
170 |
{
|
171 |
"cell_type": "code",
|
172 |
+
"execution_count": null,
|
173 |
"metadata": {},
|
174 |
+
"outputs": [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
"source": [
|
176 |
"figure"
|
177 |
]
|