📈【Google Colab Python系列】以Goodinfo為例,將資料視覺化吧!

更新於 發佈於 閱讀時間約 5 分鐘
圖片來源

圖片來源

上一篇我們有介紹如何爬取Goodinfo的資訊並統計分析,還沒閱讀的朋友建議先行閱讀,再進入此篇章會比較容易上手唷,傳送門如下:

🚪【Google Colab系列】以Goodinfo!為例,統計一段時間內的最高、最低殖利率

為什麼要做資料視覺化?

相信圖文甚至影音箱對於文字來說更為吸引我們進行知識的汲取,一張好的圖表讓我們一眼就能看出資料的趨勢、分布,提升整體效率,因此當資料、統計都準備好之後,下一步就是以圖表來進行分析並決策。

那這次的主題會使用到的套件為「Matplotlib提供了靜態、動態與互動式圖表,是python語言中資料視覺化的強大利器。

我們應該選用哪一種圖表呢?

不同的情境下選用不同的圖表,就像戰場上根據戰況選用不同的武器甚至策略,因此並沒有一個標準答案,不論是時序、量化...都有其擅長與短處,看看這篇今周刊的文章就有提到「不同圖表不同使用時機,我的報表適合什麼圖形?你用對了嗎?」。

而我們的情境是要分析目前股價屬於偏貴還是便宜,因此會有最高、最低以及目前錨定位置,那以這樣的情境我們可以選用了箱型圖來做表述:

圖片來源

圖片來源

因為我們並沒有時序上的需求,因此也不適用於折線圖、長條圖這種常見的圖表,反而是箱型圖可以表述目前的價格偏高還是低。

開始實作的旅程

上一篇」我們已經統計出最高/最低殖利率了,這次我們進行延伸,以最新成交價搭配圖表來評估目前股價的位階,因此會抓取最新成交價、計算目前殖利率、繪製圖表這幾個步驟,以下將逐步說明。

抓取最新成交價

我們一樣使用dom分析的工具來抓取指定表格,如何抓? 請參閱「🚪【Google Colab系列】以Goodinfo!為例,統計一段時間內的最高、最低殖利率」,以下是主要抓取的部分:

# 這一段是「成交價」區塊
price_data = bs.find(class_ = 'b1 p4_2 r10')

接著我們試著取得成交價,並進行轉型為float以利後續計算。

import pandas

dfs = pandas.read_html(price_data.prettify())

node = dfs[0]

# 僅留下第一列
node.columns = node.columns.get_level_values(1)

# 印出Columns輔助以下抓取重要資訊
# node.columns

# 取得第一列的成交價
x = node['成交價'].iloc[0]
price = float(x)

計算目前殖利率

請參閱「🚪【Google Colab系列】以Goodinfo!為例,統計一段時間內的最高、最低殖利率」,並搭配上述最新成交價的資訊進行公式的替換即可。

繪製圖表

重頭戲來了,具備資料之後,下一步就是將這些資料繪製成簡單易懂的圖表,以利進行分析,而這邊會使用到的是Python語言中較為知名的套件「matplotlib」,提供種類豐富的圖表類型,而這次我們採用範例的是箱型圖,而箱型圖繪製的API如下:

import matplotlib.pyplot as plt

plt.boxplot(<...資料集>, <x軸, ...更多配置>)

繪製目前股價位階圖

  • 以N年平均最高股價與最低股價作為上下限。
  • 對照目前股價位階。
  • 股價越低代表價格越迷人。
import matplotlib.pyplot as plt

# lowest 近N年平均最低價
# price 目前股價
# highest 近N年平均最高價
data = [lowest, price, highest]

# 標籤
labels = ['price']

plt.boxplot(data, labels=labels)
plt.show()
圖片來源

圖片來源

繪製目前殖利率位階圖

  • 以N年平均最高與最低殖利率作為上下限。
  • 對照目前的殖利率位階。
  • 殖利率越高代表目前CP值越高。
import matplotlib.pyplot as plt

# lYield 近N年平均最低殖利率
# cYield 目前殖利率
# hYield 近N年平均最高殖利率
data = [lYield, cYield, hYield]

labels = ['yield']

plt.boxplot(data, labels=labels)
plt.show()o
圖片來源

圖片來源

相信具有圖表的輔助更能夠快速的判斷及決策,而Matplotlib這套工具就能夠很好的薑我們的資料繪製成圖,非常便利。

結語

