File size: 1,616 Bytes
825e978 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
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)
# Graph 1: Line plot of Open vs Close
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()
# Graph 2: Scatter plot of RSI vs MACD
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()
# Graph 3: Bar chart of average Volume (chunked)
volume_avg = df['Volume'].head(10) # Bar chart for first 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()
# Graph 4: Histogram of Target values
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()
|