如何在 Altair Python 中建立帶有抖動的箱線圖?
本教程將解釋如何在 Altair Python 中建立帶有抖動的箱線圖。使用 Altair Python 中帶有抖動的箱線圖,可以快速輕鬆地視覺化包含連續變數和分類變數的資料集。在箱線圖中,一個變數是分類變數,另一個是連續變數。箱線圖是一種散點圖。透過將資料點作為沿分類軸的單個點檢視,我們可以看到每個類別中連續變數的分佈。使用抖動分散圖中的資料點,可以更輕鬆地檢查資料的分佈情況。
我們可以使用 `mark_circle()` 函式建立帶有抖動的箱線圖,並使用 `jitter()` 函式新增抖動效果。首先必須使用 `encoding` 引數指定圖表的 x 和 y 變數。然後使用 `mark_circle()` 函式建立圖表,並使用 `jitter()` 函式新增抖動效果。還可以透過更改軸標籤、配色方案和新增標題來修改圖表。透過遵循這些簡單的步驟,我們可以使用 Altair Python 建立易於閱讀且資訊豐富的帶有抖動的箱線圖。
語法
Altair 是一個 Python 庫,可用於建立帶有抖動的箱線圖。以下是使用 Altair 建立帶有抖動的箱線圖的語法示例:
import altair as alt
# create a stripplot with jitter using Altair
alt.Chart(df).mark_circle(size = 14).encode(
x = alt.X('jitter:Q', title = None, axis = alt.Axis(ticks = True, grid = False, labels = False), scale = alt.Scale()),
y = alt.Y('Y:Q', scale = alt.Scale()),
color = alt.Color('C:N', legend = None),
).transform_calculate(
Jitter = 'sqrt(-2*log(rand()))*cos(2*PI*rand())',
)
給定的程式碼使用 Altair 建立帶有抖動的箱線圖。`transform_calculate()` 方法透過計算隨機數的負兩倍自然對數的平方根(使用 Python 的 `random` 模組中的 `rand()` 方法生成)然後乘以兩倍 π 與使用相同 `rand()` 方法生成的另一個隨機數的餘弦來生成 x 軸的高斯抖動。這會生成一個抖動值,並將其新增到 DataFrame 中的“抖動”列中。然後,使用 `alt.X()` 方法中的“抖動:Q”編碼將此抖動值對映到 x 軸。
示例
下面的程式碼使用 Python 中的 Altair 視覺化庫生成帶有抖動的箱線圖。該程式碼首先使用 `pandas.DataFrame()` 建立一個自定義資料集,其中包含 100 個隨機生成的 x 值、y 值和類別。x 和 y 值表示圖中點的座標,而類別列決定每個點的顏色。
然後使用 `alt.Chart()` 函式建立一個圖表物件,並呼叫 `mark_circle()` 函式指定圖表應為圓形。`encode()` 方法用於指定如何將資料對映到圖表的視覺屬性,例如 x 和 y 位置以及點顏色。在這種情況下,x 編碼使用名為抖動的計算欄位來向 x 軸新增抖動,而 y 編碼指定 y 值。顏色編碼使用類別列為點著色,`legend=None` 引數刪除圖例。最後,`transform_calculate()` 函式用於使用基於隨機數生成器的公式計算抖動欄位,這會向 x 值新增少量隨機噪聲並將點水平分散。
import altair as alt
import pandas as pd
import numpy as np
# create a custom dataset
custom_data = pd.DataFrame({
'x_values': np.random.randn(100),
'y_values': np.random.randn(100),
'category': np.random.choice(['A', 'B', 'C'], 100)
})
# create a stripplot with jitter using Altair
alt.Chart(custom_data).mark_circle(size = 14).encode(
x=alt.X('jitter:Q', title = None,
axis = alt.Axis(ticks = True, grid = False, labels = False), scale = alt.Scale()),
y=alt.Y('y_values:Q', scale=alt.Scale()),
color=alt.Color('category:N', legend = None),
).transform_calculate(
jitter='sqrt(-2*log(random()))*cos(2*PI*random())',
)
輸出

示例
此示例顯示了使用 Iris 資料集在 Altair 中建立帶有抖動的箱線圖。程式碼首先匯入必要的庫,包括 Altair 和來自 `vega_datasets` 庫的 Iris 資料集。然後,它使用 `mark_circle` 方法建立一個 Altair 圖表,為每個資料點建立一個圓圈,並分別使用 Altair 的 X、Y 和 Color 類對 x、y 和顏色變數進行編碼。
此示例顯示了使用 Iris 資料集在 Altair 中建立帶有抖動的箱線圖。程式碼首先匯入必要的庫,包括 Altair 和來自 `vega_datasets` 庫的 Iris 資料集。然後,它使用 `mark_circle` 方法建立一個 Altair 圖表,為每個資料點建立一個圓圈,並分別使用 Altair 的 X、Y 和 Color 類對 x、y 和顏色變數進行編碼。
import altair as alt
from vega_datasets import data
# load the Iris dataset
iris = data.iris()
# create a stripplot with jitter using Altair
alt.Chart(iris).mark_circle(size = 14).encode(
x = alt.X('jitter:Q', title = None, axis = alt.Axis(ticks = True, grid = False, labels = False), scale = alt.Scale()),
y = alt.Y('petalWidth:Q', scale = alt.Scale()),
color = alt.Color('species:N', legend = None),
).transform_calculate(
jitter = 'sqrt(-2*log(random()))*cos(2*PI*random())',
)
輸出

結論
總之,使用抖動建立箱線圖對於顯示資料點的分佈及其變異性非常有用。Python Altair 包使完成此操作變得簡單有效。使用者可以透過遵循本文中提供的說明(包括匯入所需的庫、載入資料和對 x、y 和顏色變數進行編碼)來建立資訊豐富且美觀的圖表。由於現在更容易識別資料點和資料中的模式,因此透過包含使用 `transform_calculate` 方法的抖動進一步改進了該圖。
總的來說,Altair 是一個強大的 Python 資料視覺化工具,使用抖動建立箱線圖只是其功能的一個示例。您可以透過試驗各種資料集和視覺編碼來建立各種強大且資訊豐富的視覺化效果。由於 Altair 的語法簡單且功能強大,資料視覺化的可能性是無限的。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP