1105_4.2 Area Chart 區域圖

1105_4.2 Area Chart 區域圖
Photo by Jakub Żerdzicki / Unsplash

這兩張圖都是區域圖(Area Chart),它們展示了選定的半導體公司從 1996 年至 2024 年 的市值變化(累積)情況。主要區別在於:

  1. 第一張圖包含 NVIDIA)顯示了包括 NVIDIA(NVDA)在內的前五大半導體公司的市值變化。
  2. 第二張圖不包含 NVIDIA)則排除了 NVIDIA,讓我們能更清楚地看到其他公司的市值變化。

第一張圖:Market Cap Change Over Time (With NVDA)

  • Y 軸單位:Billion USD(十億美元)。
  • X 軸:年份,從 1996 年到 2024 年。
  • 顯示的公司
    • NVDA(NVIDIA):藍色區域,顯示其市值變化。從圖中可以看到,NVIDIA 的市值自 2020 年左右開始大幅增長,並且到 2024 年達到了超過 3 兆美元的規模。
    • TSMC(台積電):橙色區域,市值也有顯著增長,尤其是在 2020 年之後。
    • AVGO(Broadcom)ASMLSEC(Samsung Electronics):這些公司的市值雖然也有所增長,但相較於 NVIDIA 和 TSMC,增長幅度顯得較為平緩。

關鍵觀察:

  • NVIDIA 的市值自 2020 年大幅增長,遠超其他公司,顯示其在半導體行業中占據了非常大的市場份額。
  • 台積電(TSMC) 和其他公司的市值也在穩步增長,但相比 NVIDIA 的巨幅增長,變得不太明顯。

第二張圖:Market Cap Change Over Time (Without NVDA)

  • 這張圖去除了 NVIDIA(NVDA),以便更清楚地查看其他四家公司的市值變化。
  • Y 軸單位:同樣為 Billion USD(十億美元),但最大值只有 800 Billion(8000 億美元),遠小於第一張圖。
  • 顯示的公司
    • TSMC(台積電):顯示其市值自 2020 年後迅速增長,並在 2024 年達到了超過 8000 億美元。
    • AVGO(Broadcom)ASMLSEC(Samsung Electronics):它們的市值也有增長,但都沒有台積電來得顯著。

關鍵觀察:

  • 去除 NVIDIA 後,其他公司的市值變化顯得更加清晰,尤其是 台積電Broadcom,顯示出其在半導體行業的增長。
  • 台積電 市值的增長最為顯著,在 2020 年後快速上升,而其他公司如 ASMLSamsung 則穩步增長,但增幅相對平緩。

總結:

  • 第一張圖 強調了 NVIDIA 在市場上的驚人增長,它在過去幾年大幅超越了其他公司,特別是在 2020 年之後,成為了市值領頭羊。
  • 第二張圖 去除了 NVIDIA,讓我們能更清楚地看到其他公司的表現,尤其是 台積電,在半導體市場中表現出了穩定且快速的增長。

這兩張圖對比,能夠更清楚地顯示出 NVIDIA 在市場上的主導地位,以及其市值增長是多麼顯著,同時也展示了其他半導體巨頭的穩步發展。

Source Code

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick

# 讀取 CSV 文件
df = pd.read_csv('/content/drive/My Drive/Semicon_Analysis/semiconductor_merged_1017.csv')

# 確保日期格式正確
df['Date'] = pd.to_datetime(df['Date'])

# 計算市值變動與年初市值的基準差異
df['Year'] = df['Date'].dt.year

# 提取年初市值
year_start_market_cap = df[df['Date'].dt.month == 1].groupby(['Ticker', 'Year']).first().reset_index()[['Ticker', 'Year', 'Market Cap (USD)']]
year_start_market_cap.rename(columns={'Market Cap (USD)': 'Year Start Market Cap (USD)'}, inplace=True)

# 合併年初市值
df = df.merge(year_start_market_cap, on=['Ticker', 'Year'], how='left')

# 計算市值偏差 (當前市值 - 年初市值)
df['Market Cap Deviation'] = df['Market Cap (USD)'] - df['Year Start Market Cap (USD)']

# 選擇前五大公司進行分析
top_companies = df['company_abbr'].unique()[:5]  # 選擇前五家公司
filtered_df = df[df['company_abbr'].isin(top_companies)]

# ----------------- 圖 1:包含 NVDA 的區域圖 -----------------
plt.figure(figsize=(12, 6))

for company in top_companies:
    company_df = filtered_df[filtered_df['company_abbr'] == company]
    plt.fill_between(company_df['Date'], company_df['Market Cap (USD)'], label=company, alpha=0.5)

# 設定圖表標題與軸標籤
plt.title('Market Cap Change Over Time (With NVDA)')
plt.xlabel('Date')
plt.ylabel('Market Cap (Billion USD)')

# 格式化 Y 軸顯示 Billion
plt.gca().yaxis.set_major_formatter(mtick.FuncFormatter(lambda x, _: f'{x*1e-9:.1f}B'))

# 顯示圖例
plt.legend(title='Company')

# 顯示圖表
plt.tight_layout()
plt.show()

# ----------------- 圖 2:不包含 NVDA 的區域圖 -----------------
filtered_df_no_nvda = filtered_df[filtered_df['company_abbr'] != 'NVDA']

plt.figure(figsize=(12, 6))

for company in filtered_df_no_nvda['company_abbr'].unique():
    company_df = filtered_df_no_nvda[filtered_df_no_nvda['company_abbr'] == company]
    plt.fill_between(company_df['Date'], company_df['Market Cap (USD)'], label=company, alpha=0.5)

# 設定圖表標題與軸標籤
plt.title('Market Cap Change Over Time (Without NVDA)')
plt.xlabel('Date')
plt.ylabel('Market Cap (Billion USD)')

# 格式化 Y 軸顯示 Billion
plt.gca().yaxis.set_major_formatter(mtick.FuncFormatter(lambda x, _: f'{x*1e-9:.1f}B'))

# 顯示圖例
plt.legend(title='Company')

# 顯示圖表
plt.tight_layout()
plt.show()