最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python爬取股票最新數(shù)據(jù)并用excel繪制樹狀圖的示例

 更新時(shí)間:2021年03月01日 16:38:03   作者:the7主題  
這篇文章主要介紹了python爬取股票最新數(shù)據(jù)并用excel繪制樹狀圖的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

大家好,最近大A的白馬股們簡直 跌媽不認(rèn),作為重倉了抱團(tuán)白馬股基金的養(yǎng)雞少年,每日那是一個(gè)以淚洗面啊。

不過從金融界最近一個(gè)交易日的大盤云圖來看,其實(shí)很多中小股還是紅色滴,綠的都是白馬股們。

以下截圖來自金融界網(wǎng)站-大盤云圖:

那么,今天我們試著用python爬取最近交易日的股票數(shù)據(jù),并試著用excel簡單繪制以下上面這個(gè)樹狀圖。本文旨在拋磚引玉,吼吼。

1. python爬取網(wǎng)易財(cái)經(jīng)不同板塊股票數(shù)據(jù)

目標(biāo)網(wǎng)址:

http://quotes.money.163.com/old/#query=hy010000&DataType=HS_RANK&sort=PERCENT&order=desc&count=24&page=0

由于這個(gè)爬蟲部分比較簡單,這里不做過多贅述,僅介紹一下思路并附上完整代碼供大家參考。

爬蟲思路:

  1. 請(qǐng)求目標(biāo)網(wǎng)站數(shù)據(jù),解析出主要行業(yè)(新)的數(shù)據(jù):行業(yè)板塊名稱及對(duì)應(yīng)id(如金融,hy010000)
  2. 根據(jù)行業(yè)板塊對(duì)應(yīng)id構(gòu)造新的行業(yè)股票數(shù)據(jù)網(wǎng)頁
  3. 由于翻頁網(wǎng)址不變,按照《》的里的套路找到股票列表數(shù)據(jù)的真實(shí)地址
  4. 代入?yún)?shù),獲取全部頁數(shù),然后翻頁爬取全部數(shù)據(jù)

爬蟲代碼:

# -*- coding: utf-8 -*-
"""
Created Feb 28 10:30:56 2021

@author: 可以叫我才哥
"""

import requests
import re
import pandas as pd

# 獲取全部板塊及板塊id
url = 'http://quotes.money.163.com/old/#query=hy001000&DataType=HS_RANK&sort=PERCENT&order=desc&count=24&page=0'

r = requests.get(url)

html = r.text
# 替換非字符為空,便于下面的正則
html = re.sub('\s','',html)
# 正則獲取 板塊及id所在區(qū)域
labelHtml = re.findall(r'</span>主要行業(yè)\(新\)</a>(.*?)</span>證監(jiān)會(huì)行業(yè)\(新\)',html)[0]
# 正則板塊和id,結(jié)果為由元組組成的列表
label = re.findall(r'"qid="(hy.*?)"qquery=.*?"title="(.*?)">',labelHtml)
# 轉(zhuǎn)化為dataframe類型
dfLabel = pd.DataFrame(label,columns=['id','板塊'])

# 根據(jù)板塊id和翻頁獲取頁面數(shù)據(jù)(json格式)
def get_json(hy_id, page):
 query = 'PLATE_IDS:' + str(hy_id)
 params={
  'host': 'http://quotes.money.163.com/hs/service/diyrank.php',
  '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 = 'http://quotes.money.163.com/hs/service/diyrank.php?'
 r = requests.get(url,params=params)
 j = r.json()
 
 return j

# 空列表用于存取每頁數(shù)據(jù)
dfs = []
# 遍歷全部板塊
for hy_id,板塊 in dfLabel.values:
 # 獲取頁數(shù)
 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)}個(gè)板塊數(shù)據(jù)')

result = pd.concat(dfs)  

2. excel樹狀圖

excel樹狀圖是在office2016級(jí)之后版本中新加的圖表類型,想要繪制需要基于此版本及之后的版本哦。

2.1. 簡單的樹狀圖

