iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
AI & Data

從網路爬蟲到資料洞察的應用系列 第 16

畫月平均收盤價折線圖

  • 分享至 

  • xImage
  •  

在股票分析中,除了每天的收盤價,我們常常也會想知道「整個月的平均股價走勢」。這樣可以平滑掉每日的波動,讓趨勢更清楚。今天的目標,就是透過 折線圖,把台積電 (2330) 的「月平均收盤價」畫出來,並搭配成交量,做成雙子圖。

為什麼要看「月平均收盤價」

每天的收盤價會受到短期市場情緒影響,數字起伏大。透過計算「月平均收盤價」:

  • 可以更清楚看到長期趨勢
  • 幫助投資人判斷整體市場走向,而不是被單日漲跌誤導
  • 搭配「月總成交量」,能觀察價格變動是否有交易量支持

準備資料

假設我們已經有一個 DataFrame,裡面包含以下欄位:

  • Date:日期
  • Close:收盤價
  • Volume:成交量

接著,我們把每日資料整理成「每月」資料。這裡用 groupby 搭配 Grouper:

df['Date'] = pd.to_datetime(df['Date'])
df = df.sort_values('Date')

monthly = df.groupby(pd.Grouper(key='Date', freq='M')).agg(
    月平均收盤價 = ('Close', 'mean'),
    月總成交量   = ('Volume', 'sum')
).reset_index()

# 建立月份起始日,方便畫圖
monthly['MonthStart'] = monthly['Date'].dt.to_period('M').dt.to_timestamp()

plot_monthly_stats = monthly

這樣我們就得到一個新的 plot_monthly_stats,裡面有:
MonthStart:代表月份的日期(該月第一天)
月平均收盤價:當月所有收盤價的平均
月總成交量:當月的成交量加總

繪製月平均收盤價折線圖

接下來進入今天的重點:繪製折線圖,我們使用 matplotlib,來畫分月平均收盤價折線圖。

程式碼 (上子圖折線部分)

ax1.plot(plot_monthly_stats['MonthStart'],
         plot_monthly_stats['月平均收盤價'],
         marker='o', linestyle='-', color='blue')

ax1.set_title('台積電 (2330) 月平均股價與月總成交量趨勢', fontsize=16)
ax1.set_ylabel('月平均收盤價', fontsize=12)
ax1.grid(True)

說明

  • plot_monthly_stats['MonthStart']:X 軸是月份
  • plot_monthly_stats['月平均收盤價']:Y 軸是月平均收盤價
  • marker='o':每個月用圓點標出,避免只看到光滑的線
  • linestyle='-':折線連接每個月份
  • color='blue':線條顏色
  • set_title:圖表名稱,方便讀者知道內容
  • set_ylabel:Y 軸標籤,讓數字含意更清楚
  • grid(True):加上格線,方便對齊數字

完整繪圖

fig, (ax1) = plt.subplots(
    2, 1,
    figsize=(12, 8),
    sharex=True,
    gridspec_kw={'height_ratios': [2, 1]}
)

# 月平均收盤價
ax1.plot(plot_monthly_stats['MonthStart'],
         plot_monthly_stats['月平均收盤價'],
         marker='o', linestyle='-', color='blue')
ax1.set_title('台積電 (2330) 月平均股價與月總成交量趨勢', fontsize=16)
ax1.set_ylabel('月平均收盤價', fontsize=12)
ax1.grid(True)

plt.xticks(rotation=45)  # X 軸標籤傾斜,避免重疊
plt.tight_layout()
plt.show()

這樣就能看到「價格趨勢」,是一個常見的財經圖表格式。

總結

  • 轉換 Date → 分組聚合成每月平均與總和
  • 準備 MonthStart 作為 X 軸
  • 用 ax1.plot() 畫出月平均收盤價折線圖

到這裡,我們已經能畫出完整的「月平均股價趨勢圖」,未來還可以加上移動平均線、標註最高/最低點等功能,讓圖表更有分析價值。
那今天就先這樣。
/images/emoticon/emoticon29.gif


上一篇
計算月平均價、月成交量
系列文
從網路爬蟲到資料洞察的應用16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言