Spaces:
Sleeping
Sleeping
| import matplotlib.pyplot as plt | |
| import plotly.express as px | |
| import seaborn as sns | |
| from .definitions import * | |
| ## Functions for plotting ## | |
| def lin_reg_plt(df, x, y, model): | |
| """Create linear regression plot. | |
| Returns: | |
| plotly.graph_objects | |
| """ | |
| if model == "lowess": | |
| trendline_options = dict(frac=0.6) | |
| else: | |
| trendline_options = None | |
| # Plotly scatter plot for the data points | |
| fig = px.scatter( | |
| df, | |
| x=x, | |
| y=y, | |
| trendline=model, | |
| height=400, | |
| trendline_options=trendline_options, | |
| hover_data=["region_name"], | |
| trendline_color_override=px.colors.qualitative.D3[3], | |
| color_discrete_sequence=px.colors.qualitative.D3, | |
| ) | |
| fig.update_layout( | |
| plot_bgcolor="white", | |
| legend=dict(orientation="h", title=""), | |
| margin=dict(l=1, r=1, t=18, b=1, pad=1), | |
| ) | |
| return fig | |
| def box_plt(df, variable): | |
| """Create Plotly box plot. | |
| Returns: | |
| plotly.graph_objects | |
| """ | |
| fig = px.box( | |
| df, | |
| x="EU Region", | |
| y=variable, | |
| points="all", | |
| color_discrete_sequence=px.colors.qualitative.D3, | |
| hover_data=["region_name"], | |
| notched=True, | |
| title="", | |
| color="EU Region", | |
| height=400, | |
| ) | |
| fig.update_layout( | |
| margin=dict(l=1, r=1, t=23, b=1, pad=1), | |
| plot_bgcolor="white", | |
| showlegend=False, | |
| yaxis_title="", | |
| xaxis_title="", | |
| ) | |
| return fig | |
| def kde_plt(df, variable): | |
| """Create kernel density estimation plot. | |
| Returns: | |
| plotly.graph_objects | |
| """ | |
| fig, ax = plt.subplots(figsize=(10, 6)) | |
| ax.grid(False) | |
| ax.spines["top"].set_visible(False) | |
| ax.spines["right"].set_visible(False) | |
| ax.spines["bottom"].set_visible(False) | |
| ax.spines["left"].set_visible(False) | |
| ax.get_yaxis().set_ticks([]) | |
| sns.kdeplot(data=df, x=variable, fill=True, alpha=0.15, hue="EU Region", ax=ax) | |
| return fig | |
| def corr_heatmap(df): | |
| """Create correlation heat map.""" | |
| fig, ax = plt.subplots(figsize=(10, 8)) | |
| sns.heatmap(df.corr().round(decimals=2), annot=True, ax=ax) | |
| return fig | |