盘⼀盘Python系列特别篇PyEchartsTreeMap
本⽂ 3909 个字, 38 张图表。建议阅读 20 分钟。
在对话框回复 data,可以获取本帖⽤到的数据、Jupyter Notebook 的代码、和股票矩阵树形图。
0引⾔
昨天晚上看到⼀个关于股票的矩形树状图 (tree map),真的太酷了,传达的信息太多了。
这⿁斧神⼯的细节⼤概率是⽤ d3.js 做的,⿏标移动到每个股票上居然还能看到它 (甚⾄和它同类股票) 前⼀天的⾛势图,我就想能不能⽤PyEcharts 实现它或实现它⼀部分。
在做之前我什么都不会,但我知道我需要三个东西
1. 数据 (从 Quantopian 取)
2. PyEcharts 例⼦ (从 Google 搜)
3. 直觉 (这个靠平时积累和⼀些领域知识)
接着就是模仿着例⼦,套⽤着数据,⼀步⼀步完善。这是学习⼀个陌⽣的东西正确打开⽅式。
1数据
从之前的炫酷的 TreeMap 图中,我得到以下⼏个规律:
股票是按⾏业 (sector) 聚成⼀块的。
每个⾏业下的⼩块就显⽰着股票代号和⽇收益率。
每⼀⼩块的⾯积不⼀样⼤,看着微软 (MSFT)、苹果 (AAPL)、亚马逊 (AMZN) 和⾕歌 (GOOGL) 最显眼就知道⾯积和市值成正⽐。python怎么读取py文件
第⼀步我就明晰了需要的数据,就是每个股票的
代号、⾏业、价格 (⽇收益率)、市值
接着就在 Quantopian 中⽤ pipeline ⼀把梭 (这个靠练习,玩过⼏次就熟了)。⾸先引⼊所⽤需要的包。关于 Pipeline 的知识在〖〗讲过。
还记得〖〗讲过的⽤来数据预处理的元估计器 Pipeline 么?在 Quantopian ⾥你可以把你想在各种条件下获取的各种数据类型统统定义在make_pipeline() ⾥⾯。
前 3 ⾏要获取收盘价、股票代号和市值。
后 4 ⾏把范围限制在
可交易
市值前 500 的股票
收盘价有值
的股票上。
最后返回⼀个 DataFrame,columns 包括股票代号 (code)、⾏业 (sector)、⽇收益率 (return) 和市值 (market_cap)。
获取 2019 年 6 ⽉ 11 ⽇的数据,并打印前五⾏。
其他信息还好,但是 sector 怎么是数字啊?⼀查发现 Quantopian ⾥对⾏业有个映射表 (SECTOR_NAMES 是个字典)。
对 data['sector'] ⽤个 apply 函数,把⽤键把 SECTOR_NAMES ⾥的值获取出来 (字典是键值对还记得吗?)。
现在的 DataFrame 含「多索引」的⾏标签,这种类型的数据不⽅便存⼊ csv 中,因此我们⽤ reset_index() 将⾏标签全部转成列标签。
level_0 和 level_1 看着好碍眼,⽽且包含着多余信息,⽤ drop() 函数删掉。
美滋滋的最后准备存成 csv ⽂件是要吐⾎,因为 Quantopian ⾥的数据很宝贵,它不允许外存因⽽把 to_csv 之类的函数当成⿊名单了。
但这难得住我么?我把它每次分 50 ⾏打印出来,⼿动复制粘贴到 csv 中。
最终 csv 就长这个样⼦。
数据齐了,接下来看例⼦,希望抽出共性的东西⽤来模仿。
2例⼦

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。