##### Import all the stuff import gradio as gr import plotly.graph_objects as go import pandas as pd import plotly.io as pio import base64 #### Get the files TrimmedDataFrame = pd.read_csv('TrimmedDataFrame.csv') #### Creating a method to compare 2 pals def compare2pals(x, y): x = TrimmedDataFrame[TrimmedDataFrame["name"] == x] y = TrimmedDataFrame[TrimmedDataFrame["name"] == y] trace0 = go.Scatterpolar( r = [x['hp'].values[0], x['melee attack'].values[0], x['remote attack'].values[0], x['defense'].values[0]], theta = ['hp','melee attack','remote attack','defense'], fill = 'toself', name = x.name.values[0] ) trace1 = go.Scatterpolar( r = [y['hp'].values[0], y['melee attack'].values[0], y['remote attack'].values[0], y['defense'].values[0]], theta = ['hp','melee attack','remote attack','defense'], fill = 'toself', name = y.name.values[0] ) trace2 = go.Scatterpolar( r=[x['kindling'].values[0], x['watering'].values[0], x['planting'].values[0], x['generate electricity'].values[0], x['handiwork'].values[0], x['gathering'].values[0], x['logging'].values[0], x['mining'].values[0], x['medicine'].values[0], x['cooling'].values[0], x['ranching'].values[0], x['transporting'].values[0]], theta=['kindling', 'watering', 'planting', 'generate electricity', 'handiwork', 'gathering', 'logging', 'mining', 'medicine', 'cooling', 'ranching', 'transporting'], fill='toself', name = x.name.values[0] ) trace3 = go.Scatterpolar( r=[y['kindling'].values[0], y['watering'].values[0], y['planting'].values[0], y['generate electricity'].values[0], y['handiwork'].values[0], y['gathering'].values[0], y['logging'].values[0], y['mining'].values[0], y['medicine'].values[0], y['cooling'].values[0], y['ranching'].values[0], y['transporting'].values[0]], theta=['kindling', 'watering', 'planting', 'generate electricity', 'handiwork', 'gathering', 'logging', 'mining', 'medicine', 'cooling', 'ranching', 'transporting'], fill='toself', name = y.name.values[0] ) combatdata = [trace0, trace1] basedata = [trace2, trace3] # Your combatlayout and baselayout definitions remain unchanged... combatlayout = go.Layout( polar = dict( radialaxis = dict( visible = True, range = [0, 160] ) ), showlegend = True, title = "{} vs {}".format(x.name.values[0],y.name.values[0]) ) baselayout = go.Layout( polar = dict( radialaxis = dict( visible = True, range = [0, 5] ) ), showlegend = True, title = "{} vs {}".format(x.name.values[0],y.name.values[0]) ) combatfig = go.Figure(data=[trace0, trace1], layout=combatlayout) basefig = go.Figure(data=[trace2, trace3], layout=baselayout) # Define file paths for the images combat_image_path = "combat_image.png" base_image_path = "base_image.png" # Save Plotly figures as images pio.write_image(combatfig, combat_image_path) pio.write_image(basefig, base_image_path) # Return the file paths return combat_image_path, base_image_path #### Make a gradio interface prompt # Gradio interface function that calls compare2pals and returns the image paths def gradio_compare2pals_interface(pal1, pal2): combat_image_path, base_image_path = compare2pals(pal1, pal2) return combat_image_path, base_image_path # Set up Gradio interface iface = gr.Interface( fn=gradio_compare2pals_interface, inputs=[gr.Textbox(label="First Pal Name"), gr.Textbox(label="Second Pal Name")], outputs=[gr.Image(label="Combat Stats"), gr.Image(label="Base Stats")], examples=[["Lamball", "Pyrin"]] # Make sure these are valid names in your DataFrame ) iface.launch()