python爬取基金股票最新資料,並用excel繪製樹狀圖
大家好,最近大A的白馬股們簡直跌媽不認,作為重倉了抱團白馬股基金的養雞少年,每日那是一個以淚洗面啊。
不過從金融界最近一個交易日的大盤雲圖來看,其實很多中小股還是紅色滴,綠的都是白馬股們。
以下截圖來自金融界網站-大盤雲圖:
那麼,今天我們試著用python爬取最近交易日的股票資料,並試著用excel簡單繪製上面這個樹狀圖。
- 爬取網易財經各板塊股票資料
- excel樹狀圖
- 簡單的樹狀圖
- 帶有增長率的樹狀圖
一、爬取網易財經各板塊股票資料
目標網址:
由於這個爬蟲部分比較簡單,這裡不做過多贅述,僅介紹一下思路並附上完整程式碼供大家參考。
爬蟲思路:
請求目標網站資料,解析出主要行業(新)的資料:行業板塊名稱及對應id(如金融,hy010000)
根據行業板塊對應id構造新的行業股票資料網頁
由於翻頁網址不變,代入引數,獲取全部頁數,然後翻頁爬取全部資料
爬蟲程式碼:
# -*- coding: utf-8 -*-""" Created Feb 28 10:30:56 2021 @author: 可以叫我才哥 """import requestsimport reimport pandas as pd# 獲取全部板塊及板塊idurl = '(url) html = r.text# 替換非字元為空,便於下面的正則html = re.sub('\s','',html)# 正則獲取 板塊及id所在區域labelHtml = re.findall(r'</span>主要行業\(新\)</a>(.*?)</span>證監會行業\(新\)',html)[0]# 正則板塊和id,結果為由元組組成的列表label = re.findall(r'"qid="(hy.*?)"qquery=.*?"title="(.*?)">',labelHtml)# 轉化為dataframe型別dfLabel = pd.DataFrame(label,columns=['id','板塊'])# 根據板塊id和翻頁獲取頁面資料(json格式)def get_json(hy_id, page): query = 'PLATE_IDS:' + str(hy_id) params={ 'host': ' 'page': page, 'query': query, 'fields': 'NO,SYMBOL,NAME,PRICE,PERCENT,UPDOWN,FIVE_MINUTE,OPEN,YESTCLOSE,HIGH,LOW,VOLUME,TURNOVER,HS,LB,WB,ZF,PE,MCAP,TCAP,MFSUM,MFRATIO.MFRATIO2,MFRATIO.MFRATIO10,SNAME,CODE,ANNOUNMT,UVSNEWS', #你可以不用這麼多欄位 'sort': 'PERCENT', 'order': 'desc', 'count': '24', 'type': 'query', } url = '(url,params=params) j = r.json() return j# 空列表用於存取每頁資料dfs = []# 遍歷全部板塊for hy_id,板塊 in dfLabel.values: # 獲取頁數 j = get_json(hy_id, 0) pages = j['pagecount'] for page in range(pages): j = get_json(hy_id, page) data = j['list'] df = pd.DataFrame(data) df['板塊'] = 板塊 dfs.append(df) print(f'已爬取{len(dfs)}個板塊資料') result = pd.concat(dfs)
二、excel樹狀圖
excel樹狀圖是在office2016級之後版本中新加的圖表型別,想要繪製需要基於此版本及之後的版本哦。
簡單的樹狀圖繪製流程:框選資料—>插入—>圖表—>選中樹狀圖 即可。
以下圖為例,在樹狀圖中,每個色塊代表一個省份,色塊面積大小則由其GDP值大小決定。
三、帶有增長率的樹狀圖
我們發現,在基礎的樹狀圖中,色塊顏色除了區別色塊之外並沒有其他特殊含義。拿GDP來說,除了值之外我們一般也會去看其增長率,那麼是否可以讓色塊顏色和增長率有關聯呢?
下面我們試著探究一下,如果成功的話,那麼金融界的大盤雲圖似乎也可以用excel樹狀圖來進行繪製了不是!
1、思路:
我們希望色塊顏色能代表增長率,比如紅色是上漲,綠色是下降且顏色越深代表絕對值越大
再對每個色塊進行對應的顏色填充即可
由於 樹狀圖頂多支援多級,色塊顏色也只能手動單一填充,怎麼辦呢?既然手動可以,那麼其實就可以用VBA自動化這個過程咯。
2、增長率配色
基於上述思路,我們需要對增長率進行配色,最簡單的就是用條件格式裡的色階。
框選增長率資料—>開始—>條件格式—>色階(選中那個讓值越大顏色越紅的,由於這裡有負增長率,所以選了帶紅綠的):
為了更好的展示區分正負增長率,我們在設定完色階後再進行管理規則:
我們將中間值設為數字0,這樣負增長率就是綠色,正增長率就是紅色;
我們將最大值設定為百分點值80,也就是增長率前80%的值都是最紅的。
最終配色效果:
四、VBA填充色塊顏色
先看效果:
湖北因為收到疫情影響最大,有接近小半年屬於封省狀態,全年增長率為負數。
由於條件格式下單元格顏色是不固定的無法透過vba獲取,我們需要將顏色賦值到新的一列中去,需要用到如下操作:
選中增長率資料複製,然後點選剪下板最右下角會出現剪貼簿,再滑鼠左鍵選擇需要貼上的地方如E2,點選剪貼簿中需要貼上的資料即可。 這個時候,被貼上的單元格區域的顏色就是固定的了,你可以選擇刪除資料只留顏色部分。
VBA思路:
- 啟用需要操作的圖表(Activate)
- 遍歷全部的系列和資料點(ActiveChart.FullSeriesCollection(1).Points.Count)
- 從第一個資料點開始,獲取對應增長率單元格顏色(ActiveSheet.Range("E" & i + 1).Interior.Color)
- 將單元格賦值給該資料點(Selection.Format.Fill.ForeColor.RGB)
VBA程式碼:
Sub My_Color() ActiveSheet.ChartObjects("圖表 1").Activate '遍歷全部的資料點 For i = 1 To ActiveChart.FullSeriesCollection(1).Points.Count '選中資料點 ActiveChart.FullSeriesCollection(1).Points(i).Select '獲取單元格顏色 MyColor = ActiveSheet.Range("E" & i + 1).Interior.Color '將單元格顏色賦值給對應資料點填充色 Selection.Format.Fill.ForeColor.RGB = MyColor Next
執行指令碼過程如下:
好了,以上就是本次全部內容,大家可以試著爬取股票資料,然後試著繪製一下。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21472864/viewspace-2760712/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python爬取股票最新資料並用excel繪製樹狀圖PythonExcel
- python爬取股票資料並存到資料庫Python資料庫
- Python爬取股票資訊,並實現視覺化資料Python視覺化
- 用Python爬取新型冠狀病毒肺炎實時資料,pyecharts v1.x繪製省市區疫情地圖PythonEcharts地圖
- Python 爬取 baidu 股票市值資料PythonAI
- Python 爬基金資料Python
- js讀取excel檔案,繪製echarts圖形---資料處理JSExcelEcharts
- HSStockChart:用 Swift 繪製股票分時圖、K 線圖Swift
- 歷史股票資料的爬取
- Python批次讀取HDF多波段柵格資料並繪製像元直方圖Python直方圖
- ios股票K線圖的繪製iOS
- 朋友股票虧慘了,我一怒用Python爬取了證券最新資料Python
- iOS股票K線圖、分時圖繪製iOS
- js如何讀取excel檔案,繪製echarts圖形。JSExcelEcharts
- SVG繪製餅狀圖SVG
- 小白學 Python 爬蟲(25):爬取股票資訊Python爬蟲
- 用Python爬取《王者榮耀》英雄皮膚資料並視覺化分析,用圖說話Python視覺化
- Android 開發:使用繪製基金圖表類(帶快取的圖表類)Android快取
- 用Python讀取excel中的資料PythonExcel
- Canvas(3)---繪製餅狀圖Canvas
- Excel上傳並讀取資料Excel
- Python 利用pandas 和 matplotlib繪製柱狀圖Python
- 爬蟲之股票定向爬取爬蟲
- python 獲取全國最新省市區資料,並存入表Python
- 【python】爬取疫情資料並進行視覺化Python視覺化
- Python資料爬蟲學習筆記(11)爬取千圖網圖片資料Python爬蟲筆記
- 用Python淺析股票資料Python
- 房產資料爬取、智慧財產權資料爬取、企業工商資料爬取、抖音直播間資料python爬蟲爬取Python爬蟲
- Python資料分析入門(十七):繪製條形圖Python
- 實時獲取股票資料,免費!——Python爬蟲Sina Stock實戰Python爬蟲
- 資料流圖繪製例項
- Python爬取微博資料生成詞雲圖片Python
- 使用 Flutter 繪製圖表(二)餅狀圖?Flutter
- 使用 Flutter 繪製圖表(一)柱狀圖?Flutter
- 用Flutter的Canvas來自己繪製柱狀頻譜圖FlutterCanvas
- [python爬蟲] Selenium爬取內容並儲存至MySQL資料庫Python爬蟲MySql資料庫
- Python按條件篩選、剔除表格資料並繪製剔除前後的直方圖Python直方圖
- 機器學習股票價格預測從爬蟲到預測-資料爬取部分機器學習爬蟲