Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python爬取股票最新数据并用excel绘制树状图

python爬取股票最新数据并用excel绘制树状图

作者头像
可以叫我才哥
发布于 2021-08-05 06:50:49
发布于 2021-08-05 06:50:49
2.4K01
代码可运行
举报
文章被收录于专栏:可以叫我才哥可以叫我才哥
运行总次数:1
代码可运行
大家好,最近大A的白马股们简直跌妈不认,作为重仓了抱团白马股基金的养鸡少年,每日那是一个以泪洗面啊。

跌妈不认

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

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

2月26日大盘云图

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

目录:

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

1. 爬取网易财经各板块股票数据

目标网址

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

网易财经-行情中心

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

爬虫思路

  1. 请求目标网站数据,解析出主要行业(新)的数据:行业板块名称及对应id(如金融,hy010000)
  2. 根据行业板块对应id构造新的行业股票数据网页
  3. 由于翻页网址不变,按照《Python爬虫 | 爬虫基础入门看这一篇就够了》的里的套路找到股票列表数据的真实地址
  4. 代入参数,获取全部页数,然后翻页爬取全部数据

爬虫代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- 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所在区域
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)     

2. excel树状图

excel树状图是在office2016级之后版本中新加的图表类型,想要绘制需要基于此版本及之后的版本哦。

2.1.  简单的树状图

简单的树状图绘制流程:框选数据—>插入—>图表—>选中树状图 即可。

树状图绘制流程

以下图为例,在树状图中,每个色块代表一个省份,色块面积大小则由其GDP值大小决定。

2020年全国各地GDP

2.2. 带有增长率的树状图

我们发现,在基础的树状图中,色块颜色除了区别色块之外并没有其他特殊含义。拿GDP来说,除了值之外我们一般也会去看其增长率,那么是否可以让色块颜色和增长率有关联呢?

下面我们试着探究一下,如果成功的话,那么金融界的大盘云图似乎也可以用excel树状图来进行绘制了不是!

思路

  1. 我们希望色块颜色能代表增长率,比如红色是上涨,绿色是下降且颜色越深代表绝对值越大
  2. 再对每个色块进行对应的颜色填充即可

由于 树状图顶多支持多级,色块颜色也只能手动单一填充,怎么办呢?既然手动可以,那么其实就可以用VBA自动化这个过程咯。

2.3.1. 增长率配色

基于思路1,我们需要对增长率进行配色,最简单的就是用条件格式里的色阶

框选增长率数据—>开始—>条件格式—>色阶(选中那个让值越大颜色越红的,由于这里有负增长率,所以选了带红绿的):

色阶

为了更好的展示区分正负增长率,我们在设置完色阶后再进行管理规则

  • 我们将中间值设为数字0,这样负增长率就是绿色,正增长率就是红色;
  • 我们将最大值设置为百分点值80,也就是增长率前80%的值都是最红的。

调整规则

最终配色效果:

配色效果

2.3.2. VBA填充色块颜色

先看效果:

湖北因为收到疫情影响最大,有接近小半年属于封省状态,全年增长率为负数。

各省GDP及增长率

由于条件格式下单元格颜色是不固定的无法通过vba获取,我们需要将颜色赋值到新的一列中去,需要用到如下操作:

选中增长率数据复制,然后点击剪切板最右下角会出现剪贴板,再鼠标左键选择需要粘贴的地方如E2,点击剪贴板中需要粘贴的数据即可。 这个时候,被粘贴的单元格区域的颜色就是固定的了,你可以选择删除数据只留颜色部分。

单元格色复制操作流程

