截至2021年3月,有8,000多种加密货币,因此一目了然地跟踪所有价格的发展可能是具有挑战性的。幸运的是,像coin360这样的网站以树形图的形式提供了加密货币价格发展的简洁可视化。树状图通过使用可变大小的矩形以嵌套结构的形式显示比例价格数据,从而提供了所有加密货币的快速概览。
对此概念感兴趣,我决定尝试使用Python创建我自己的版本的树形图以跟踪加密价格的想法。此树形图教程不仅限于显示加密信息,还可以应用于几乎任何其他数据。
为了最大程度地提高Python代码的可移植性,本教程使用Google Colab创建,因此笔记本可以在任何Chrome浏览器上运行。
本教程的3个主要组成部分是:
如何使用CoinMarketCap API调用和检索最近24小时内的加密货币价格
使用库Squarify在Python中绘制静态树图
使用库Plotly在Python中绘制交互式树图
从CoinMarketCap检索加密数据
通过使用下面显示的代码片段,您应该能够从CoinMarketCap调用前10个加密数据。可以调整参数以包括更多或更少的数据以及所使用的货币。切记在第15行中替换您的API密钥。此代码段在发布时是最新的,有关将来的任何更新,请参阅官方文档。
- #This example uses Python 2.7 and the python-request library.
- from requests import Request, Session
- from requests.exceptions import ConnectionError, Timeout, TooManyRedirects
- import json
- url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest'
- parameters = {
- 'start':'1',
- 'limit':'10',
- 'convert':'USD'
- }
- headers = {
- 'Accepts': 'application/json',
- 'X-CMC_PRO_API_KEY': '#REPLACE YOUR API KEY HERE#',
- }
- session = Session()
- session.headers.update(headers)
- try:
- response = session.get(url, params=parameters)
- data = json.loads(response.text)
- print(data)
- except (ConnectionError, Timeout, TooManyRedirects) as e:
- print(e)
API返回的数据为JSON格式,因此需要以pythonic数据框格式进行规范化(请参见第4行)。还对数据进行过滤,以仅保留与树图相关的几列,即加密货币的名称,排名,价格及其关联的市值(请参阅第5行)。