Spaces:
Runtime error
Runtime error
import gradio as gr | |
import matplotlib.pyplot as plt | |
import numpy as np | |
import io | |
from PIL import Image | |
def execute_code_and_get_plot(code): | |
# Clear any existing plots | |
plt.clf() | |
# Create a BytesIO object to store the plot | |
buf = io.BytesIO() | |
try: | |
# Execute the code | |
exec(code, globals()) | |
# Save the current plot to the BytesIO object | |
plt.savefig(buf, format='png') | |
buf.seek(0) | |
# Convert to PIL Image | |
image = Image.open(buf) | |
return image, "Code executed successfully!" | |
except Exception as e: | |
return None, f"Error: {str(e)}" | |
# Example code | |
example_code = """ | |
import matplotlib.pyplot as plt | |
import numpy as np | |
x = np.linspace(0, 10, 100) | |
y = np.sin(x) | |
plt.figure(figsize=(8, 6)) | |
plt.plot(x, y) | |
plt.title('Sine Wave') | |
plt.xlabel('x') | |
plt.ylabel('sin(x)') | |
plt.grid(True) | |
""" | |
# Define the Gradio interface | |
interface = gr.Interface( | |
fn=execute_code_and_get_plot, | |
inputs=[ | |
gr.Code( | |
label="Python Code", | |
language="python", | |
lines=20, | |
) | |
], | |
outputs=[ | |
gr.Image(type="pil", label="Generated Plot"), | |
gr.Textbox(label="Output Message") | |
], | |
title="Python Code to Matplotlib Plot Generator", | |
description="Enter Python code that generates a matplotlib plot. The plot will be displayed as an image.", | |
examples=[[example_code]], | |
) | |
if __name__ == "__main__": | |
interface.launch() |