from datasets import load_dataset import gradio as gr import pandas as pd import plotly.express as px # Load dataset ds = load_dataset("egecandrsn/weatherdata") df = pd.DataFrame(ds['train']) df['datetime'] = pd.to_datetime(df['datetime']) # Create Graphs def create_graphs(): # Temperature over Time fig_temp = px.line(df, x='datetime', y='temp', title='Temperature Over Time') # Precipitation over Time fig_precip = px.line(df, x='datetime', y='precip', title='Precipitation Over Time') # Wind Speed over Time fig_wind = px.line(df, x='datetime', y='windspeed', title='Wind Speed Over Time') df['year'] = df['datetime'].dt.year df['heat_index'] = df['temp'] + (0.55 - 0.55 * df['humidity'] / 100) * (df['temp'] - 58) fig_heat = px.line(df.groupby('year')['heat_index'].mean().reset_index(), x='year', y='heat_index', title='Heat Index Over the Years') # Return multiple graphs return fig_temp, fig_precip, fig_wind, fig_heat # Create Gradio interface interface = gr.Interface( fn=create_graphs, inputs=None, # No input required, as we are just displaying graphs outputs=[gr.Plot(), gr.Plot(), gr.Plot(), gr.Plot()], # Multiple graph outputs title="Weather Data Analysis", description="This app shows multiple weather analysis graphs based on the dataset." ) # Launch the interface interface.launch()