藉由上述的圖表呈現可以得知目前股價處於近N年的哪個位階,以價格來說有些偏高,以殖利率來說有些偏低,因此會暫時觀望,等待時機再行購入,當然這些都是過去資料並不代表未來,過去的數據不論怎麼推估都並非產生絕對的未來,我們僅能掌握更多數據來提升對未來的決策判斷。

不妨親自動動手來計算這些數據,相信會更加印象深刻,以後遇到各種資料我們都能夠較為準確的判斷,而不是僅憑感覺盲目的猜測,造成不精準的決策導致損失。

今天的範例都在這裡「📦 goodinfo_yield.ipynb」歡迎自行取用。

如何使用請參閱「【Google Colab系列】台股分析預備式: Colab平台與Python如何擦出火花?」。

------------------------------------------------------------------------------------------------

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 - 為什麼要加入?

歡迎加入一起練習寫作,賺取知識,累積財富!


avatar-img
119會員
268內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
JavaScript 中的 ESM(ES Modules)和 CJS(CommonJS)是用於模塊化開發的兩種不同的模組系統。 關於CJS CJS 是 CommonJS 的模塊系統,最初是為了在伺服器端使用的 Node.js 開發而設計的,但也被廣泛用於前端開發。CJS 使用 require 函數來
上一篇我們有介紹Google Colab Python的爬蟲基礎概念與技巧,還沒閱讀的朋友可以先進行閱讀,並建立基礎概念之後再接著進行實戰演練會比較容易上手唷! 這裡就附上連結「【Google Colab系列】該如何設計自己的爬蟲來抓取Html資料?」供各位參考囉! 這一篇章會以捕魚的四大步驟進行比
上一篇我們已經介紹過Google Colab的基本用法,建議可以先行閱讀「【Google Colab系列】台股分析預備式: Colab平台與Python如何擦出火花?」,進行基本概念與環境的建置再進行下一步會比較容易進行學習。 雖然網路上已經提供非常多的股市資訊,但各個網站可能都零零散散,難免我們得
這次的主題除了結合平時興趣之一的金融理財之外,亦將本業的軟體程式概念進行結合,透過跨領域的想法激盪出屬於自己的交易策略,過程中也將學習歷程進行筆記,提供給路途中的朋友一個方向,讓我們一起動動手打造出自己的分析程式吧! 多年的軟體開發經驗,過程中也踩過不少雷,因此常常在學習道路上都期望有人能夠將技術經
一般來說我們會這樣定義Struct來接收前端請求的POST Body 那假設POST Body是這樣 此時我們利用gin的BindJSON來Unmarshal 結果印出來會是 上述結果的name被我們過濾掉是正常,但enabled就我們的需求上來看,不應該被過濾掉才對。 所以我們應該將bool、in
由於Go語言本身沒有提供Enum的功能, 故我們可以使用package及type的技巧來達到類似的功能,假設今天要定義季節的enum型別, 包含了「春、夏、秋、冬」四種值的時候,可以怎麼做呢? 首先我們可以用package來框住season的範圍: 然而在season.go可以定義一個字串的類型 最
JavaScript 中的 ESM(ES Modules)和 CJS(CommonJS)是用於模塊化開發的兩種不同的模組系統。 關於CJS CJS 是 CommonJS 的模塊系統,最初是為了在伺服器端使用的 Node.js 開發而設計的,但也被廣泛用於前端開發。CJS 使用 require 函數來
上一篇我們有介紹Google Colab Python的爬蟲基礎概念與技巧,還沒閱讀的朋友可以先進行閱讀,並建立基礎概念之後再接著進行實戰演練會比較容易上手唷! 這裡就附上連結「【Google Colab系列】該如何設計自己的爬蟲來抓取Html資料?」供各位參考囉! 這一篇章會以捕魚的四大步驟進行比
上一篇我們已經介紹過Google Colab的基本用法,建議可以先行閱讀「【Google Colab系列】台股分析預備式: Colab平台與Python如何擦出火花?」,進行基本概念與環境的建置再進行下一步會比較容易進行學習。 雖然網路上已經提供非常多的股市資訊,但各個網站可能都零零散散,難免我們得
這次的主題除了結合平時興趣之一的金融理財之外,亦將本業的軟體程式概念進行結合,透過跨領域的想法激盪出屬於自己的交易策略,過程中也將學習歷程進行筆記,提供給路途中的朋友一個方向,讓我們一起動動手打造出自己的分析程式吧! 多年的軟體開發經驗,過程中也踩過不少雷,因此常常在學習道路上都期望有人能夠將技術經
一般來說我們會這樣定義Struct來接收前端請求的POST Body 那假設POST Body是這樣 此時我們利用gin的BindJSON來Unmarshal 結果印出來會是 上述結果的name被我們過濾掉是正常,但enabled就我們的需求上來看,不應該被過濾掉才對。 所以我們應該將bool、in
由於Go語言本身沒有提供Enum的功能, 故我們可以使用package及type的技巧來達到類似的功能,假設今天要定義季節的enum型別, 包含了「春、夏、秋、冬」四種值的時候,可以怎麼做呢? 首先我們可以用package來框住season的範圍: 然而在season.go可以定義一個字串的類型 最
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在此篇中,我們來拿實務的例子作實戰練習,我們會討論如何在Google Colab的環境下,撈取所有台美股的股票代碼,並獲取相關細節,最後將獲取的資訊存取於SQLite資料庫中。
Thumbnail
本文深入解析成交量與均線的結合應用,包括量價配合原則、均線突破與成交量的關係、成交量萎縮的意義、均線糾結時的成交量變化、高低點的成交量表現,以及均線支撐與成交量的關係。透過這些技巧,投資者可以更全面地掌握市場脈動,提高投資決策的準確性。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本研究使用了盤中逐筆成交資料(Tick-by-tick Data)來進行股票價格的預測,並討論了馬可夫鏈模型和擴散核模型在這方面的應用。研究結果表明,大多數股票的未來三秒價格可以在少於22個狀態中找到,顯示了交易價格的低不確定性。此外,研究還發現波動性更大和價格更高的股票更難以準確預測。
Thumbnail
上篇我們學到價格走勢的高低點可以當作壓力與支撐,但哪個位置的壓力與支撐比較重要? 俗話說:新手看價、老手看量。這篇文章討論了成交量對於評估股市的重要性,並提出了觀察成交量變化的新規則。
Thumbnail
(感謝方言文化贈書) 我在剛入市的時候研究過好一陣子的技術分析,經過這幾年在市場的淬鍊,漸漸發現技術分析是一個分析「結果」而非預測的方法,但歷史總會不斷的重複,藉由研究歷史,可以了解會漲的股票的軌跡 技術分析是用來觀察記錄價格走勢
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
透過分析臺灣好行的公開資料,分享如何用Python繪製折線圖
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
股票的真相是什麼? 何為投資的底層邏輯? 資本市場的秘密為何? 看透本質,讓我們一起找到屬於自己的最佳策略!
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在此篇中,我們來拿實務的例子作實戰練習,我們會討論如何在Google Colab的環境下,撈取所有台美股的股票代碼,並獲取相關細節,最後將獲取的資訊存取於SQLite資料庫中。
Thumbnail
本文深入解析成交量與均線的結合應用,包括量價配合原則、均線突破與成交量的關係、成交量萎縮的意義、均線糾結時的成交量變化、高低點的成交量表現,以及均線支撐與成交量的關係。透過這些技巧,投資者可以更全面地掌握市場脈動,提高投資決策的準確性。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本研究使用了盤中逐筆成交資料(Tick-by-tick Data)來進行股票價格的預測,並討論了馬可夫鏈模型和擴散核模型在這方面的應用。研究結果表明,大多數股票的未來三秒價格可以在少於22個狀態中找到,顯示了交易價格的低不確定性。此外,研究還發現波動性更大和價格更高的股票更難以準確預測。
Thumbnail
上篇我們學到價格走勢的高低點可以當作壓力與支撐,但哪個位置的壓力與支撐比較重要? 俗話說:新手看價、老手看量。這篇文章討論了成交量對於評估股市的重要性,並提出了觀察成交量變化的新規則。
Thumbnail
(感謝方言文化贈書) 我在剛入市的時候研究過好一陣子的技術分析,經過這幾年在市場的淬鍊,漸漸發現技術分析是一個分析「結果」而非預測的方法,但歷史總會不斷的重複,藉由研究歷史,可以了解會漲的股票的軌跡 技術分析是用來觀察記錄價格走勢
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
透過分析臺灣好行的公開資料,分享如何用Python繪製折線圖
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
股票的真相是什麼? 何為投資的底層邏輯? 資本市場的秘密為何? 看透本質,讓我們一起找到屬於自己的最佳策略!