目標網站:https://www.twse.com.tw/zh/
進入網站後點選交易資訊/個股年成交資訊
以下是我查詢股票代號2330台積電的盤後資訊。
跟昨天一樣點選CSV下載
我們要做的是設計股票台積電1994-2021每年最高價、最低價、收盤平均價的走勢圖:
首先import我們需要的套件:
import csv
import matplotlib.pyplot as plt
from datetime import datetime
接下來是要帶入你的csv檔案,可以對著你的檔案點選右鍵/複製路徑
接下來設定、儲存和移除我們不需要的值
fn = '/Users/sunwei/Desktop/iThone/Day22/FMNPTK_2330.csv'
with open(fn) as csvFile:
csvReader = csv.reader(csvFile)
listCSV = list(csvReader)
csvData = listCSV[2:-5]
years, highs, lows, prices = [], [], [], []
for row in csvData:
try:
year = int(row[0]) + 1911
high = float(row[4])
low = float(row[6])
price = float(row[8])
except Exception:
print('有缺值')
else:
highs.append(high)
lows.append(low)
prices.append(price)
years.append(year)
其中,我們發現這個檔案中的前兩行和後五行是我們不需要的,因此轉換成串列並切片刪除
listCSV = list(csvReader)
csvData = listCSV[2:-5]
接下來是繪圖的設定,每個人可以依據需求使用不同的值。
fig = plt.figure(dpi = 80, figsize = (12, 8))
plt.plot(years, highs, '-*', label = 'high')
plt.plot(years, lows, '-o', label = 'low')
plt.plot(years, prices, '-^', label = 'price')
plt.legend(loc = 'best')
fig.autofmt_xdate()
plt.title('Taiwan Semiconductor Manufacturing Company', fontsize=24)
plt.xlabel("", fontsize=14)
plt.ylabel("price", fontsize=14)
plt.tick_params(axis='both', labelsize=12, color='red')
plt.show()
output:
參考書籍:
洪錦魁 -- Python網路爬蟲:大數據擷取、清洗、儲存與分析:王者歸來 2019
林俊瑋, 林修博 --- Python:網路爬蟲與資料分析入門實戰 2018