使用python爬取股票基金的最新数据消息,并用Excel绘制树状图一目了然

使用python爬取股票基金的最新数据消息,并用Excel绘制树状图一目了然,第1张

概述前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取Python免费学习资料、代码以及交流解答点击即可加入 大家好,最近大A的白马股们简直跌妈不认,作为重仓了

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取

Python免费学习资料、代码以及交流解答点击即可加入


 

大家好,最近大A的白马股们简直跌妈不认,作为重仓了抱团白马股基金的养鸡少年,每日那是一个以泪洗面啊。

 

 

不过从金融界最近一个交易日的大盘云图来看,其实很多中小股还是红色滴,绿的都是白马股们。

以下截图来自金融界网站-大盘云图:

 

 

那么,今天我们试着用python爬取最近交易日的股票数据,并试着用excel简单绘制上面这个树状图。

爬取网易财经各板块股票数据excel树状图简单的树状图带有增长率的树状图一.爬取网易财经各板块股票数据

目标网址:

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

 

由于这个爬虫部分比较简单,这里不做过多赘述,仅介绍一下思路并附上完整代码供大家参考。

@H_419_60@爬虫思路:

请求目标网站数据,解析出主要行业(新)的数据:行业板块名称及对应ID(如金融,hy010000)

根据行业板块对应ID构造新的行业股票数据网页

由于翻页网址不变,代入参数,获取全部页数,然后翻页爬取全部数据

爬虫代码:

# -*- Coding: utf-8 -*-"""Created Feb 28 10:30:56 2021@author: 可以叫我才哥"""import requestsimport reimport pandas as pd# 获取全部板块及板块IDurl = '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所在区域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': '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# 空列表用于存取每页数据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.思路:

我们希望色块颜色能代表增长率,比如红色是上涨,绿色是下降且颜色越深代表绝对值越大

再对每个色块进行对应的颜色填充即可

@H_419_106@由于 树状图顶多支持多级,色块颜色也只能手动单一填充,怎么办呢?既然手动可以,那么其实就可以用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

执行脚本过程如下:

 

 

好了,以上就是本次全部内容,大家可以试着爬取股票数据,然后试着绘制一下。

总结

以上是内存溢出为你收集整理的使用python爬取股票基金的最新数据消息,并用Excel绘制树状图一目了然全部内容,希望文章能够帮你解决使用python爬取股票基金的最新数据消息,并用Excel绘制树状图一目了然所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1189056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存