Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import numpy as np | |
from sklearn.linear_model import LinearRegression | |
import matplotlib.pyplot as plt | |
# Remove the Streamlit default layout | |
st.set_page_config(layout="wide") | |
# Load the stock data from the CSV files | |
data1 = pd.read_csv('Google_test_data.csv') | |
data2 = pd.read_csv('tesla.csv') | |
# Combine the datasets into a dictionary | |
datasets = {'Google': data1, 'Tesla': data2} | |
# Get the user's dataset selection | |
selected_dataset = st.selectbox('Select Stock', list(datasets.keys())) | |
# Retrieve the selected dataset | |
selected_data = datasets[selected_dataset] | |
# Prepare the data for prediction | |
X = np.arange(len(selected_data)).reshape(-1, 1) | |
y = selected_data['Close'] | |
# Train the linear regression model | |
model = LinearRegression() | |
model.fit(X, y) | |
# Define a flag for displaying the graphs | |
display_graphs = False | |
# Create a submit button | |
if st.button('Submit'): | |
display_graphs = True | |
# Display the graphs if the submit button is clicked | |
if display_graphs: | |
# Create subplots | |
fig, axes = plt.subplots(3, 1, figsize=(10, 15)) | |
# Plot 1: Actual and Predicted Stock Prices | |
axes[0].plot(selected_data['Date'], y, label='Actual') | |
axes[0].plot(selected_data['Date'], model.predict(X), label='Predicted') | |
axes[0].set_xlabel('Date') | |
axes[0].set_ylabel('Stock Price') | |
axes[0].set_title(f'{selected_dataset} Stock Price Prediction') | |
axes[0].legend() | |
# Plot 2: Volume of Trades | |
axes[1].plot(selected_data['Date'], selected_data['Volume']) | |
axes[1].set_xlabel('Date') | |
axes[1].set_ylabel('Volume') | |
axes[1].set_title(f'{selected_dataset} Volume of Trades') | |
# Plot 3: Daily Percentage Change in Stock Prices | |
daily_returns = selected_data['Close'].pct_change() * 100 | |
axes[2].plot(selected_data['Date'], daily_returns) | |
axes[2].set_xlabel('Date') | |
axes[2].set_ylabel('Percentage Change') | |
axes[2].set_title(f'{selected_dataset} Daily Percentage Change in Stock Prices') | |
# Display the graphs in Streamlit | |
st.pyplot(fig) | |