在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

還在用Matplotlib? 又一可視化神器Altair登場(chǎng)

電子工程師 ? 來(lái)源:lq ? 2019-05-11 09:43 ? 次閱讀

【導(dǎo)語(yǔ)】如何將我們的數(shù)據(jù)以更好的形勢(shì)呈現(xiàn)出來(lái)?擅長(zhǎng)不同編程語(yǔ)言的程序員會(huì)選擇各自技術(shù)范疇內(nèi)成熟、好用的工具包,比如 R 語(yǔ)言的開(kāi)發(fā)者最常使用的是 ggplot2,但它不支持 Python;以前 Python 語(yǔ)言的開(kāi)發(fā)者使用最多的是 matplotlib,一個(gè)很強(qiáng)大的可視化庫(kù),不過(guò)它的局限也非常嚴(yán)重,制作交互式圖表也是一件難事。今天要給大家推薦一個(gè)新的工具——Altair,一個(gè) Vega-Lite 的包裝器,也許這些概念你都還不沒(méi)了解過(guò),接下來(lái)我們就在下面的文章為大家作介紹。

ggplot2 是 R 的作圖工具包,可以使用非常簡(jiǎn)單的語(yǔ)句實(shí)現(xiàn)非常復(fù)雜漂亮的效果。然而不幸的是,ggplot2 并不支持 Python。

在 Python 中,我們常使用 matplotlib 用于可視化圖形,matplotlib是一個(gè)很強(qiáng)大的可視化庫(kù),但是它有著很?chē)?yán)重的局限性。matplotlib 的使用非常靈活,這可以說(shuō)的上是它的一個(gè)優(yōu)點(diǎn),但是當(dāng)我們想為圖形加一個(gè)小小的功能的時(shí)候,它的繁瑣操作會(huì)讓我們舉步維艱。除此之外,matplotlib 的兩種界面(面向?qū)ο蠼缑妗⒒跔顟B(tài)的界面)令人相當(dāng)困惑,對(duì)于新手很不友好。即使對(duì)于多年使用 matplotlib 的人而言,他們也無(wú)法完全掌握這些操作。最后不得不說(shuō)的是,用 matplotlib 制作交互式圖表是一件相當(dāng)困難的事情。

Altair 和圖形語(yǔ)法

Altair 是 Vega-Lite 的包裝器。Vega-Lite 是 JavaScript 的高級(jí)可視化庫(kù),它最最重要的特點(diǎn)是,它的API是基于圖形語(yǔ)法的。

什么是圖形語(yǔ)法呢?圖形語(yǔ)法聽(tīng)起來(lái)有點(diǎn)像一個(gè)抽象的功能,值得注意的是,它是 Altair 和其他 Python 可視化庫(kù)之間最主要的區(qū)別。Altair 符合我們?nèi)祟?lèi)可視化數(shù)據(jù)的方式和習(xí)慣,Altair 只需要三個(gè)主要的參數(shù):

Mark.數(shù)據(jù)在圖形中的表達(dá)形式。點(diǎn)、線(xiàn)、柱狀還是圓圈?

Channels.決定什么數(shù)據(jù)應(yīng)該作為x軸,什么作為y軸;圖形中數(shù)據(jù)標(biāo)記的大小和顏色。

Encoding.指定數(shù)據(jù)變量類(lèi)型。日期變量、量化變量還是類(lèi)別變量?

基于以上三個(gè)參數(shù),Altair 將會(huì)選擇合理的默認(rèn)值來(lái)顯示我們的數(shù)據(jù)。

Altair 最讓人著迷的地方是,它能夠合理的選擇顏色。如果我們?cè)?Encoding 中指定變量類(lèi)型為量化變量,那么 Altair 將會(huì)使用連續(xù)的色標(biāo)來(lái)著色(默認(rèn)為 淺藍(lán)色-藍(lán)色-深藍(lán)色)。如果變量類(lèi)型指定為類(lèi)別變量,那么 Altair 會(huì)為每個(gè)類(lèi)別賦予不同的顏色。(例如 紅色,黃色,藍(lán)色)

補(bǔ)充:Vega-Lite 有兩種類(lèi)型的類(lèi)別變量:名義變量和序數(shù)變量。名義變量的集合中,各元素的排序階數(shù)沒(méi)有任何實(shí)際意義,例如大陸集合是歐洲,亞洲,非洲,美洲,大洋洲,他們的次序沒(méi)有任何數(shù)值上的意義;序數(shù)變量的集合中,各元素的排序階數(shù)是有實(shí)際意義的,例如亞馬遜的評(píng)論可以是一星,二星,三星,四星或五星,星級(jí)的高低次序是由意義的。

