昨天,我們已經用 Python 畫過單一股票的趨勢圖。
今天我們升級一下,來比較兩家在半導體與 AI 產業中舉足輕重的公司:
台積電ADR(TSM) vs 輝達(NVDA)。
為什麼不用 2330.TW?
如果直接比較 2330.TW(台灣上市的台積電)和 NVDA,會有兩個問題:
解法很簡單:用 TSM(台積電的美國存託憑證,USD 計價)。
TSM 代表 5 股台積電普通股,價格已內建匯率轉換,非常適合與其他美股直接比較。
Python 程式碼
import yfinance as yf
import matplotlib.pyplot as plt
# 設定字體(讓中文能正常顯示)
plt.rcParams['font.family'] = 'Heiti TC'
# 要比較的兩檔股票:TSM(台積電ADR)、NVDA(輝達)
stocks = ['TSM', 'NVDA']
# 下載股價資料(已調整收盤價,USD 計價)
data = yf.download(stocks, start="2024-01-01", end="2025-01-01",
auto_adjust=True, group_by='column', progress=False)
# 取出收盤價
close = data['Close']
# 畫圖
plt.figure(figsize=(10,6))
for s in close.columns:
plt.plot(close.index, close[s], label=s)
plt.title("TSM vs NVDA 股價走勢比較(已調整收盤價,USD)")
plt.xlabel("日期")
plt.ylabel("價格(USD)")
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()
預期圖表觀察
由於幣別已統一為 USD,圖上線條的高低差距更能反映兩家公司在市場估值的實際差異。
小延伸:百分比比較
想看誰的漲幅更高,可以用百分比指數化:
norm = close / close.iloc[0] * 100
norm.plot(figsize=(10,6), grid=True, title="TSM vs NVDA 漲幅比較(基準日=100)")
plt.ylabel("漲幅指數(=100 起算)")
plt.tight_layout()
plt.show()
這樣即使股價數字不同,也能直接比較漲跌比例。
結語