前言

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

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

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

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

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

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

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

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

爬虫思路:

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

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

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

爬虫代码:

# -*- 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)

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

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

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

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

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

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

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

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

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

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

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

我们将中间值设为数字0,这样负增长率就是绿色,正增长率就是红色;

我们将最大值设置为百分点值80,也就是增长率前80%的值都是最红的。

最终配色效果:

四.VBA填充色块颜色
先看效果:

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

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

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

VBA思路:

激活需要操作的图表(Activate)
遍历全部的系列和数据点(ActiveChart.FullSeriesCollection(1).Points.Count)
从第一个数据点开始,获取对应增长率python基础教程单元格颜色(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 = MyColorNext

执行脚本过程如下:

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

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

  1. 我用Python爬取了4000+股票数据,并用plotly绘制了树状热力图(treemap)

    大家好,我是辰哥~ 在最近学习plotly中,让我在高级图表里发现了treemap,居然可以很好地绘制全部4000+股票树状热力图,大家看以下就是最终效果图,是不是很赞! 大A头部公司股价又绿晕了啊 ...

  2. python实战|python爬取58同城租房数据并以Excel文件格式保存到本地

    python实战|python爬取58同城租房数据并以Excel文件格式保存到本地 一.分析目标网站url 目标网站:https://cq.58.com/minsuduanzu/ 让我们看看网站长啥样 ...

  3. python爬取税务局并将数据保存在Excel

    目标地址:http://www.chinatax.gov.cn/chinatax/n810346/n810825/index.html 采集 采集以下栏目: 增值税.消费税的前两页数据 每个栏目的: ...

  4. 朋友股票亏惨了,我一怒用Python爬取了证券最新数据

    大家好,我是辣条.  抓取目标: url:http://webapi.cninfo.com.cn/#/marketDataDate 数据目标: 获取 证券代码 证券简称 交易日期 开盘价 最高价 最低 ...

  5. python爬取微博热搜数据并保存!

    主要用到requests和bf4两个库将获得的信息保存在d://hotsearch.txt下importrequests;importbs4mylist=[]r=requests.get(ur- 很多 ...

  6. Python爬取京东任意商品数据实战总结

    利用Python爬取京东任意商品数据 今天给大家展示爬取京东商品数据 首先呢还是要分思路的,我分为以下几个步骤: 第一步:得到搜索指定商的url 第二步:获得搜索商品列表信息 第三步:对得到的商品数据 ...

  7. python 爬取24小时天气数据

    python 爬取24小时天气数据 1.引入相关库 # -*- coding: utf-8 -*- import requests import numpy as np 关于爬虫,就是在网页上找到自己 ...

  8. 用python爬取基金网信息数据,保存到表格,并做成四种简单可视化。(爬虫之路,永无止境!)

    用python爬取基金网信息数据,保存到表格,并做成四种简单可视化.(爬虫之路,永无止境!) 上次 2021-07-07写的用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化. 有的人留 ...

  9. python爬淘宝app数据_一篇文章教会你用Python爬取淘宝评论数据(写在记事本)

    [一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. [二.项目准备工作] 准备Pycharm,下载安装等,可以参考这篇文章 ...

  10. PYTHON爬取汽车之家数据

    PYTHON爬取汽车之家数据 使用知识 使用BeautifulSoup模块 使用正则表达式 使用到多线程爬取 使用说明 使用前请安装BeauifulSoup 起始页面: https://www.aut ...

最新文章

  1. 如何在mac下安装MPV播放器?
  2. 微软撤回了开放面部识别数据集,出于法律原因
  3. 机器学习 属性_属性关系文件格式| 机器学习
  4. 其实,我被 Fenng 拉黑过!
  5. 分享168套HTML个人博客模板---总有一个是你想要的
  6. select2 使用详解
  7. 《ShowYou数组代码》第38题:对数组元素进行排序
  8. matlab 亚像素边缘检测,一种亚像素边缘检测方法与流程
  9. 读书笔记 · AI产品经理的工作流程
  10. php spider 参数详解,利用phpspider爬取网站数据
  11. 模型压缩文献笔记_3:彩票假设及其家属。
  12. 一分钟教程:注册谷歌邮箱
  13. linux分区变为空闲,分析linux系统中磁盘空闲空间的管理方法
  14. 【建议收藏】2020年中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(Android高级篇下)...
  15. H5项目常见问题汇总及解决方案 1
  16. html5字体在线代码,网络字体@font-face 如何处理网页中的特殊字体
  17. 使用飞信api接口实现短信发送(只能发送好友)
  18. oracle 创建表空间
  19. c语言找不同小游戏编程,[程序设计]大家来找茬(C语言)
  20. 2023最新版Java面试八股文大全PDF版限时分享,含700道高频面试题

热门文章

  1. Vue项目 在chrome页面崩溃:喔唷 崩溃了(总结)
  2. 【编程题】【Scratch二级】2020.12 森林聚会
  3. ae合成设置快捷键_超全AE快捷键大全
  4. Word 利用 VBA 批量设置图片格式
  5. 模拟退火算法应用(Java)
  6. 图片放大-jQuery脚本使用异常:仅闪现图片外框
  7. 计算机等级考试程序题怎么做,全国计算机二级考试编程题技巧.doc
  8. 三阶魔方大中小魔公式_三阶魔方花样玩法,公式汇总
  9. 心灵鸡汤——人生哲理
  10. 技术管理必备之沟通机制