簡單的樹狀圖繪制流程:框選數(shù)據(jù)—>插入—>圖表—>選中樹狀圖 即可。

以下圖為例,在樹狀圖中,每個(gè)色塊代表一個(gè)省份,色塊面積大小則由其GDO值大小決定。

2.2. 帶有增長率的樹狀圖

我們發(fā)現(xiàn),在基礎(chǔ)的樹狀圖中,色塊顏色除了區(qū)別色塊之外并沒有其他特殊含義。拿GDP來說,除了值之外我們一般也會(huì)去看其增長率,那么是否可以讓色塊顏色和增長率有關(guān)聯(lián)呢?

下面我們試著探究一下,如果成功的話,那么金融界的大盤云圖似乎也可以用excel樹狀圖來進(jìn)行繪制了不是!

思路:

  1. 我們希望色塊顏色能代表增長率,比如紅色是上漲,綠色是下降且顏色越深代表絕對(duì)值越大
  2. 再對(duì)每個(gè)色塊進(jìn)行對(duì)應(yīng)的顏色填充即可

由于 樹狀圖頂多支持多級(jí),色塊顏色也只能手動(dòng)單一填充,怎么辦呢?既然手動(dòng)可以,那么其實(shí)就可以用VBA自動(dòng)化這個(gè)過程咯。

2.3.1. 增長率配色

基于思路1,我們需要對(duì)增長率進(jìn)行配色,最簡單的就是用條件格式里的色階。

框選增長率數(shù)據(jù)—>開始—>條件格式—>色階(選中那個(gè)讓值越大顏色越紅的,由于這里有負(fù)增長率,所以選了帶紅綠的):

為了更好的展示區(qū)分正負(fù)增長率,我們在設(shè)置完色階后再進(jìn)行管理規(guī)則:

  • 我們將中間值設(shè)為數(shù)字0,這樣負(fù)增長率就是綠色,正增長率就是紅色;
  • 我們將最大值設(shè)置為百分點(diǎn)值80,也就是增長率前80%的值都是最紅的。

最終配色效果:

2.3.2. VBA填充色塊顏色

先看效果:

湖北因?yàn)槭盏揭咔橛绊懽畲螅薪咏“肽陮儆诜馐顟B(tài),全年增長率為負(fù)數(shù)。

由于條件格式下單元格顏色是不固定的無法通過vba獲取,我們需要將顏色賦值到新的一列中去,需要用到如下操作:

**選中增長率數(shù)據(jù)復(fù)制,然后點(diǎn)擊剪切板最右下角會(huì)出現(xiàn)剪貼板,再鼠標(biāo)左鍵選擇需要粘貼的地方如E2,點(diǎn)擊剪貼板中需要粘貼的數(shù)據(jù)即可。**這個(gè)時(shí)候,被粘貼的單元格區(qū)域的顏色就是固定的了,你可以選擇刪除數(shù)據(jù)只留顏色部分。

VBA思路:

激活需要操作的圖表(Activate)

遍歷全部的系列和數(shù)據(jù)點(diǎn)(ActiveChart.FullSeriesCollection(1).Points.Count)

從第一個(gè)數(shù)據(jù)點(diǎn)開始,獲取對(duì)應(yīng)增長率單元格顏色(ActiveSheet.Range("E" & i + 1).Interior.Color)

將單元格賦值給該數(shù)據(jù)點(diǎn)(Selection.Format.Fill.ForeColor.RGB)

VBA代碼:

Sub My_Color()
   
 ActiveSheet.ChartObjects("圖表 1").Activate
 '遍歷全部的數(shù)據(jù)點(diǎn)
 For i = 1 To ActiveChart.FullSeriesCollection(1).Points.Count
  '選中數(shù)據(jù)點(diǎn)
  ActiveChart.FullSeriesCollection(1).Points(i).Select
  '獲取單元格顏色
  MyColor = ActiveSheet.Range("E" & i + 1).Interior.Color
  '將單元格顏色賦值給對(duì)應(yīng)數(shù)據(jù)點(diǎn)填充色
  Selection.Format.Fill.ForeColor.RGB = MyColor
 Next

End Sub

