import requests
import pandas as pd
import matplotlib.pyplot as plt
API_KEY = 'DH1HKPF1RYUDJICP'
top_10_companies = ['AAPL', 'MSFT', 'GOOGL', 'AMZN', 'BRK-B', 'JPM', 'JNJ', 'XOM', 'CVX', 'UNH']
def safe_float(value):
    try:
        return float(value)
    except (TypeError, ValueError):
        return 0.0
def get_company_data(symbol, api_key):
    url = f"https://www.alphavantage.co/query?function=OVERVIEW&symbol={symbol}&apikey={api_key}"
    response = requests.get(url)
    return response.json()
data_list = []
for company in top_10_companies:
    data = get_company_data(company, API_KEY)
    data_list.append({
        'Symbol': company,
        'MarketCapitalization': safe_float(data.get('MarketCapitalization')),
        'QuarterlyEarningsGrowthYOY': safe_float(data.get('QuarterlyEarningsGrowthYOY')),
        'QuarterlyRevenueGrowthYOY': safe_float(data.get('QuarterlyRevenueGrowthYOY')),
        'EBITDA': safe_float(data.get('EBITDA')),
        'PERatio': safe_float(data.get('PERatio')),
        'EPS': safe_float(data.get('EPS')),
        'RevenuePerShareTTM': safe_float(data.get('RevenuePerShareTTM')),
        'ProfitMargin': safe_float(data.get('ProfitMargin')),
        'OperatingMarginTTM': safe_float(data.get('OperatingMarginTTM')),
        'ReturnOnAssetsTTM': safe_float(data.get('ReturnOnAssetsTTM')),
        'ReturnOnEquityTTM': safe_float(data.get('ReturnOnEquityTTM')),
        'RevenueTTM': safe_float(data.get('RevenueTTM')),
        'GrossProfitTTM': safe_float(data.get('GrossProfitTTM'))
    })
df = pd.DataFrame(data_list)
metrics = ['MarketCapitalization', 'QuarterlyEarningsGrowthYOY', 'QuarterlyRevenueGrowthYOY', 
           'EBITDA', 'PERatio', 'EPS', 'RevenuePerShareTTM', 'ProfitMargin', 
           'OperatingMarginTTM', 'ReturnOnAssetsTTM', 'ReturnOnEquityTTM', 
           'RevenueTTM', 'GrossProfitTTM']
means = df[metrics].mean()
stds = df[metrics].std()
plt.figure(figsize=(10,6))
plt.bar(df['Symbol'], df['MarketCapitalization'], color='blue')
plt.title('Market Capitalization of Top 10 Companies')
plt.xlabel('Company')
plt.ylabel('Market Capitalization (in trillions)')
plt.xticks(rotation=45)
plt.show()
plt.figure(figsize=(10,6))
plt.bar(df['Symbol'], df['ProfitMargin'], color='green')
plt.title('Profit Margin of Top 10 Companies')
plt.xlabel('Company')
plt.ylabel('Profit Margin (%)')
plt.xticks(rotation=45)
plt.show()
plt.figure(figsize=(10,6))
plt.bar(df['Symbol'], df['QuarterlyEarningsGrowthYOY'], color='orange')
plt.title('Quarterly Earnings Growth YOY of Top 10 Companies')
plt.xlabel('Company')
plt.ylabel('Quarterly Earnings Growth YOY (%)')
plt.xticks(rotation=45)
plt.show()
summary_df = pd.DataFrame({
    'Mean': means,
    'Standard Deviation': stds
})
print("\nSummary Statistics:")
print(summary_df)
summary_metrics = ['PERatio', 'ReturnOnEquityTTM']
for metric in summary_metrics:
    plt.figure(figsize=(10,6))
    plt.bar(df['Symbol'], df[metric], color='purple')
    plt.title(f'{metric} of Top 10 Companies')
    plt.xlabel('Company')
    plt.ylabel(metric)
    plt.xticks(rotation=45)
    plt.show()
Run to view results