TroglodyteDerivations's picture
Modified plot_vector_add
a679715 verified
raw
history blame contribute delete
No virus
1.7 kB
import gradio as gr
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
from io import BytesIO
class Vector_Addition:
def __init__(self, v1, v2):
self.v1 = np.array([v1, 1])
self.v2 = np.array([v2, 3])
def problem_add(self):
problem_add_prompt = print(f'What does vector 1: {self.v1} + vector 2: {self.v2} equal?')
return problem_add_prompt
def vector_add(self):
v3 = self.v1 + self.v2
v3_text = f'The new vector 3 produced = vector 1: {self.v1} + vector 2: {self.v2} = {v3}'
return v3_text
def plot_vector_add(self):
plt.figure(figsize=(10,5))
plt.plot([0, self.v1[0]], [0, self.v1[1]], 'b', label='v1')
plt.plot([0, self.v2[0]]+self.v1[0], [0, self.v2[1]]+self.v1[1], 'r', label='v2')
plt.plot([0, self.v1[0]+ self.v2[0]], [0, self.v1[1]+ self.v2[1]], 'k', label='v1+v2')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Vector Addition')
plt.grid(True)
plt.legend()
buf = BytesIO()
plt.savefig(buf, format='png')
buf.seek(0)
image = Image.open(buf)
plt.close()
return image
def vector_addition(v1, v2):
vector_addition = Vector_Addition(v1, v2)
v3 = vector_addition.vector_add()
plot = vector_addition.plot_vector_add()
return v3, plot
iface = gr.Interface(vector_addition,
[gr.components.Number(label="Vector 1"),
gr.components.Number(label="Vector 2")],
[gr.components.Textbox(label="Vector 3"),
gr.components.Image(label="Vector Addition Plot")])
iface.launch()