讓我們來(lái)看一個(gè)具體的例子,如下所示,我們組織了6個(gè)國(guó)家和它們所對(duì)應(yīng)的人口數(shù)據(jù),除此之外,還有相應(yīng)的收入數(shù)據(jù):

import pandas as pdimport altair as altdata = pd.DataFrame({'country_id': [1, 2, 3, 4, 5, 6], 'population': [1, 100, 200, 300, 400, 500],'income':[1000,50,200,300,200,150]})

首先我們繪制每個(gè)國(guó)家的人口數(shù)據(jù):

首先我們繪制每個(gè)國(guó)家的人口數(shù)據(jù):"""As we mentioned before, we need to define 3 parameters: 1. Mark: We do this by using "mark_circle". 2. Channel: We only define an x-axis and we map it to the population. 3. Encodings: We define both variables as quantitative by using :Q after the column name"""categorical_chart = alt.Chart(data).mark_circle(size=200).encode( x='population:Q', color='country_id:Q')

從上圖可以看出,Altair 選擇了連續(xù)色標(biāo),在本例中這是沒(méi)有意義的。問(wèn)題的根源在于,我們將 country_id 定義為量化變量,而實(shí)際上,它應(yīng)該是一個(gè)類(lèi)別變量,修改代碼如下:

# We changed color='country_id:Q' to color='country_id:N' to indicate it is a nominal variablecategorical_chart = alt.Chart(data).mark_circle(size=200).encode( x='population:Q', color='country_id:N')

從圖中可以看到,每個(gè)國(guó)家都用了不同的顏色表示。我們僅僅改變了變量 country_id 的編碼,即用 N (Nominal 名義變量)替換了 Q (Quantitative 量化變量)。這點(diǎn)小小的改變就足以使得 Altair 明白,它不該使用連續(xù)色標(biāo),而是使用獨(dú)立色標(biāo)。

圖表的擴(kuò)展

Altair 的另一個(gè)美妙之處就是,我們可以從現(xiàn)有的圖表中創(chuàng)建新的圖表。例如,我們現(xiàn)在要加入新的數(shù)據(jù) income,我們唯一需要做的就是告訴 Altair:用 income 作為y軸,代碼如下所示:

categorical_chart = alt.Chart(data).mark_circle(size=200).encode( x='population:Q', y='income:Q', color='country_id:N')

如果想添加數(shù)據(jù)提示的功能(tooltip,鼠標(biāo)懸停在數(shù)據(jù)上時(shí),會(huì)顯示該數(shù)據(jù)的詳細(xì)信息),只需要增加一行代碼:

categorical_chart = alt.Chart(data).mark_circle(size=200).encode( x='population:Q', y='income:Q', color='country_id:N', tooltip=['country_id', 'population', 'income']))

Altair 的迷人之處

在接觸 Altair 之前,我們常常持有一種的懷疑態(tài)度:這些可視化工具的包裝器真的好用嗎?通常來(lái)講,包裝是一個(gè)壞主意,就拿 ggplot2 來(lái)說(shuō),它的很多包裝器都沒(méi)有被 Python 社區(qū)廣泛采用。這些包裝器很難創(chuàng)建功能完整的版本,而且它們的更新也常常不及時(shí)。然而 Altair 卻不一樣:

Altair 的 API 非常全面。這就要感謝 Jake Vanderplas(JVP)偉大的設(shè)計(jì),凡是 Vega-Lite 能夠做的,Python 就可以做。這是因?yàn)?Altair 只是一個(gè) Python API,它能夠生成有效的 Vega-Lite jsons,而 API 是以編程的方式生成的,因此在 Vega-Lite 的新版本發(fā)布后,Altair 能夠全面而且快速的更新,這一切都顯得如此美妙。

直觀且具有符合 Python 習(xí)慣的接口。就像使用其他的 Python 庫(kù)一樣,我們需要一些時(shí)間來(lái)習(xí)慣。但 Altair 的精彩之處在于,它所有的設(shè)置都符合人類(lèi)的推理方式,這樣我們就能很快的了解它內(nèi)部的運(yùn)作原理,并且因此而變得高效。

互動(dòng)性強(qiáng)。Vega-Lite 交互性非常強(qiáng)大,我們不僅能夠使用一行代碼來(lái)添加 tooltips,還能將圖的選擇區(qū)與另一個(gè)可視化圖關(guān)聯(lián)。

高度靈活性。Altair的marks可以理解為圖表構(gòu)建中的模塊。如下圖所示,我們用圓圈標(biāo)記、線(xiàn)標(biāo)記和文本標(biāo)記的組合來(lái)構(gòu)建一個(gè)圖。最終的代碼可讀性強(qiáng),而且易于修改,這對(duì)于 matplotlib 來(lái)說(shuō)是很難的。

