溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

發(fā)布時(shí)間:2021-07-24 14:19:39 來(lái)源:億速云 閱讀:200 作者:Leah 欄目:編程語(yǔ)言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1.成品圖

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

這個(gè)是監(jiān)控服務(wù)器網(wǎng)速的***成果,顯示的是下載與上傳的網(wǎng)速,單位為M。爬蟲(chóng)的原理都是一樣的,只不過(guò)將數(shù)據(jù)存到InfluxDB的方式不一樣而已, 如下圖。

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

可以實(shí)現(xiàn)對(duì)爬蟲(chóng)數(shù)量,增量,大小,大小增量的實(shí)時(shí)監(jiān)控。

2. 環(huán)境

  • InfluxDb,是目前比較流行的時(shí)間序列數(shù)據(jù)庫(kù);

  • Grafana,一個(gè)可視化面板(Dashboard),有著非常漂亮的圖表和布局展示,功能齊全的度量?jī)x表盤和圖形編輯器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作為數(shù)據(jù)源

  • Ubuntu

  • influxdb(pip install influxdb)

  • Python 2.7

3. 原理

獲取要展示的數(shù)據(jù),包含當(dāng)前的時(shí)間數(shù)據(jù),存到InfluxDb里面,然后再到Grafana里面進(jìn)行相應(yīng)的配置即可展示;

4. 安裝

4.1 Grafana安裝

官方安裝指導(dǎo)

安裝好以后,打開(kāi)本地的3000端口,即可進(jìn)入管理界面,用戶名與密碼都是admin

4.2 InfulxDb安裝

這個(gè)安裝就網(wǎng)上自己找吧,有很多的配置我都沒(méi)有配置,就不在這里誤人子弟了。

5. InfluxDb簡(jiǎn)單操作

碰到了數(shù)據(jù)庫(kù),肯定要把增刪改查學(xué)會(huì)了啊, 和sql幾乎一樣,只有一絲絲的區(qū)別,具體操作,大家可以參考官方的文檔。

  • influx 進(jìn)入命令行

  • CREATE DATABASE test 創(chuàng)建數(shù)據(jù)庫(kù)

  • show databases 查看數(shù)據(jù)庫(kù)

  • use test 使用數(shù)據(jù)庫(kù)

  • show series 看表

  • select * from table_test 選擇數(shù)據(jù)

  • DROP MEASUREMENT table_test 刪表

6. 存數(shù)據(jù)

InfluxDb數(shù)據(jù)庫(kù)的數(shù)據(jù)有一定的格式,因?yàn)槲叶际抢胮ython庫(kù)進(jìn)行相關(guān)操作,所以下面將在python中的格式展示一下:

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

其中:

  • measurement, 表名

  • time,時(shí)間

  • tags,標(biāo)簽

  • fields,字段

可以看到,就是個(gè)列表里面,嵌套了一個(gè)字典。其中,對(duì)于時(shí)間字段,有特殊要求,可以參考這里, 下面是python實(shí)現(xiàn)方法:

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

所以,到這里,如何將爬蟲(chóng)的相關(guān)屬性存進(jìn)去呢?以MongoDB為例

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

那么現(xiàn)在我們已經(jīng)往數(shù)據(jù)里存了數(shù)據(jù)了,那么接下來(lái)要做的就是把存的數(shù)據(jù)展示出來(lái)。

7.展示數(shù)據(jù)

7.1 配置數(shù)據(jù)源

以admin登錄到Grafana的后臺(tái)后,我們首先需要配置一下數(shù)據(jù)源。點(diǎn)擊左邊欄的最下面的按鈕,然后點(diǎn)擊DATA SOURCES,這樣就可以進(jìn)入下面的頁(yè)面:

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

點(diǎn)擊ADD DATA SOURCE,進(jìn)行配置即可,如下圖:

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

其中,name自行設(shè)定;Type  選擇InfluxDB;url為默認(rèn)的http://localhost:8086,  其他的因?yàn)槲仪懊鏇](méi)有進(jìn)行配置,所以默認(rèn)的即可。然后在InfluxDB  Details里的填入Database名,***點(diǎn)擊測(cè)試,如果沒(méi)有報(bào)錯(cuò)的話,則可以進(jìn)入下一步的展示數(shù)據(jù)了;

7.2 展示數(shù)據(jù)

點(diǎn)擊左邊欄的+號(hào),然后點(diǎn)擊GRAPH

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

接著點(diǎn)擊下圖中的edit進(jìn)入編輯頁(yè)面:

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化

從上圖中可以發(fā)現(xiàn):

  • 中間板塊是***的數(shù)據(jù)展示

  • 下面是數(shù)據(jù)的設(shè)置項(xiàng)

  • 右上角是展示時(shí)間的設(shè)置板塊,在這里可以選擇要展示多久的數(shù)據(jù)