執(zhí)行腳本過程如下:

好了,以上就是本次全部內(nèi)容,大家可以試著爬取股票數(shù)據(jù),然后試著繪制一下。

溫馨提示:接近小5000股票數(shù)據(jù),vba填充色塊顏色會(huì)卡死,不建議全選操作。

以上就是python爬取股票最新數(shù)據(jù)并用excel繪制樹狀圖的示例的詳細(xì)內(nèi)容,更多關(guān)于python 爬取股票數(shù)據(jù)并繪圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python使用pymongo模塊操作MongoDB的方法示例

    Python使用pymongo模塊操作MongoDB的方法示例

    這篇文章主要介紹了Python使用pymongo模塊操作MongoDB的方法,結(jié)合實(shí)例形式分析了Python基于pymongo模塊連接MongoDB數(shù)據(jù)庫以及增刪改查與日志記錄相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Python高并發(fā)和多線程有什么關(guān)系

    Python高并發(fā)和多線程有什么關(guān)系

    這篇文章主要介紹了Python高并發(fā)和多線程有什么關(guān)系,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python中對(duì)數(shù)組集進(jìn)行按行打亂shuffle的方法

    Python中對(duì)數(shù)組集進(jìn)行按行打亂shuffle的方法

    今天小編就為大家分享一篇Python中對(duì)數(shù)組集進(jìn)行按行打亂shuffle的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python實(shí)現(xiàn)簡單的俄羅斯方塊

    python實(shí)現(xiàn)簡單的俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡單的俄羅斯方塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 一篇文章教你用python畫動(dòng)態(tài)愛心表白

    一篇文章教你用python畫動(dòng)態(tài)愛心表白

    這篇文章主要給大家介紹了關(guān)于如何用python畫動(dòng)態(tài)愛心表白的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python3實(shí)現(xiàn)的判斷環(huán)形鏈表算法示例

    Python3實(shí)現(xiàn)的判斷環(huán)形鏈表算法示例

    這篇文章主要介紹了Python3實(shí)現(xiàn)的判斷環(huán)形鏈表算法,涉及Python針對(duì)環(huán)形鏈表的遍歷、判斷相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • python使用open函數(shù)對(duì)文件進(jìn)行處理詳解

    python使用open函數(shù)對(duì)文件進(jìn)行處理詳解

    今天看了open函數(shù),看到w+ r+ a+ 這種可讀可寫的操作,下面這篇文章主要給大家介紹了關(guān)于python使用open函數(shù)對(duì)文件進(jìn)行處理的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 修復(fù)Python縮進(jìn)錯(cuò)誤的方法實(shí)現(xiàn)

    修復(fù)Python縮進(jìn)錯(cuò)誤的方法實(shí)現(xiàn)

    在Python中,縮進(jìn)是非常重要的,因?yàn)樗鼪Q定了代碼塊的層次結(jié)構(gòu),本文主要介紹了修復(fù)Python縮進(jìn)錯(cuò)誤的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • python中reload(module)的用法示例詳解

    python中reload(module)的用法示例詳解

    與from和import相比,reload是內(nèi)置函數(shù),而不是語句,下面這篇文章主要給大家介紹了關(guān)于python中reload(module)用法的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-09-09
  • 學(xué)習(xí)python 的while循環(huán)嵌套

    學(xué)習(xí)python 的while循環(huán)嵌套

    這篇文章主要為大家介紹了python 的while循環(huán)嵌套,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12

最新評(píng)論

清苑县| 汝城县| 西宁市| 冀州市| 观塘区| 洞头县| 岳阳县| 清丰县| 綦江县| 沽源县| 高碑店市| 来宾市| 刚察县| 班玛县| 米脂县| 花莲县| 保定市| 新河县| 环江| 普格县| 栖霞市| 封丘县| 甘南县| 大洼县| SHOW| 红原县| 湘潭县| 北安市| 鸡泽县| 龙川县| 喀喇沁旗| 和静县| 邻水| 鄂托克旗| 叶城县| 孝昌县| 城步| 老河口市| 游戏| 萍乡市| 大理市|