VBA思路:

  • 激活需要操作的图表(Activate
  • 遍历全部的系列和数据点(ActiveChart.FullSeriesCollection(1).Points.Count
  • 从第一个数据点开始,获取对应增长率单元格颜色(ActiveSheet.Range("E" & i + 1).Interior.Color
  • 将单元格赋值给该数据点(Selection.Format.Fill.ForeColor.RGB

VBA代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

End Sub

执行脚本过程如下:

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

温馨提示:接近小5000个股票数据,vba填充色块颜色会卡死,不建议全选操作。

公众号后台回复0228,可获取演示文件。

- END -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 可以叫我才哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python爬取基金股票最新数据,并用excel绘制树状图
大家好,最近大A的白马股们简直跌妈不认,作为重仓了抱团白马股基金的养鸡少年,每日那是一个以泪洗面啊。
大数据分析不是事儿
2021/03/02
2.4K0
我又用Python爬取了4000+股票数据,并用plotly绘制了树状热力图(treemap)
终于在最近学习plotly中,让我在高级图表里发现了treemap,居然可以很好地满足我的需求,大家看以下就是最终效果图,是不是很赞!
可以叫我才哥
2021/08/05
1.4K0
用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)
在本文里,将给出若干精彩范例,包括用爬虫获取股市数据,用matplotlib可视化控件绘制K线和均线,以及用sklean库里的方法,通过机器学习预测股价的走势。
用户1153489
2020/08/14
3.4K0
Python 数据分析与可视化:开启数据洞察之旅(5/10)
在当今数字化时代,数据就像一座蕴藏无限价值的宝藏,等待着我们去挖掘和探索。而 Python,作为数据科学领域的明星语言,凭借其丰富的库和强大的功能,成为了开启这座宝藏的关键钥匙,在数据分析和可视化领域占据着举足轻重的地位。
正在走向自律
2025/05/10
5970
Python 数据分析与可视化:开启数据洞察之旅(5/10)
股票交易数据采集+数据可视化(Python爬取某网站股票数据,附代全部代码)
前言 我国股票投资者数量为15975.24万户, 如此多的股民热衷于炒股,首先抛开炒股技术不说, 那么多股票数据是不是非常难找,找到之后是不是看着密密麻麻的数据是不是头都大了? 今天带大家爬取雪球平台
松鼠爱吃饼干
2021/12/04
4.4K1
股票交易数据采集+数据可视化(Python爬取某网站股票数据,附代全部代码)
python自动解析URL参数,让你的爬虫更加丝滑~
今天我们介绍一款python标准库urllib.parse,这玩意主要用于解析URL,即将URL字符串分割成其组件,或者将URL组件组合成一个URL字符串。
可以叫我才哥
2021/08/05
4.5K0
那些年,吴孟达出演过的作品与合作过的演员们
星爷已经转到幕后很久了,而达叔其实一直都有活跃在荧幕。2019年国产高票房科幻电影《流浪地球》里的姥爷韩子昂,今年刚上线不久的网络电影《少林寺之得宝传奇》里的客商老者。达叔一直都在带给我们快乐与感动,可惜这些都在今后成为回忆,定格在了2021年2月27日。
可以叫我才哥
2021/08/05
7360
用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口
在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将在此基础上再引入成交量效果图,并结合量价理论,给出并验证一些交易策略。
用户1153489
2019/09/29
2.8K0
用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口
Python爬取股票信息,并实现可视化数据
前言 截止2019年年底我国股票投资者数量为15975.24万户, 如此多的股民热衷于炒股,首先抛开炒股技术不说, 那么多股票数据是不是非常难找, 找到之后是不是看着密密麻麻的数据是不是头都大了? 今
松鼠爱吃饼干
2020/10/09
1.5K0
Python爬取股票信息,并实现可视化数据
用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)
本人最近在尝试着发表“以股票案例入门Python编程语言”系列的文章,在这些文章里,将用Python工具绘制各种股票指标,在讲述各股票指标的含义以及计算方式的同时,验证基于各种指标的交易策略,本文是第一篇,通过K线和均线案例讲述Numpy,Maplotlib等相关库的用法,并且还用代码案例来验证买卖的交易策略。在本系列的后面文章中,将陆续通过python绘制成交量、KDJ、MACD、RSI和OBV等指标,而且还会用Python编写针对这些指标的交易策略,敬请关注。
用户1153489
2019/09/29
3K0
用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)
精品教学案例 | 利用Matplotlib和Seaborn对苹果股票价格进行可视化分析
本案例适合作为大数据专业数据可视化课程的配套教学案例。通过本案例,能够达到以下教学效果:
数据酷客
2020/05/09
3.2K0
精品教学案例 | 利用Matplotlib和Seaborn对苹果股票价格进行可视化分析
用python爬取4332条粽子数据进行分析,揭秘甜咸肉粽的江湖!
端午节快要到了,甜咸粽子之争也快要拉开帷幕。 小五准备用Python爬取淘宝上的粽子数据并进行分析,看看有什么发现。 爬虫 爬取淘宝数据,本次采用的方法是:Selenium控制Chrome浏览器自动化操作[1]。其实我们还可以利用Ajax接口来构造链接,但是非常繁琐(包含加密秘钥等),直接使用Selenium来模拟浏览器会省去很多事情; 之前的文章我们也用过相同的方法,比如:爬电脑、爬电脑、爬完电脑买不起 最常见的问题是chromedriver驱动与谷歌浏览器的版本不匹配,很容易就可以解决。接下来,我
腾讯大讲堂
2020/06/28
5130
生活小技能:科学地股票选股策略
1.选择PEG < 0.5, 即稳定成长且价值被低估的股票 其中PEG = PE / growth_rate 2.使用ES风险平价配权 3.根据组合的日内波动小于3%的条件, 与货币基金组合配资 4.最大持仓5只股票和1只货币基金, 优先买入市值小的, 15天调仓一次 5.剔除了周期性和项目类行业(该部分对改善回撤有明显的效果)
机械视角
2019/10/23
1.1K0
生活小技能:科学地股票选股策略
用Python也能进军金融领域?这有一份股票交易策略开发指南
大数据文摘作品,转载要求见文末 编译 | 徐宇文,蒋晔、范玥灿 卞峥,yawei xia 技术早已成为金融业的一项资产:金融交易的高速、高频与超大数据体量结合,促使金融机构在一年一年不断地加深对技术的关注,在今天,技术已经切实成为了金融界的一项主导能力。 在金融界最受欢迎的编程语言中,你会看到R和Python,与C++,C#和Java这些语言并列。在本教程中,你将开始学习如何在金融场景下运用Python。本教程涵盖以下这些方面: 基础知识:对于金融入门阶段的读者,你将会首先学到股票和交易策略,什么是时间序列
大数据文摘
2018/05/24
3.1K0
手把手教你用plotly绘制excel中常见的16种图表(上)
最近不是在学习plotly嘛,为了方便理解,我们这里取excel绘图中常见的16种图表为例,分两期演示这些基础图表怎么用plotly进行绘制!
可以叫我才哥
2021/08/05
4.2K0
这个横行霸道的美食,也是中秋节的一大特色,我用Python爬取1546条数据带大家看看
中秋节除了月饼之外,还有一道美食也开始闯入人们的餐桌,这边是横行"霸道"的大闸蟹!
可以叫我才哥
2021/09/24
3030
python中使用马尔可夫决策过程(MDP)动态编程来解决最短路径强化学习问题|附代码数据
最近我们被客户要求撰写关于MDP的研究报告,包括一些图形和统计输出。 在强化学习中,我们有兴趣确定一种最大化获取奖励的策略。假设环境是马尔可夫决策过程(MDP)的理想模型,我们可以应用动态编程方法来解决强化学习问题
拓端
2022/12/21
1.2K0
数据可视化:看中国经济发展
近期因工作需要,尝试使用一些数据可视化手段做产品运营分析。自己之前对可视化的理解仅仅限于excel做做图表,但深入下去发现数据可视化远不限于此,可以说很多的工作的基本功。掌握必要的数据可视化手段,可以大大提升你的工作效率。下面将通过示例,尝试使用数据可视化手段分析国家、地域经济发展状态。数据来自于国家统计局(http://data.stats.gov.cn)公开披露数据(少部分2019年数据来自于互联网)。
用户5548425
2020/03/19
3.2K0
数据可视化:看中国经济发展
Excel商业智能最常用的3大类分析方法,你会几种?
下文为电子表格大会主席李奇在论坛上的分享。 一般我都先讲Power BI,今天被前面老师讲了,我想了半天,该讲什么好呢,最后决定给大家先讲一个我自身的故事,跟大家分享一下我是如何接触到Power BI以及Excel商业智能的吧。 很多人都问我专业不对口能否做数据分析,其实我想跟大家说,我是学考古的,所以大家只要想干一切皆有可能。 2011年以前我都在日本,在日本待了11年,在日本做过程序员,也做过开发工程师,也给日本那边失业的人进行Excel培训。2011年回国之后,我到了IBM,做销售运营管理数据分析。做
CDA数据分析师
2018/02/24
3.5K0
Excel商业智能最常用的3大类分析方法,你会几种?
Spider与OpenPyXL的结合1.OpenPyXL基础操作操作数据保存到文件2.爬虫与OpenPyXL的结合(爬取前程无忧网站招聘数据,存储Excel表格中)使用同样的分析方法爬取智联招聘岗位信
通过上述的语句,将返回在A4处的单元格,如果不存在将在A4新建一个。 单元格的值也可以直接赋值
Python攻城狮
2018/08/23
1.1K0
Spider与OpenPyXL的结合1.OpenPyXL基础操作操作数据保存到文件2.爬虫与OpenPyXL的结合(爬取前程无忧网站招聘数据,存储Excel表格中)使用同样的分析方法爬取智联招聘岗位信
推荐阅读
python爬取基金股票最新数据,并用excel绘制树状图
2.4K0
我又用Python爬取了4000+股票数据,并用plotly绘制了树状热力图(treemap)
1.4K0
用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)
3.4K0
Python 数据分析与可视化:开启数据洞察之旅(5/10)
5970
股票交易数据采集+数据可视化(Python爬取某网站股票数据,附代全部代码)
4.4K1
python自动解析URL参数,让你的爬虫更加丝滑~
4.5K0
那些年,吴孟达出演过的作品与合作过的演员们
7360
用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口
2.8K0
Python爬取股票信息,并实现可视化数据
1.5K0
用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)
3K0
精品教学案例 | 利用Matplotlib和Seaborn对苹果股票价格进行可视化分析
3.2K0
用python爬取4332条粽子数据进行分析,揭秘甜咸肉粽的江湖!
5130
生活小技能:科学地股票选股策略
1.1K0
用Python也能进军金融领域?这有一份股票交易策略开发指南
3.1K0
手把手教你用plotly绘制excel中常见的16种图表(上)
4.2K0
这个横行霸道的美食,也是中秋节的一大特色,我用Python爬取1546条数据带大家看看
3030
python中使用马尔可夫决策过程(MDP)动态编程来解决最短路径强化学习问题|附代码数据
1.2K0
数据可视化:看中国经济发展
3.2K0
Excel商业智能最常用的3大类分析方法,你会几种?
3.5K0
Spider与OpenPyXL的结合1.OpenPyXL基础操作操作数据保存到文件2.爬虫与OpenPyXL的结合(爬取前程无忧网站招聘数据,存储Excel表格中)使用同样的分析方法爬取智联招聘岗位信
1.1K0
相关推荐
python爬取基金股票最新数据,并用excel绘制树状图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验