Spaces:
Runtime error
Runtime error
| import matplotlib.pyplot as plt | |
| import seaborn as sns | |
| import pandas as pd | |
| import geopandas as gp | |
| import numpy as np | |
| def get_residual_plot(country_name, gdf): | |
| fig, ax = plt.subplots(1,1,figsize=(10,6)) | |
| if country_name is None: | |
| ax.text(0.5, 0.5, "Click on the map to see the IWI time-series here.", | |
| horizontalalignment='center', verticalalignment='center', | |
| transform=ax.transAxes, fontsize=14) | |
| elif gdf['country'].str.contains(country_name).any(): | |
| gdf = gdf[gdf['country'] == country_name] | |
| gdf['date'] = pd.to_datetime(gdf['date']) | |
| modified_xticks = gdf['date'].dt.to_period('M') | |
| ticks_unique = np.unique(modified_xticks) | |
| sns.boxplot(x=modified_xticks, y=gdf['residual'], ax=ax) | |
| ax.set_xlabel('date') | |
| ax.set_xticks(range(len(ticks_unique))) | |
| ax.set_xticklabels(labels = ticks_unique, rotation=45) | |
| ax.set_ylabel('iwi_value') | |
| ax.set_title(f'IWI Residual Plot For {country_name}') | |
| ax.grid(True, linestyle='--', alpha=0.7) | |
| plt.tight_layout() | |
| return fig | |
| else: | |
| ax.text(0.5, 0.5, "No country data available. Please select another country.", | |
| horizontalalignment='center', verticalalignment='center', | |
| transform=ax.transAxes, fontsize=14) |