有點(diǎn)很多,同時(shí)也存在一些不足

Altair 的主要缺點(diǎn)

沒(méi)有 3d 繪圖。如果3d可視化對(duì)您的工作很重要,那么 Altair 不太適合您。

Altair 不是 D3.js。就像許多的高級(jí)可視化框架一樣,Altair 也不是 100% 可定制的,在某些時(shí)候,我們會(huì)遇到一些無(wú)法用Altair制作的圖表。(注:D3.js 是一個(gè) JavaScript 庫(kù),用于在 Web 瀏覽器中生成動(dòng)態(tài)的交互式數(shù)據(jù)可視化。 它利用了廣泛實(shí)施的 SVG,HTML5 和 CSS 標(biāo)準(zhǔn),具有高度的可定制性)

統(tǒng)計(jì)支持較差。如果需要對(duì)數(shù)據(jù)進(jìn)行線(xiàn)性回歸的話(huà),還是推薦用 Seaborn 來(lái)進(jìn)行快速可視化。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 可視化
    +關(guān)注

    關(guān)注

    1

    文章

    1250

    瀏覽量

    21683
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86343
  • Altair
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    10082

原文標(biāo)題:還在用Matplotlib? 又一可視化神器Altair登場(chǎng) | 技術(shù)頭條

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    可視化MES系統(tǒng)軟件

    是關(guān)鍵部分,可視化管理可幫助企業(yè)更直觀的挖掘隱藏的數(shù)據(jù)并有效管理企業(yè)。“制造物聯(lián)”是MES系統(tǒng)軟件更高階段的必然表現(xiàn)形式。“制造物聯(lián)”與MES系統(tǒng)軟件的側(cè)重:(1)MES側(cè)重生產(chǎn)業(yè)務(wù)管理,制造物聯(lián)更關(guān)注
    發(fā)表于 11-30 19:55

    matplotlib動(dòng)態(tài)演示深度學(xué)習(xí)之tensorflow將神經(jīng)網(wǎng)絡(luò)系統(tǒng)自動(dòng)學(xué)習(xí)散點(diǎn)(二次函數(shù)+noise)并優(yōu)化修正并且將輸出結(jié)果可視化

    TF之NN:matplotlib動(dòng)態(tài)演示深度學(xué)習(xí)之tensorflow將神經(jīng)網(wǎng)絡(luò)系統(tǒng)自動(dòng)學(xué)習(xí)散點(diǎn)(二次函數(shù)+noise)并優(yōu)化修正并且將輸出結(jié)果可視化
    發(fā)表于 12-21 10:48

    數(shù)據(jù)可視化之Python-matplotlib概述

    數(shù)據(jù)可視化(二):Python-matplotlib
    發(fā)表于 07-22 14:58

    如何把AD中非可視化區(qū)域物件移到可視化區(qū)域?

    AD中非可視化區(qū)域物件怎么移到可視化區(qū)域???
    發(fā)表于 09-10 05:36

    基于STM的可視化門(mén)禁系統(tǒng)

    基于STM的可視化門(mén)禁系統(tǒng)
    發(fā)表于 03-07 09:49

    基于stm的可視化門(mén)禁系統(tǒng)

    基于stm的可視化門(mén)禁系統(tǒng)
    發(fā)表于 03-11 09:23

    Python數(shù)據(jù)可視化

    Python數(shù)據(jù)可視化:網(wǎng)易云音樂(lè)歌單
    發(fā)表于 07-19 08:30

    三維可視化的應(yīng)用和優(yōu)勢(shì)

    ,為此三維可視化運(yùn)維系統(tǒng)登場(chǎng)了。  三維可視化的應(yīng)用  宏觀場(chǎng)景可視化:在特定的環(huán)境中對(duì)隨著時(shí)間推移而不斷變化的目標(biāo)實(shí)體進(jìn)行檢測(cè),可以直觀、靈活、逼真的展示所處區(qū)域的情景和環(huán)境,可以快
    發(fā)表于 12-02 11:52

    常見(jiàn)的幾種可視化介紹

    說(shuō)說(shuō)常見(jiàn)的幾種可視化、信息可視化信息可視化就是對(duì)抽象數(shù)據(jù)進(jìn)行直觀視覺(jué)呈現(xiàn)的研究,抽象數(shù)據(jù)既包含數(shù)值數(shù)據(jù),也包含非數(shù)值數(shù)據(jù)如文本信息、地圖信息等,它們可通過(guò)利用圖形圖像處理、人機(jī)交互、
    發(fā)表于 07-12 07:49

    經(jīng)驗(yàn)分享|BI數(shù)據(jù)可視化報(bào)表布局——容器

    容器功能是種用于數(shù)據(jù)可視化圖表排版的功能,主要作用對(duì)圖表進(jìn)行有效的布局調(diào)整,或者用于巧妙在同地方安排多個(gè)不同類(lèi)型的數(shù)據(jù)可視化圖表,供使用者點(diǎn)擊切換瀏覽。目前,在奧威BI軟件上
    發(fā)表于 03-15 17:10

    keras可視化介紹

    keras可視化可以幫助我們直觀的查看所搭建的模型拓?fù)浣Y(jié)構(gòu),以及模型的訓(xùn)練的過(guò)程,方便我們優(yōu)化模型。 模型可視化又分為模型拓?fù)浣Y(jié)構(gòu)可視化以及訓(xùn)練過(guò)程可視化。 以上
    發(fā)表于 08-18 07:53

    可視化技術(shù)有哪些

    完整的地理空間信息可視化概念主要包括科學(xué)計(jì)算可視化、數(shù)據(jù)可視化和信息可視化可視化技術(shù)作為解釋大量數(shù)據(jù)最有效的手段而率先被科學(xué)與工程計(jì)算領(lǐng)域
    發(fā)表于 02-05 09:09 ?3891次閱讀

    相比Matplotlib 可視化神器Altair登場(chǎng)

    語(yǔ)言的開(kāi)發(fā)者使用最多的是 matplotlib個(gè)很強(qiáng)大的可視化庫(kù),不過(guò)它的局限也非常嚴(yán)重,制作交互式圖表也是件難事。
    的頭像 發(fā)表于 05-23 14:49 ?3154次閱讀
    相比<b class='flag-5'>Matplotlib</b> <b class='flag-5'>可視化</b><b class='flag-5'>神器</b><b class='flag-5'>Altair</b><b class='flag-5'>登場(chǎng)</b>

    使用Python來(lái)收集、處理和可視化人口數(shù)據(jù)

    數(shù)據(jù)分析和可視化: pandas:個(gè)提供高性能、易用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具的庫(kù)。 requests:個(gè)簡(jiǎn)潔、優(yōu)雅的HTTP庫(kù),用于發(fā)送網(wǎng)絡(luò)請(qǐng)求和獲取數(shù)據(jù)。 matplotlib
    的頭像 發(fā)表于 06-21 17:08 ?1846次閱讀
    使用Python來(lái)收集、處理和<b class='flag-5'>可視化</b>人口數(shù)據(jù)

    Altair個(gè)漂亮易用的數(shù)據(jù)可視化庫(kù)

    Altair個(gè)基于Jupyter Notebook的強(qiáng)大可視化庫(kù)。它提供了強(qiáng)大而簡(jiǎn)潔的可視化語(yǔ)法,使我們能夠快速構(gòu)建各種統(tǒng)計(jì)可視化圖表
    的頭像 發(fā)表于 10-21 10:43 ?1216次閱讀
    <b class='flag-5'>Altair</b>:<b class='flag-5'>一</b>個(gè)漂亮易用的數(shù)據(jù)<b class='flag-5'>可視化</b>庫(kù)
    主站蜘蛛池模板: 一区在线视频 | 亚洲香蕉国产高清在线播放 | 亚洲色图日韩 | 免费色网址 | 成人女人a毛片在线看 | 两人性潮高免费视频看 | 亚洲天堂首页 | 手机看片国产免费永久 | 综合伊人 | 国产农村乱色xxxx | 看黄a大片 免费 | 国产成人综合欧美精品久久 | 欧美三级影院 | 一级特黄色毛片免费看 | 一级片在线免费 | 怡红院色视频在线 | av天天看 | 色天天综合久久久久综合片 | 国产农村妇女毛片精品久久久 | 被公侵犯肉体中文字幕一区二区 | jlzzjlzz欧美大全 | 日本大片免费一级 | 天堂资源在线www中文 | 婷婷丁香四月 | 天天射美女| 中国农村一级片 | 欧美网站黄 | 狠狠色丁香婷婷第六色孕妇 | 日韩毛片一级 | 一区二区三区四区免费视频 | 色妇网| 欧美爆插 | 在线免费视频手机版 | 久久激情五月 | 国产美女视频一区二区三区 | 影院成人区精品一区二区婷婷丽春院影视 | 国产免费久久精品 | 欧美a区| 操操操插插插 | 爱爱帝国亚洲一区二区三区 | 亚洲综合激情另类专区 |