python圖表可視化工具_比Excel制圖更強大,Python可視化工具Altair入門教程

原作者 Parul Pandey

曉查 編譯整理

量子位 出品 | 公眾號 QbitAI

數據轉化成更直觀的圖片,對于理解數據背后的真相很有幫助。如果你有這方面的需求,而且還在使用Python,那么強烈推薦你試一試Altair。

Altair是一個專為Python編寫的可視化軟件包,它能讓數據科學家更多地關注數據本身和其內在的聯系。

Altair由華盛頓大學的數據科學家Jake Vanderplas編寫,目前在GitHub上已經收獲超過3000星。

最近,Medium上一位小姐姐Parul Pandey分享了Altair的入門教程,希望對從事數據科學的用戶有幫助。量子位對主要內容進行了編譯整理。

使用教程

Parul以汽車數據為例,將一個汽車數據集“cars”載入到Altair中。

cars中包含汽車的生產年份、耗油量、原產國等9個方面的數據,后面將對這些內容進行可視化處理。

安裝和導入Altair軟件包

除了安裝Altair和它的依賴軟件外,還需要安裝其他前端工具,比如Jupyter Notebook、JupyterLab、Colab等等。

Parul小姐姐推薦安裝JupyterLab:

$ pip install -U altair vega_datasets jupyterlab

需要注意的是,由于Altair的教程文檔中還包含vega數據集,因此也需要一并安裝上。

接著在終端中輸入:jupyter lab,就能在你的瀏覽器中自動打開它啦。

在代碼開頭別忘了導入Altair:

import altair as alt

完成以上準備工作,我們就可以開始繪圖了

開始繪制圖表

Altair中的基本對象是Chart,它將數據框作為單個參數。你可以這樣定義它:chart = alt.Chart(cars)

Chart有三個基本方法:數據(data)、標記(mark)和編碼(encode),使用它們的格式如下:

alt.Chart(data).mark_point().encode(encoding_1='column_1',encoding_2='column_2',# etc.)

數據顧名思義,直接導入cars數據集即可。標記和編碼則決定著繪制圖表的樣式,下面著重介紹這兩部分。

標記可以讓用戶在圖中以不同形狀來表示數據點,比如使用實心點、空心圓、方塊等等。

如果我們只調用這個方法,那么所有的數據點都將重疊在一起:

這顯然是沒有意義的,還需要有編碼來指定圖像的具體內容。常用的編碼有:

x: x軸數值

y: y軸數值

color: 標記點顏色

opacity: 標記點的透明度

shape: 標記點的形狀

size: 標記點的大小

row: 按行分列圖片

column: 按列分列圖片

以汽車的耗油量為例,把所有汽車的數據繪制成一個一維散點圖,指定x軸為耗油量:alt.Chart(cars).mark_point().encode(x='Miles_per_Gallon')

但是使用mark_point()會讓所有標記點混雜在一起,為了讓圖像更清晰,可以替換成棒狀標記點mark_tick():

alt.Chart(cars).mark_tick().encode(x='Miles_per_Gallon')

以耗油量為X軸、馬力為Y軸,繪制所有汽車的分布,就得到一張二維圖像:alt.Chart(cars).mark_line().encode(x='Miles_per_Gallon',y='Horsepower')

給圖表上色

前面我們已經學會了繪制二維圖像,如果能給不同組的數據分配不同的顏色,就相當于給數據增加了第三個維度。

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

上面的圖中,第三個維度“原產國”是一個離散變量。

使用顏色刻度表,我們還能實現對連續變量的上色,比如在上圖中加入“加速度”維度,顏色越深表示加速度越大:alt.Chart(cars).mark_point().encode(x='Miles_per_Gallon',y='Horsepower',color='Acceleration')

數據的分類與匯總

上面的例子中,我們使用的主要是散點圖。實際上,Altair還能方便地對數據進行分類和匯總,繪制統計直方圖。

相比其他繪圖工具,Altair的特點在于不需要調用其他函數,而是直接在數軸上進行修改。

例如統計不同油耗區間的汽車數量,對X軸使用alt.X(),指定數據和間隔大小,對Y軸使用count()統計數量。

alt.Chart(cars).mark_bar().encode(x=alt.X('Miles_per_Gallon', bin=alt.Bin(maxbins=30)),y='count()')

為了分別表示出不同原產國汽車的油耗分布,前文提到的上色方法也能直方圖中使用,這樣就構成一幅分段的統計直方圖:alt.Chart(cars).mark_bar().encode(x=alt.X('Miles_per_Gallon', bin=alt.Bin(maxbins=30)),y='count()',color='Origin')

如果你覺得上圖還不夠直觀,那么可以用column將汽車按不同原產國分列成3張直方圖:

alt.Chart(cars).mark_bar().encode(x=alt.X('Miles_per_Gallon', bin=alt.Bin(maxbins=30)),y='count()',color='Origin',column='Origin')

交互

除了繪制基本圖像,Altair強大之處在于用戶可以與圖像進行交互,包括平移、縮放、選中某一塊數據等操作。

在繪制圖片的代碼后面,調用interactive()模塊,就能實現平移、縮放:

Altair還為創建交互式圖像提供了一個selection的API:

在選擇功能上,我們能做出一些更酷炫的高級功能,例如對選中的數據點進行統計,生成實時的直方圖。

疊加多個圖層

如果把前面的汽車耗油量按年度計算出平均值:alt.Chart(cars).mark_point().encode(x='Miles_per_Gallon',y='Horsepower',color='Acceleration')

在統計學上,我們還能定義平均值的置信區間,為了讓圖表更好看,可以分別列出三個不同產地汽車的耗油量平均值置信區間:

alt.Chart(cars).mark_area(opacity=0.3).encode(x=alt.X(‘Year’, timeUnit=’year’),y=alt.Y(‘ci0(Miles_per_Gallon)’, axis=alt.Axis(title=’Miles per Gallon’)),y2=’ci1(Miles_per_Gallon)’,color=’Origin’).properties(width=600)

最后我們可以用圖層API將平均值和置信區間兩幅圖疊加起來:spread = alt.Chart(cars).mark_area(opacity=0.3).encode(x=alt.X('Year', timeUnit='year'),y=alt.Y('ci0(Miles_per_Gallon)', axis=alt.Axis(title='Miles per Gallon')),y2='ci1(Miles_per_Gallon)',color='Origin').properties(width=800)lines = alt.Chart(cars).mark_line().encode(x=alt.X('Year', timeUnit='year'),y='mean(Miles_per_Gallon)',color='Origin').properties(width=800)spread + lines

更多內容

本文只是介紹了Altair的一些基本使用方法,遠遠不能涵蓋它所有的功能。如果需要了解更多,請參閱GitHub頁說明:

https://github.com/altair-viz/altair

教程原文:

https://medium.com/analytics-vidhya/exploratory-data-visualisation-with-altair-b8d85494795c

— 完 —

誠摯招聘

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270756.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270756.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270756.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

后端技術:SpringBoot配置熱加載工具(devtools)筆記

今天給大家介紹IDEA開發工具如何配置devtools熱加載工具。1、devtools原理介紹spring-boot-devtools是spring為開發者提供的熱加載工具包。主要原理是使用了兩個ClassLoader類加載器,一個Classloader加載那些不會改變的類(第三方Jar包)&#…

關于ios手機上傳圖片旋轉問題的解決

先占個坑,一會完善!! 轉載于:https://www.cnblogs.com/zhuyu/articles/5943400.html

服務器不能創建對象教務系統,[轉]解決強智教務系統非IE下無法創建對象錯誤...

最近要弄教務網的模擬登陸,但苦于教務網只兼容IE8以下的瀏覽器,不能用chrome強大的F12抓包就很煩,然后發現Fly俊大佬弄了一個相當強的插件啊。但是怕Fly俊大佬的博客失效,所以私自留了個檔。侵刪啊大佬~以下內容均為轉載學校教務系…

Java8對List<Integer>的求和

一般都是對對象對某個字段求和&#xff0c;對List<Object>中Object中的某個字段進行求和&#xff0c;就像這樣&#xff1a; 如果想要用流對List<Integer>進行求和&#xff0c;如下 long sum receiveTotalPriceList.stream().reduce(Integer::sum).orElse(0);

安裝python無法啟動_終端里為什么無法運行python?

1、首先確認自己電腦是否安裝了python&#xff0c;如果不確定可以在終端直接輸入python&#xff0c;出現以下界面說明已經正確安裝&#xff1a;2、如果已經安裝了python&#xff0c;但是在終端還是顯示未安裝&#xff0c;很有可能是沒有配置環境變量。環境變量的配置步驟如下&a…

電腦軟件:主流的壓縮軟件對比,看完你就會選擇了

目錄 1、WinRAR 2、360壓縮 3、7-ZIP 4、Bandizip 5、好壓/快壓 今天小編給大家介紹一下主流的壓縮軟件&#xff0c;看完你就會選擇了&#xff01; 目前主流的壓縮軟件主要有WinRAR、360壓縮、7-ZIP、Bandzip、好壓。現在給大家逐個介紹一下&#xff0c;每款壓縮軟件的特。 1、…

怎么測試ajax get請求,為什么我的AJAX在運行測試時請求dev中的PUT請求,但請求了GET請求?...

在我的Rails應用程序中&#xff0c;我制作了一個AJAX PUT請求(使用Coffeescript)&#xff0c;該請求在我的開發環境中正常工作。當我檢查按鈕&#xff0c;點擊后&#xff0c;會觸發使用Firefox的AJAX請求時&#xff0c;它看起來是這樣的&#xff1a;為什么我的AJAX在運行測試時…

控制DIV內容滾動的方法,實現不用拖滾動條就可以看到最新消息

三種控制DIV內容滾動的方法&#xff1a; 本人qq群也有許多的技術文檔&#xff0c;希望可以為你提供一些幫助(非技術的勿加)。 QQ群&#xff1a; 281442983 (點擊鏈接加入群&#xff1a;http://jq.qq.com/?_wv1027&k29LoD19) 方法一&#xff1a;使用錨標記要滾動到的位置…

python excel模板 插件_python腳本——自動推送txt,EXCEL等文件模板

#!/usr/bin/python# -*- coding: utf-8 -*- #此處支持中文字符一定要放在前兩行&#xff0c;置后的話不生效&#xff0c;腳本報錯#!/usr/bin/env pythonimport smtplibfrom email.mime.text import MIMETextimport stringimport timeimport datetimeHOST "mail.xxxxxx.co…

電腦軟件:推薦10款實用的辦公效率神器

目錄 1.Everything 搜索神器 2.IDM 下載器 3.Dism 電腦維護工具 4.Captura 錄屏神器 5.Hourglass 倒計時軟件 6.Ditto剪切板增強工具 7.Snipaste 截圖神器 8.ScreenToGif GIF動態圖片錄制軟件 9.QuickLook文檔查看工具 10.processlasso 任務管理 1.Everything 搜索神器 Everyth…

財務系統專用服務器中標公告,東南大學財務處服務器存儲-招標辦公室.doc

東南大學財務處服務器存儲-招標辦公室東南大學財務處服務器、存儲、防雷系統采購招標公告項目名稱&#xff1a;標段一&#xff1a;一卡通數據庫生產服務器、一卡通數據庫容災服務器標段二&#xff1a;一卡通系統刀片服務器標段三&#xff1a;一卡通存儲設備標段四&#xff1a;一…

Finereport集群配置

增加配置文件cluster.xml 將配置包resource文件夾下的cluster.xml打開&#xff0c;如果沒有cluster.xml&#xff0c;則新建一個&#xff0c;基本內容如下&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <ClusterConfig useCluster"t…

deepin桌面為什么那么卡_deepin因NVIDIA顯卡造成開機啟動問題:卡在開機logo界面+進入桌面鼠標一直轉圈...

寫在前面&#xff1a;前兩天為了做人工智能的作業&#xff0c;給自己和室友裝了一個deepin15.7的系統(我和室友電腦均是NVIDIA顯卡)&#xff0c;想著自己裝好之后不會出現什么問題&#xff0c;結果錯誤還是如期而至&#xff0c;無奈&#xff0c;只能自己親自想辦法&#xff0c;…

數據庫:MySQL、SqlServer、Oracle對比

一、MySQL 優點&#xff1a; 軟件體積小、速度快、免費開源&#xff1b; 跨平臺&#xff1b; 因為是開源數據庫&#xff0c;提供的接口支持多種語言連接操作 &#xff1b; MySQL的核心程序是采用完全的多線程編程。并且是輕量級的進程&#xff0c;它可以靈活地為用戶提供服務…

php 數據庫類

<?php /*** 對Yii2數據封裝* author nikeyoufumama.com* date 2017-03-08* 抽象類不能被實例化* eg1: selectuse common\models as b_model;$users_model b_model\FactoryModel::users();$users_model->setPk(1);$users_model->setFields(id,name,age,sex);$result …

軟件:分享9款實用電腦軟件,值得看一看

目錄 01.ArcTime 02.Luminar 4 03.嗨格式數據恢復大師 04. iTools 05.皮皮直連 06.Kodi 07. PhotoZoom 08.AnyDesk 09.射手影音 今天給大家分享9款實用電腦軟件&#xff0c;值得看一看。 01.ArcTime 下載地址&#xff1a;https://arctime.org/ 這是一款特別好用的字幕制作軟件。…

怎么轉化大小寫_亞馬遜search term被限制,Search Terms只能寫一行怎么辦?

search term簡稱ST&#xff0c; 也叫做亞馬遜的關鍵字&#xff0c;由亞馬遜為賣家提供的&#xff0c;除了Title標題&#xff0c;Description描述之外的關鍵字拓展功能&#xff0c;正確的書寫5行描述可以提曝光&#xff0c;流量&#xff0c;和轉化.關鍵字建議包含了客戶的具體需…