久久色播_色综合久久久久久久久久久_欧美.com_97中文在线_天堂在线资源库_久久成人视屏

okx

讓數(shù)據(jù)動起來,PPT更生動

時間:2023-06-19|瀏覽:339

選自 Towards Data Science

機器之心編譯

參與:Jamin、張倩

在讀技術(shù)博客的過程中,我們會發(fā)現(xiàn)那些能夠把知識、成果講透的博主很多都會做動態(tài)圖表。他們的圖是怎么做的?難度大嗎?這篇文章就介紹了 Python 中一種簡單的動態(tài)圖表制作方法。

數(shù)據(jù)暴增的年代,數(shù)據(jù)科學(xué)家、分析師在被要求對數(shù)據(jù)有更深的理解與分析的同時,還需要將結(jié)果有效地傳遞給他人。如何讓目標聽眾更直觀地理解?當然是將數(shù)據(jù)可視化啊,而且最好是動態(tài)可視化。

本文將以線型圖、條形圖和餅圖為例,系統(tǒng)地講解如何讓你的數(shù)據(jù)圖表動起來。

這些動態(tài)圖表是用什么做的?

接觸過數(shù)據(jù)可視化的同學(xué)應(yīng)該對 Python 里的 Matplotlib 庫并不陌生。它是一個基于 Python 的開源數(shù)據(jù)繪圖包,僅需幾行代碼就可以幫助開發(fā)者生成直方圖、功率譜、條形圖、散點圖等。這個庫里有個非常實用的擴展包——FuncAnimation,可以讓我們的靜態(tài)圖表動起來。

FuncAnimation 是 Matplotlib 庫中 Animation 類的一部分,后續(xù)會展示多個示例。如果是首次接觸,你可以將這個函數(shù)簡單地理解為一個 While 循環(huán),不停地在“畫布”上

import matplotlib.animation as ani

animator = ani.FuncAnimation(fig, chartfunc, interval=100)

從中我們可以看到 FuncAnimation 的幾個輸入:

fig 是用來「繪制圖表」的 figure 對象;

chartfunc 是一個以數(shù)字為輸入的函數(shù),其含義為時間序列上的時間;

interval 這個更好理解,是幀之間的間隔延遲,以毫秒為單位,默認值為 200。

這是三個關(guān)鍵輸入,當然還有更多可選輸入,感興趣的讀者可查看原文檔,這里不再贅述。

下一步要做的就是將數(shù)據(jù)圖表參數(shù)化,從而轉(zhuǎn)換為一個函數(shù),然后將該函數(shù)時間序列中的點設(shè)置完成后就可以正式開始了。

在開始之前依舊需要確認你是否對基本的數(shù)據(jù)可視化有所了解。也就是說,我們先要將數(shù)據(jù)進行可視化處理,再進行動態(tài)處理。

按照以下代碼進行基本調(diào)用。另外,這里將采用大型流行病的傳播數(shù)據(jù)作為案例數(shù)據(jù)(包括每天的死亡人數(shù))。

import matplotlib.animation as ani import matplotlib.pyplot as plt import numpy as np import pandas as pd

url = "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv" df = pd.read_csv(url, delimiter=",", header="infer") df_interest = df.loc[ df["Country/Region"].isin(["United Kingdom", "US", "Italy", "Germany"]) & df["Province/State"].isna() ] df_interest.rename(index=lambda x: df_interest.at[x, "Country/Region"], inplace=True) df1 = df_interest.transpose() df1 = df1.drop(["Province/State", "Country/Region", "Lat", "Long"]) df1 = df1.loc[(df1 != 0).any(1)] df1.index = pd.to_datetime(df1.index)

繪制三種常見動態(tài)圖表

繪制動態(tài)線型圖

如下所示,首先需要做的第一件事是定義圖的各項,這些基礎(chǔ)項設(shè)定之后就會保持不變。它們包括:創(chuàng)建 figure 對象,x 標和 y 標,設(shè)置線條顏色和 figure 邊距等:

import numpy as np import matplotlib.pyplot as plt

color = ["red", "green", "blue", "orange"] fig=plt.figure plt.xticks(rotation=45, ha="right", rotation_mode="anchor") # rotate the x-axis values plt.subplots_adjust(bottom=0.2, top=0.9) # ensuring the dates (on the x-axis) fit in the screen plt.ylabel("No of Deaths") plt.xlabel("Dates")

接下來設(shè)置 curve 函數(shù),進而使用 .FuncAnimation 讓它動起來:

def buildmebarchart(i=int): plt.legend(df1.columns) p=plt.plot(df1[:i].index,df1[:i].values) # note it only returns the dataset, upto the point i for i in range(0, 4): p[i].set_color(color[i]) # set the colour of each curve