7.2.1 配置數(shù)據(jù)

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2. 在Data Source中選擇剛剛在配置數(shù)據(jù)源的時(shí)候配置的NAME字段,而不是database名。

  3. 接著在下面選擇要展示的數(shù)據(jù)??粗秃苁煜な遣皇牵耆莝ql語(yǔ)句的可視化。同時(shí),當(dāng)我們的數(shù)據(jù)放到相關(guān)的字段上的時(shí)候,雙擊,就會(huì)把可以選擇的項(xiàng)展示出來(lái)了,我們要做的就是直接選擇即可;

  4. 設(shè)置右上角的時(shí)間,則可以讓數(shù)據(jù)實(shí)時(shí)進(jìn)行更新與展示

因?yàn)橄旅娴呐渲脤?shí)質(zhì)就是sql查詢語(yǔ)句,所以大家按照自己的需求,進(jìn)行選擇配置即可,當(dāng)配置完以后,就可以在中間的面板里面看到數(shù)據(jù)了。

8. 總結(jié)

到這里,本篇文章就結(jié)束了。其中,對(duì)于Grafana的操作我沒(méi)有介紹的很詳細(xì),因?yàn)楸酒饕v的是怎么利用這幾個(gè)工具完成我們的任務(wù)。

同時(shí),里面的功能確實(shí)很多,還有可以安裝的插件。我自己目前還是僅僅對(duì)于用到的部分比較了解,所以大家可以查詢官方的或者別的教程資料來(lái)對(duì)Grafana進(jìn)行更深入的了解,制作出更加好看的可視化作品來(lái)。

文末知識(shí)點(diǎn)摘要①:sql中dateiff函數(shù)的用法

DATEDIFF

返回跨兩個(gè)指定日期的日期和時(shí)間邊界數(shù)。

一、 語(yǔ)法

DATEDIFF ( datepart , startdate , enddate )

二、參數(shù)

datepart

是規(guī)定了應(yīng)在日期的哪一部分計(jì)算差額的參數(shù)。下表列出了 Microsoft® SQL Server? 識(shí)別的日期部分和縮寫(xiě)。

日期部分 縮寫(xiě)

year yy, yyyy

quarter qq, q

Month mm, m

dayofyear dy, y

Day dd, d

Week wk, ww

Hour hh

minute mi, n

second ss, s

millisecond ms

startdate

是計(jì)算的開(kāi)始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表達(dá)式。

因?yàn)?smalldatetime 只精確到分鐘,所以當(dāng)用 smalldatetime 值時(shí),秒和毫秒總是 0。

如   果您只指定年份的***兩位數(shù)字,則小于或等于"兩位數(shù)年份截止期"配置選項(xiàng)的值的***兩位數(shù)字的數(shù)字所在世紀(jì)與截止年所在世紀(jì)相同。大于該選項(xiàng)的值的***  兩位數(shù)字的數(shù)字所在世紀(jì)為截止年所在世紀(jì)的前一個(gè)世紀(jì)。例如,如果 two digit year cutoff 為 2049(默認(rèn)),則  49被解釋為 2049,2050 被解釋為 1950。為避免模糊,請(qǐng)使用四位數(shù)的年份。

enddate

是計(jì)算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表達(dá)式。

三、返回類型

integer

四、用法

此函數(shù)計(jì)算兩個(gè)指定日期之間日期部分的數(shù)目。結(jié)果為日期部分中等于(date2 - date1)的有符號(hào)的整數(shù)值。

當(dāng)結(jié)果不是日期部分的偶數(shù)倍時(shí),DATEDIFF 將被截?cái)喽皇潜簧崛搿?/p>

當(dāng)使用 day 作為日期部分時(shí),DATEDIFF 返回兩個(gè)指定的時(shí)間之間(包括第二個(gè)日期但不包括***個(gè)日期)的午夜數(shù)。

當(dāng)使用 month 作為日期部分時(shí),DATEDIFF 返回兩個(gè)日期之間(包括第二個(gè)日期但不包括***個(gè)日期)出現(xiàn)的月的***天的數(shù)目。

當(dāng)使用 week 作為日期部分時(shí),DATEDIFF 返回兩個(gè)日期(包括第二個(gè)日期但不包括***個(gè)日期)之間星期日的數(shù)目。

對(duì)于更小的時(shí)間單位存在溢出值:

milliseconds 24

seconds 68

minutes 4083

others 沒(méi)有溢出限制

如果超出這些限制,此函數(shù)將返回溢出錯(cuò)誤。

五、標(biāo)準(zhǔn)和兼容性

SQL/92 Transact-SQL 擴(kuò)展。

SQL/99 Transact-SQL 擴(kuò)展。

Sybase 與 Adaptive Server Enterprise 兼容。

六、示例

下面的語(yǔ)句返回 1

select datediff( hour, ''4:00am'', ''5:50am'' )

下面的語(yǔ)句返回 102

select datediff( month, ''1987/05/02'', ''1995/11/15'' )

下面的語(yǔ)句返回 0

select datediff( day, ''00:00'', ''23:59'' )

下面的語(yǔ)句返回 4

select datediff( day, ''1999/07/19 00:00'',''1999/07/23 23:59'' )

下面的語(yǔ)句返回 0

select datediff( month, ''1999/07/19'', ''1999/07/23'' )

下面的語(yǔ)句返回 1

select datediff( month, ''1999/07/19'', ''1999/08/23'' )

上述就是小編為大家分享的Python中怎么實(shí)現(xiàn)數(shù)據(jù)可視化了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI