您好,登錄后才能下訂單哦!
本篇內容介紹了“Python中搭建幣價樹形圖的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
截至2021年3月,有8,000多種加密貨幣,因此一目了然地跟蹤所有價格的發展可能是具有挑戰性的。幸運的是,像coin360這樣的網站以樹形圖的形式提供了加密貨幣價格發展的簡潔可視化。樹狀圖通過使用可變大小的矩形以嵌套結構的形式顯示比例價格數據,從而提供了所有加密貨幣的快速概覽。
對此概念感興趣,我決定嘗試使用Python創建我自己的版本的樹形圖以跟蹤加密價格的想法。此樹形圖教程不僅限于顯示加密信息,還可以應用于幾乎任何其他數據。
為了最大程度地提高Python代碼的可移植性,本教程使用Google Colab創建,因此筆記本可以在任何Chrome瀏覽器上運行。
本教程的3個主要組成部分是:
如何使用CoinMarketCap API調用和檢索最近24小時內的加密貨幣價格
使用庫Squarify在Python中繪制靜態樹圖
使用庫Plotly在Python中繪制交互式樹圖
從CoinMarketCap檢索加密數據
免責聲明:CoinMarketCap數據的免費版本僅供個人使用,出于商業目的,請參閱CMC的定價計劃。
首先,如果您還沒有的話,您需要在此處注冊一個開發者帳戶。登錄后,導航至儀表板并復制唯一的API密鑰。
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行)。
import pandas as pd #normalize the data into dataframe format df = pd.json_normalize(data["data"]) cols_to_keep = ['name','symbol','cmc_rank','quote.USD.price','quote.USD.percent_change_24h','quote.USD.market_cap',] df_final = df[cols_to_keep] #rename columns df_final.columns = ['name','symbol','cmc_rank','USD_price','USD_percent_change_24h','USD_market_cap',] #uncomment below to print the table #df_final
創建一個靜態樹圖
使用Squarify創建的樹圖
Squarify是樹圖布局算法的庫實現。它通過計算數據大小并返回矩形的一系列坐標來工作,然后使用繪制這些坐標MatPlotLib。可以使用顏色編碼的參數來可視化變化的規模,在此示例中,其是過去24小時內價格變化的百分比。但是,不利的一面是,目前尚無直接實現可根據變化的矩形的大小來縮放標簽的方法。Python代碼如下。
import matplotlib import matplotlib.pyplot as plt #!pip install squarify import squarify #load data sizes=df_final["USD_market_cap"] label=df_final["name"] # color scale on the price development # min and max values cmap = matplotlib.cm.RdYlGn #RedYellowGreen mini=min(df_final["USD_percent_change_24h"]) maxi=max(df_final["USD_percent_change_24h"]) norm = matplotlib.colors.Normalize(vmin=mini, vmax=maxi) colors = [cmap(norm(value)) for value in df_final["USD_percent_change_24h"]] # labels in treemap squares labels = ["%s\n%d USD\n%0.2f%%" % (label) for label in zip(df_final.symbol, df_final["USD_price"], df_final["USD_percent_change_24h"])] # make plot fig = plt.figure(figsize=(20, 10)) ax = fig.add_subplot(111, aspect="auto") ax = squarify.plot(df_final["USD_market_cap"], color=colors, label=labels, alpha=.8) ax.set_title("Cryptomarket price change last 24 hours\n", fontsize=18) # plot title and color bar img = plt.imshow([df_final["USD_percent_change_24h"]], cmap=cmap) img.set_visible(True) fig.colorbar(img, orientation="vertical", shrink=.96) fig.text(.76, .9, "Percentage change", fontsize=14) # if you want to export the figure #plt.savefig("cmc_treemaps.png") plt.show()
說明:
第1至4行:導入并安裝(如果需要)所需的庫
第6-8行:加載樹形圖的數據
第10-16行:對價格變化百分比應用顏色編碼的縮放比例
第18-19行:為要顯示的文本創建字符串標簽
第21–25行:繪制樹形圖
第27–31行:在側面應用顏色條
第33–35行:顯示樹狀圖,并帶有將其導出為png圖像的選項
創建交互式樹形圖
掃碼查看交互式樹形圖效果
繪制樹圖的一種更復雜的方法是將其激活!使用Plotly可以創建一個交互式樹狀圖,當您在每個矩形塊上懸停時,它會顯示有關每個矩形塊的詳細信息。Plotly在后臺為您完成了大部分工作,從而導致與Squarify相比,更少的代碼行更加精簡和優雅。
#!pip install --upgrade plotly import plotly.graph_objects as go import plotly.express as px fig = px.treemap(df_final, path=['name'], values='USD_market_cap', color_continuous_scale='RdYlGn', color='USD_percent_change_24h', ) fig.update_layout(title_text='Cryptomarket price change last 24 hours', title_x=0.5) fig.show()
說明:
第1至3行:導入并安裝所需的庫
第5-10行:繪制樹形圖
第11行:在樹形圖上添加標題
第12行:顯示樹狀圖
如何在媒體/網站中嵌入交互式樹圖
想知道您上面看到的嵌入式樹形圖是如何完成的?您可以使用Plotly Studio輕松地做到這一點,而好處是您可以直接將Google Colab筆記本與Plotly Studio關聯(您需要有一個帳戶)。只需在下面添加此代碼段,然后使用您的Plotly用戶名和API密鑰即可完成。
#To push your GC plot to Plotly Studio automatically #!pip install chart_studio import chart_studio import chart_studio.plotly as py username = '#REPLACE YOUR USERNAME HERE#' # your username api_key = '#REPLACE YOUR API KEY HERE#' # your api key - go to profile > settings > regenerate key chart_studio.tools.set_credentials_file(username=username, api_key=api_key) py.plot(fig, filename = 'cmc_treemap', auto_open=True)
將您的Plotly樹圖推入/同步到Plotly Studio后,只需將鏈接復制到Plotly Studio,然后將該鏈接粘貼到Medium中作為嵌入式鏈接,然后按Enter鍵,就可以了!
如何在網站上上插入嵌入式鏈接
總結
通過可視化不同矩形和顏色的層次結構數據,樹形圖是講述故事的好方法。當您要按大小順序快速可視化大量數據,以及可以選擇對第二維使用不同色調和顏色強度的選項時,此功能非常有效。但是,樹形圖的一個缺點是進行精確的定量比較可能具有挑戰性。
“Python中搭建幣價樹形圖的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。