如何在Python中使用Altair繪製密度圖?
Altair是Python中的一種統計視覺化庫。該庫基於vega和vega-lite javascript庫。此外,我們可以在Python中以密度圖的形式視覺化資料分佈。無論我們需要比較不同組之間的變數分佈,還是需要視覺化分佈形狀,這些圖都非常有用。密度圖的有用應用,例如視覺化資料形狀、異常值檢測、比較分佈和模型選擇。本文藉助Python程式碼演示了密度圖。為了更好地理解,我們考慮以下示例,其中包含所有步驟。
示例1:使用Python中的Altair庫繪製密度圖。
查詢使用者的當前位置並在HTML頁面上顯示位置座標。
必要的步驟及程式碼解釋
步驟1:首先,匯入必要的庫
import altair as altr import pandas as pd
步驟2:載入資料
在本例中,使用的是“titanic_data”,其中包含泰坦尼克號乘客的所有資訊。
步驟3:建立一個圖表物件
Chart = altr.chart(titanic_data)
步驟4:轉換資料。
使用‘transform_density’方法計算變數的密度估計。
步驟5:新增區域分界線。在建立區域圖時,我們使用‘mark_area’方法。
步驟6:使用‘encode’方法將需要繪製的所有變數編碼到x軸上。變數需要對映到x軸。
步驟7:使用‘encode’方法將需要繪製的密度編碼到y軸上。密度變數需要對映到y軸。
步驟8:使用‘encode’方法和scale引數對映顏色0和1,對圖中需要的顏色變數進行編碼。變數需要對映到圖的顏色。
步驟9:包含工具提示資訊,工具提示是一個彈出框,當用戶將滑鼠懸停在圖表或圖形上的資料點上時出現。
步驟10:設定圖表的屬性。‘Properties’方法用於設定圖表的標題和大小。
步驟11:顯示圖表。為了顯示圖表,這裡使用了display方法。
使用Jupyter Notebook的Python示例程式碼
下面給出了經過測試的程式碼,它使用Python中的Altair生成泰坦尼克號旅客年齡分佈的密度圖,並按生存狀態分組。
示例
import altair as altr
import panda as pd
titanic_data = pd.read_csv("https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/stuff/titanic.csv")
# Generate the density plot
chart = altr.Chart(titanic_data).transform_density(
density='Age',
as_=['Age', 'density'],
groupby=['Survived'],
extent=[0, 100]
).mark_area(orient='horizontal', opacity=0.5).encode(
x=altr.X('Age:Q', title='Age'),
y=altr.Y('density:Q', title='Density'),
color=altr.Color('Survived:N', scale=altr.Scale(domain=[0, 1], range=['red', 'blue']),
title='Survived'),
tooltip=['Survived:N', 'Age:Q', 'density:Q']
).properties(title='Age Density Plot of Titanic Travellers', width=600, height=300)
# Render the chart
chart.display()
chart.show()
這裡將要描述的不同方法的主要功能已在此程式碼中使用。
‘transform_density’:這裡使用‘transform_density’方法來計算兩個變數(例如‘age’和‘survived’變數)的密度估計。
transform_density接受幾個引數,例如:
‘density’是我們可以計算密度估計的變數。這裡它是‘Age’。
‘as_’是一個包含兩個字串的列表,指定輸出變數名稱(Age,density)。
‘groupby’是一個包含兩個字串的列表,指定資料組 (‘Survived’)。
‘extent’包含一個值列表,表示密度圖的值範圍。範圍是[0,100],換句話說,這個密度將計算0到100歲年齡段的年齡。
計算每個‘survived’值的‘Age’密度後,可以比較兩組年齡分佈的值,並觀察是否存在明顯的差異。最終生成的密度圖說明了x軸和y軸上兩組旅客的年齡值,以及單個旅客組的不同圖。
檢視結果 - 示例
要檢視結果,請在瀏覽器中開啟Vega編輯器。您可以看到泰坦尼克號旅客的密度圖。如果要了解特定位置的值,現在單擊特定位置,可以在彈出框中看到該值。

圖2 使用Python中的Altair庫繪製的泰坦尼克號旅客資料的密度圖

圖3 顯示泰坦尼克號旅客密度圖中特定點的值
在這篇關於Altair庫的文章中,我們使用泰坦尼克號旅客的線上資料繪製了密度圖。可以在Python中的密度圖中視覺化資料分佈。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP