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

技术python如何爬取基金股票最新数据并用excel绘制树状图python如何爬取基金股票最新数据并用excel绘制树状图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到

python如何抓取基金股票最新数据并用excel绘制树形图?针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想要解决这个问题的小伙伴找到一个更简单易行的方法。

大家好。最近,大A的白马股简直陷入了失礼的境地。作为一个在团团白马股票基金中身居高位的养鸡少年,每天都是以泪洗面。

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

难以置信的股市崩盘

不过从最近一个交易日金融板块的云图来看,其实很多中小股还是红色的下跌,而绿色的都是白马股。

所以,今天我们试着用python爬取最近一个交易日的股票数据,试着用excel简单的画出上面的树形图。

爬网易金融各个板块的股票数据。

Excel树视图

简单的树形视图。

有增长率的树形图。

一、爬取网易财经各板块股票数据

目标网址:

http://quotes.money.163.com/old/

网易财经-报价中心。

由于这个爬虫部分比较简单,这里就不赘述了,只是介绍一下思路,附上完整的代码供大家参考。

爬虫思路:

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

根据行业板块对应的id构建一个新的行业股票数据网页。

由于翻页地址不变,替换参数得到所有页面,然后翻页抓取所有数据。

爬虫代码:

#-*-coding:utf-8-*-' ' '

创建数据库28860 . 88888888886

@author:可以叫我蔡哥。

importrequestsimportreimporttpandasapd #获取所有牌照和牌照id URL=' http://quotes.money.163.com/old/#查询=hy 001000 data type=hs _ rank sort=percentorder=desc count=24 page=0 ' r=requests . get(URL。

Html=r.text#替换非字符为空,方便后面的常规html=re.sub('\s ','',html)#定期获取号牌和id所在区域labelHtml=re . findall(r '/span main industries \(new \)/a(。*?)/span CSRC industry \ (new \)',html)[0]#正则节和id,结果是一个由元组组成的列表label=re.findall(r''qid='(hy。*?)' qquery=。*?title='(。*?)'',labelHtml)#转换为dataframe类型dflabel=pd.dataframe (label,columns=['id ',' plate']) #根据plate id和翻页(json格式)获取页面数据defget _ JSON (hy _ id,page) :查询=' plate _ ids: '。

params={ 0

host ' : ' http://quotes . money . 163.com/hs/service/DIY rank . 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级之后版本中新加的图表类型,想要绘制需要基于此版本及之后的版本哦。

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

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

树状图绘制流程

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

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

2020年全国各地GDP

三、带有增长率的树状图

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

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

1、思路:

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

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

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

2、增长率配色

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

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

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

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

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

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

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

最终配色效果:

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

配色效果

四、VBA填充色块颜色

先看效果:

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

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

各省GDP及增长率

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

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

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

单元格色复制操作流程

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://www.230890.com/zhan/49729.html

(0)

相关推荐

  • vspherewebclient虚拟机怎么使用(在虚拟机中怎么克隆系统)

    技术怎样在vSpere Client上克隆虚拟机本篇文章给大家分享的是有关怎样在vSpere Client上克隆虚拟机,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来

    攻略 2021年12月21日
  • 华为手机什么型号好,华为手机哪个系列用的比较好

    技术华为手机什么型号好,华为手机哪个系列用的比较好可以根据自身经济实力来选择购买华为手机什么型号好,至于说哪个系列比较好用,除华为麦芒入门级的差,其他的系列满足普通人的要求是绰绰有余;不过个人经验觉得钱贵一些的旗舰机使用

    生活 2021年10月28日
  • Python 爬取朋友圈最新方法!!

    技术Python 爬取朋友圈最新方法!! Python 爬取朋友圈最新方法!!在几年前,互联网上曾经出现过一款生成朋友圈相册的产品。但是它的流程说起来很不互联网:首先,需要添加指定的微信号,并且给这个微

    礼包 2021年12月18日
  • C#与C++哪个更强

    技术C#与C++哪个更强这篇文章主要介绍“C#与C++哪个更强”,在日常操作中,相信很多人在C#与C++哪个更强问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#与C++哪个更强”的疑惑有

    攻略 2021年11月29日
  • LibraBFT和Bystack BBFT有什么区别?

    技术LibraBFT与比原链Bystack BBFT有什么不同本篇内容主要讲解“LibraBFT与比原链Bystack BBFT有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带

    攻略 2021年12月20日
  • 电子邮箱怎么注册,应用开发者注册电子邮箱怎么

    技术电子邮箱怎么注册,应用开发者注册电子邮箱怎么1电子邮箱怎么注册、其实itunes store的账号很好注册的,首先你要你要有个自己没有注册过apple ID的电子邮箱地址,用于注册你的APPLE ID,QQ邮箱也可以

    生活 2021年10月28日