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

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

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

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

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-21 10:43 ? 次閱讀

Altair 是一個(gè)基于Jupyter Notebook的強(qiáng)大可視化庫(kù)。它提供了強(qiáng)大而簡(jiǎn)潔的可視化語(yǔ)法,使我們能夠快速構(gòu)建各種統(tǒng)計(jì)可視化圖表。

通過(guò)下面10行代碼,你就能創(chuàng)建一個(gè)可交互的散點(diǎn)圖:

import altair as alt

from vega_datasets import data
cars = data.cars()

alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
).interactive()

圖片

1.準(zhǔn)備

開(kāi)始之前,你要確保Pythonpip已經(jīng)成功安裝在電腦上,如果沒(méi)有,可以訪問(wèn)這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。

請(qǐng)選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開(kāi) Cmd (開(kāi)始-運(yùn)行-CMD)。
  2. MacOS 環(huán)境 打開(kāi) Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install altair vega_datasets

2.基本使用

Altair 中的數(shù)據(jù)是圍繞 Pandas Dataframe 構(gòu)建的。

我們首先導(dǎo)入 Pandas 并創(chuàng)建一個(gè)簡(jiǎn)單的 DataFrame 以進(jìn)行可視化,a 列中有一個(gè)分類變量,b 列有一個(gè)數(shù)值變量:

import pandas as pd
data = pd.DataFrame({'a': list('CCCDDDEEE'),
                     'b': [2, 7, 4, 1, 2, 6, 8, 4, 7]})

Altair 中的基本對(duì)象是Chart,它將上述的數(shù)據(jù)作為單個(gè)參數(shù)

import altair as alt
chart = alt.Chart(data)

到目前為止,我們已經(jīng)定義了 Chart 對(duì)象,但是我們還沒(méi)有告訴圖表對(duì)數(shù)據(jù)任何事情。接下來(lái)會(huì)出現(xiàn)。

有了這個(gè)圖表對(duì)象,我們現(xiàn)在可以指定我們希望如何可視化數(shù)據(jù),比如作為點(diǎn):

alt.Chart(data).mark_point()

然后對(duì)數(shù)據(jù)進(jìn)行編碼,比如指定 a 列為x,b列為y:

alt.Chart(data).mark_point().encode(
    x='a', y='b'
)

效果如下:

圖片

如果你希望聚合求得某列得平均值,你還可以這么做:

alt.Chart(data).mark_point().encode(
    x='a',
    y='average(b)'
)

圖片

如果你希望使用柱狀圖,只需要把mark_point改為mark_bar:

alt.Chart(data).mark_bar().encode(
    x='a',
    y='average(b)'
)

圖片

還可以獲得水平柱狀圖,我們只需要把x和y對(duì)調(diào)一下:

alt.Chart(data).mark_bar().encode(
    y='a',
    x='average(b)'
)

除了點(diǎn)狀圖和柱狀圖,Altair 還支持幾十種圖表類型:

圖片

圖片

圖片

圖片

更多的圖表類型請(qǐng)?jiān)诠倬W(wǎng)查看:

https://altair-viz.github.io/gallery/index.html

3.高級(jí)使用

你可以給圖表自定義你喜歡的顏色和對(duì)應(yīng)的橫坐標(biāo)縱坐標(biāo)標(biāo)題:

alt.Chart(data).mark_bar(color='firebrick').encode(
    alt.Y('a', title='category'),
    alt.X('average(b)', title='avg(b) by category')
)

圖片

你還可以將圖表保存為HTML:

chart = alt.Chart(data).mark_bar().encode(
    x='a',
    y='average(b)',
)
chart.save('chart.html')

如果你希望能夠通過(guò)區(qū)間選擇數(shù)據(jù)點(diǎn)并計(jì)數(shù),你可以這么做:

import altair as alt
from vega_datasets import data

source = data.cars()

brush = alt.selection(type='interval')

points = alt.Chart(source).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color=alt.condition(brush, 'Origin', alt.value('lightgray'))
).add_selection(
    brush
)

bars = alt.Chart(source).mark_bar().encode(
    y='Origin',
    color='Origin',
    x='count(Origin)'
).transform_filter(
    brush
)

points & bars

圖片

跟牛逼的是,Altair還可以做多圖表聯(lián)動(dòng):

# 公眾號(hào):Python實(shí)用寶典 整合
import altair as alt
from vega_datasets import data

cars = data.cars.url
brush = alt.selection_interval()

chart = alt.Chart(cars).mark_point().encode(
    y='Horsepower:Q',
    color=alt.condition(brush, 'Origin:N', alt.value('lightgray'))
).properties(
    width=250,
    height=250
).add_selection(
    brush
)

chart.encode(x='Acceleration:Q') | chart.encode(x='Miles_per_Gallon:Q')

左邊圈起來(lái)的 Acceleration 數(shù)據(jù)點(diǎn),右邊會(huì)對(duì)應(yīng)顯示其 Miles_per_Gallon 數(shù)據(jù)點(diǎn):

圖片

