|
import pandas as pd |
|
import matplotlib.pyplot as plt |
|
import os |
|
|
|
def generate_graphs(csv_path, output_dir): |
|
df = pd.read_csv(csv_path) |
|
|
|
os.makedirs(output_dir, exist_ok=True) |
|
|
|
|
|
plt.figure(figsize=(6, 4)) |
|
plt.plot(df['Open'], label='Open', color='blue') |
|
plt.plot(df['Close'], label='Close', color='green') |
|
plt.title('Open vs Close Price') |
|
plt.xlabel('Index') |
|
plt.ylabel('Price') |
|
plt.legend() |
|
plt.tight_layout() |
|
plt.savefig(os.path.join(output_dir, 'open_close.png')) |
|
plt.close() |
|
|
|
|
|
plt.figure(figsize=(6, 4)) |
|
plt.scatter(df['RSI'], df['MACD'], alpha=0.7, color='purple') |
|
plt.title('RSI vs MACD') |
|
plt.xlabel('RSI') |
|
plt.ylabel('MACD') |
|
plt.tight_layout() |
|
plt.savefig(os.path.join(output_dir, 'rsi_macd.png')) |
|
plt.close() |
|
|
|
|
|
volume_avg = df['Volume'].head(10) |
|
plt.figure(figsize=(6, 4)) |
|
plt.bar(volume_avg.index, volume_avg.values, color='orange') |
|
plt.title('Average Volume (First 10)') |
|
plt.xlabel('Index') |
|
plt.ylabel('Volume') |
|
plt.tight_layout() |
|
plt.savefig(os.path.join(output_dir, 'volume_bar.png')) |
|
plt.close() |
|
|
|
|
|
plt.figure(figsize=(6, 4)) |
|
plt.hist(df['Target'], bins=10, color='red', alpha=0.8) |
|
plt.title('Distribution of Target') |
|
plt.xlabel('Target Value') |
|
plt.ylabel('Frequency') |
|
plt.tight_layout() |
|
plt.savefig(os.path.join(output_dir, 'target_hist.png')) |
|
plt.close() |
|
|