import matplotlib.animation as ani animator = ani.FuncAnimation(fig, buildmebarchart, interval=100) plt.show

動態(tài)餅狀圖

可以觀察到,其代碼結(jié)構(gòu)看起來與線型圖并無太大差異,但依舊有細小的差別。

import numpy as np import matplotlib.pyplot as plt

fig, ax = plt.subplots() explode = [0.01, 0.01, 0.01, 0.01] # pop out each slice from the pie

def getmepie(i): def absolute_value(val): # turn % back to a number a = np.round(val/100.*df1.head(i).max().sum(), 0) return int(a) ax.clear plot = df1.head(i).max().plot.pie(y=df1.columns, autopct=absolute_value, label="", explode=explode, shadow=True) plot.set_title("Total Number of Deaths " + str(df1.index[min(i, len(df1.index)-1)].strftime("%y-%m-%d")), fontsize=12)

import matplotlib.animation as ani animator = ani.FuncAnimation(fig, getmepie, interval=200) plt.show

主要區(qū)別在于,動態(tài)餅狀圖的代碼每次循環(huán)都會返回一組數(shù)值,但在線型圖中返回的是我們所在點之前的整個時間序列。返回時間序列通過 df1.head(i) 來實現(xiàn),而 .max 則保證了我們僅獲得最新的數(shù)據(jù),因為流行病導(dǎo)致死亡的總數(shù)只有兩種變化:維持現(xiàn)有數(shù)量或持續(xù)上升。

df1.head(i).max

動態(tài)條形圖

創(chuàng)建動態(tài)條形圖的難度與上述兩個案例并無太大差別。在這個案例中,作者定義了水平和垂直兩種條形圖,讀者可以根據(jù)自己的實

熱點:數(shù)據(jù)

« 上一條| 下一條 »
區(qū)塊鏈交流群
數(shù)藏交流群

合作伙伴

黃金行情 秒懂域名 谷歌留痕代發(fā) 媽媽知道 裝修裝飾網(wǎng) 去玩唄SPA 愛網(wǎng)站 谷歌seo網(wǎng)站優(yōu)化 谷歌留痕代發(fā)Google留痕技術(shù) 天天財富 周公解夢 幣圈論壇 借春秋財經(jīng) 寶寶起名 非小號行情 幣圈ICO官網(wǎng) 減肥瘦身吧 幣圈官網(wǎng) 玩票票財經(jīng) 百悅米 旅游資訊網(wǎng) 谷歌留痕 皮卡丘資訊 美白沒斑啦 百科書庫 金色幣圈 趣玩幣 幣圈交流群 今日黃金 茶百科 培訓(xùn)資訊網(wǎng) 談股票 聚幣網(wǎng) 元宇宙Web 代特幣圈 借春秋 兼職信息網(wǎng) 玩合約
在區(qū)塊鏈世界中,智能合約不僅是代碼的信任,更是商業(yè)的革命。通過了解其在供應(yīng)鏈、版權(quán)保護等領(lǐng)域的應(yīng)用,您將真正體驗到智能合約的無限可能性
區(qū)塊鏈世界GxPiKaQiu.com ?2020-2024版權(quán)所有 桂ICP備16002597號-2
主站蜘蛛池模板: 狠狠色伊人亚洲综合成人 | 国产专区一区二区三区 | 亚洲精品中文字幕在线 | 亚洲成人国产 | 国产一区二区在线视频播放 | 日本在线观看一区 | 成人毛片网 | 国产精品久久久久久久久免费相片 | 日韩欧美在线一区二区 | 国产精品国产三级国产 | 国产精品久久久久久久久久 | 色又黄又爽18件免费网站 | 福利亚洲 | 日韩hd | 国产精品久久久久久久久久白浆 | 国产伦精品一区二区三区 | 亚洲一级在线观看 | 99九九视频 | 欧美videosdesex高潮 | 黄色一级大片 | 真人毛片 | 亚洲欧美综合精品久久成人 | 色综合久久天天综合网 | 久久久久久久久久影视 | 成人a级网站 | 国产日韩欧美一区 | 成 人 免费 黄 色 | 日韩中文av | 成人欧美一区二区三区视频网页 | 又湿又紧又大又爽a视频国产 | 国产日韩欧美在线 | 国产成人综合在线 | 嫩草懂你 | 成人免费视频国产 | 国产亚洲视频在线观看 | 久久99国产精一区二区三区 | 又爽又黄的视频 | 一区二区三区在线视频免费观看 | 麻豆最新网址 | 亚洲视频成人 | 91精品国产综合久久香蕉最新版 |