大家好,最近大A的白马主们简直是妈妈不知道,作为挤在沉重仓库里的白马主基金的养鸡少年,每天它都用眼泪洗脸。(莎士比亚)。

滴妈妈不承认

但是从金融界最近交易日的大盘运道来看,实际上很多中小股仍然是红滴,绿色都是白马股。

以下截图来自金融社区网站-更广的市长/市场云图:

2月26日更广阔的市长/市场云

所以今天我们用python爬上最近交易日的股票数据,用excel简单地画一下这个树视图。

网易财经各版股票数据excel tree简单的树状视图增长率的树状视图1、网易财经各版股票数据。

大象URL:Datatype=hs _ ranksort=percentorder=desccount=24 page=0 网易财经-行情中心

这个爬虫部分比较简单,这里不多赘述,附上完整的代码,供介绍和参考。

爬虫想法:

通过请求大象网站数据,分析主要行业(新)的数据:行业领域名称及其id(例如金融、hy010000)。

根据不同行业的相应id,构建新的行业股票数据网页。

因为翻页URL不变,所以替换参数,获取所有页数,然后翻页,获取所有数据。

爬虫代码:

#-*-代码: utf-8-*-

单击“”

Created feb 2810:562021

@author:可以叫我宰哥

单击“”

Importrequests

Importre

Importpandasaspd

#获取所有板和板id

URL=';datatype=hs _ ranksort=percentorder=desccount=24页=0’

R=reque(url)

Html=r.text

#替换字符不为空,便于下面的概括

Html=re.sub('\s ',',Html)

#定期导入板和标识区域。

LabelHtml=re.findall(r'/span主要行业\(新\)/a(.*?)/span证监会产业\(新\)',html)[0]

#常规版和id,结果是元组列表

Label=re.findall(r''qid='(hy .*?)' ' qquery=。*?标题='(.*?)',标签html)

转换为# dataframe类型

DfLabel=(label,columns=['id ','版'])

#根据节id和翻页获取页面数据(JSON格式)

Defget _ JSON (hy _ id,第页):

query=' plate _ ids : ' str(hy _ id)

Params={

主机“:”;而且,

第:页,

“查询”:查询,

Fields' :' no、symbol、name、price、percent、updown、five _ minute、open、yest close Mfratiomfratio 10、sname、code、announmt、uvs news’,#不需要使用这么多字段

Sort':'PERCENT '、

订购' :' desc '

;,         'count': '24',         'type': 'query',         }     url = ';     r = reque(url,params=params)     j = r.json()          return j # 空列表用于存取每页数据 dfs = [] # 遍历全部板块 for hy_id,板块 in d:     # 获取页数     j = get_json(hy_id, 0)     pages = j['pagecount']          for page in range(pages):         j = get_json(hy_id, page)         data = j['list']         df = (data)         df['板块'] = 板块         d(df)     print(f'已爬取{len(dfs)}个板块数据') result = (dfs)     

二、excel树状图

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

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

树状图绘制流程

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

2020年全国各地GDP

三、带有增长率的树状图

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

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

1、思路:

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

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

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

2、增长率配色

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

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

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

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

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

最终配色效果:

配色效果

四、VBA填充色块颜色

先看效果:

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

各省GDP及增长率

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

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

单元格色复制操作流程

VBA思路:

  • 激活需要操作的图表(Activate)
  • 遍历全部的系列和数据点(Ac(1).Poin)
  • 从第一个数据点开始,获取对应增长率单元格颜色(Ac("E" & i + 1).In)
  • 将单元格赋值给该数据点(Selec)

VBA代码:

Sub My_Color() Ac("图表 1").Activate '遍历全部的数据点 For i = 1 To Ac(1).Poin '选中数据点 Ac(1).Points(i).Select '获取单元格颜色 MyColor = Ac("E" & i + 1).In '将单元格颜色赋值给对应数据点填充色 Selec = MyColor Next

执行脚本过程如下:

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

1.《【excel怎么生成树】python将爬上基金股票的最新数据,并使用excel绘制树状图。》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【excel怎么生成树】python将爬上基金股票的最新数据,并使用excel绘制树状图。》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/2543892.html