Spaces:
Runtime error
Runtime error
import gradio as gr | |
import pandas as pd | |
import plotly.express as px | |
def update_columns(csv_file): | |
if csv_file is None: | |
return gr.Dropdown(choices=[]), gr.Dropdown(choices=[]) | |
df = pd.read_csv(csv_file.name) | |
numeric_cols = df.select_dtypes(include=['number']).columns.tolist() | |
return gr.Dropdown(choices=numeric_cols), gr.Dropdown(choices=numeric_cols) | |
def create_scatter_plot(csv_file, x_col, y_col): | |
if csv_file is None or x_col is None or y_col is None: | |
return None, None | |
df = pd.read_csv(csv_file.name) | |
# Gradio ScatterPlot için uygun formatta veri hazırla | |
return ( | |
gr.ScatterPlot( | |
value=df, | |
x=x_col, | |
y=y_col, | |
tooltip=df.columns.tolist(), | |
title="Interactive Scatter Plot", | |
color_legend_title="Values", | |
interactive=True, | |
brush_radius=5 | |
), | |
df | |
) | |
def get_selected_points(evt: gr.SelectData, df): | |
if evt is None or df is None: | |
return pd.DataFrame() | |
# Seçilen indeksleri kullanarak verileri filtrele | |
selected_indices = [i["index"] for i in evt.selected] | |
return df.iloc[selected_indices] | |
with gr.Blocks() as app: | |
gr.Markdown("## 🔷 Polygon ile Veri Seçimi") | |
with gr.Row(): | |
csv_upload = gr.UploadButton(label="CSV Yükle", file_types=[".csv"]) | |
x_dropdown = gr.Dropdown(label="X Ekseni") | |
y_dropdown = gr.Dropdown(label="Y Ekseni") | |
with gr.Row(): | |
scatter_plot = gr.ScatterPlot(interactive=True, brush_radius=5) | |
selected_table = gr.DataFrame(label="Seçilen Veriler") | |
df_state = gr.State() | |
csv_upload.upload( | |
fn=update_columns, | |
inputs=csv_upload, | |
outputs=[x_dropdown, y_dropdown] | |
) | |
x_dropdown.change( | |
fn=create_scatter_plot, | |
inputs=[csv_upload, x_dropdown, y_dropdown], | |
outputs=[scatter_plot, df_state] | |
) | |
y_dropdown.change( | |
fn=create_scatter_plot, | |
inputs=[csv_upload, x_dropdown, y_dropdown], | |
outputs=[scatter_plot, df_state] | |
) | |
scatter_plot.select( | |
fn=get_selected_points, | |
inputs=df_state, | |
outputs=selected_table | |
) | |
if __name__ == "__main__": | |
app.launch() |