除了這些,Altair還有更多的交互功能,比如選擇框拖動(dòng)、比例綁定、自動(dòng)響應(yīng)、表達(dá)式選擇等等。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 數(shù)據(jù)分析
    +關(guān)注

    關(guān)注

    2

    文章

    1449

    瀏覽量

    34060
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84690
  • Altair
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    10007
  • 數(shù)據(jù)可視化

    關(guān)注

    0

    文章

    466

    瀏覽量

    10265
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    困難的問(wèn)題,提高系統(tǒng)的構(gòu)件速度,降低構(gòu)件成本。所以本系統(tǒng)采用SOA 架構(gòu)。采用C#,.NET 開(kāi)發(fā),企業(yè)數(shù)據(jù)庫(kù)采用ORACLE數(shù)據(jù)庫(kù)管理,利用GDI+、OWC等繪圖工具和Dundas數(shù)據(jù)可視化
    發(fā)表于 11-30 19:55

    個(gè)數(shù)據(jù)可視化項(xiàng)目

    2017年十大最佳數(shù)據(jù)可視化項(xiàng)目
    發(fā)表于 08-22 09:35

    python數(shù)據(jù)可視化的方法和代碼

    Python數(shù)據(jù)可視化匯總
    發(fā)表于 10-14 14:59

    Python數(shù)據(jù)可視化專家的七個(gè)秘密

    分享 Python數(shù)據(jù)可視化專家的七個(gè)秘密
    發(fā)表于 05-15 06:43

    15個(gè)玩轉(zhuǎn)數(shù)據(jù)可視化的技巧

    高手總結(jié)的15個(gè)技巧,讓你輕松玩轉(zhuǎn)數(shù)據(jù)可視化!
    發(fā)表于 05-22 09:59

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

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

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

    ?! ∪缭O(shè)備出現(xiàn)問(wèn)題,可以更加直觀的通過(guò)三維可視化運(yùn)維系統(tǒng)發(fā)現(xiàn),因?yàn)闀?huì)在系統(tǒng)內(nèi)出現(xiàn)數(shù)據(jù)異常,甚至可以通過(guò)設(shè)置相對(duì)的閾值來(lái)進(jìn)行提醒,使得設(shè)備出現(xiàn)問(wèn)題后能夠第時(shí)間發(fā)現(xiàn),減少維修時(shí)間和開(kāi)支。提升設(shè)備的工作效率
    發(fā)表于 12-02 11:52

    般圖表做不了的分析,BI數(shù)據(jù)可視化圖表可以

    隨著業(yè)務(wù)變化,分析場(chǎng)景細(xì)分,出現(xiàn)了越來(lái)越多的般圖表做不了的分析,比如分析顧客滿意度,又比如分析展示運(yùn)動(dòng)軌跡、多項(xiàng)目進(jìn)程等。面對(duì)這些分析需求,我們通常會(huì)采用數(shù)據(jù)可視化工具上的專用可視化
    發(fā)表于 01-15 10:22

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

    說(shuō)說(shuō)常見(jiàn)的幾種可視化、信息可視化信息可視化就是對(duì)抽象數(shù)據(jù)進(jìn)行直觀視覺(jué)呈現(xiàn)的研究,抽象數(shù)據(jù)既包含
    發(fā)表于 07-12 07:49

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

    ,通過(guò)點(diǎn)擊BI數(shù)據(jù)可視化報(bào)表設(shè)計(jì)頁(yè)上方的【+】,點(diǎn)擊【容器】或【選項(xiàng)卡容器】即可應(yīng)用。容器:同一個(gè)平面上放多個(gè)數(shù)據(jù)可視化圖表;選項(xiàng)卡容器:同
    發(fā)表于 03-15 17:10

    使用Python可視化數(shù)據(jù),機(jī)器人開(kāi)發(fā)編程

    機(jī)器學(xué)習(xí)開(kāi)發(fā),與Mail.Ru Search數(shù)據(jù)分析負(fù)責(zé)人Egor Polusmak和Mail.Ru Group數(shù)據(jù)科學(xué)家Yury Kashnitsky起探索如何使用Python可視化
    的頭像 發(fā)表于 03-15 16:56 ?8989次閱讀

    數(shù)據(jù)可視化的常用技術(shù)和并行與原位可視化方法分析

    數(shù)據(jù)可視化就是將抽象的“數(shù)據(jù)”以可見(jiàn)的形式表現(xiàn)出來(lái),幫助人理解數(shù)據(jù)。大數(shù)據(jù)可視化相對(duì)傳統(tǒng)的
    的頭像 發(fā)表于 04-17 16:51 ?6432次閱讀

    Charts.css是用于數(shù)據(jù)可視化的新的開(kāi)源框架

    【導(dǎo)語(yǔ)】 :Charts.css 是用于數(shù)據(jù)可視化的開(kāi)源 CSS 框架,幫助用戶理解數(shù)據(jù),幫助開(kāi)發(fā)人員使用簡(jiǎn)單的 CSS 類將數(shù)據(jù)轉(zhuǎn)換為漂亮
    的頭像 發(fā)表于 04-13 10:48 ?1977次閱讀

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

    分析和可視化: pandas:個(gè)提供高性能、易用數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具的
    的頭像 發(fā)表于 06-21 17:08 ?1401次閱讀
    使用Python來(lái)收集、處理和<b class='flag-5'>可視化</b>人口<b class='flag-5'>數(shù)據(jù)</b>

    個(gè)非常棒的可視化庫(kù):PyG2Plot

    給大家推薦的這個(gè)開(kāi)源項(xiàng)目是個(gè)非常棒的可視化庫(kù) -- PyG2Plot 。 PyG2Plot 可視化 這個(gè)Python
    的頭像 發(fā)表于 10-21 11:32 ?1229次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>非常棒的<b class='flag-5'>可視化</b><b class='flag-5'>庫(kù)</b>:PyG2Plot