首頁 >後端開發 >Python教學 >如何在Altair Python中製作帶有Jitter的Stripplot?

如何在Altair Python中製作帶有Jitter的Stripplot?

WBOY
WBOY轉載
2023-09-03 18:01:011355瀏覽

本教學將說明如何在 Altair Python 中使用 Jitter 製作 Stripplot。在 Altair Python 中使用具有抖動的長條圖可以快速、輕鬆地視覺化包含連續變數和分類變數的資料集。在帶狀圖中,其中一個變數是分類變量,另一個是連續變數。帶狀圖是散佈圖的一種。透過將資料點視為沿著分類軸的各個點,我們可以看到每個類別的連續變數的分佈。透過抖動將資料點分佈在繪圖上可以更輕鬆地檢查資料的分佈方式。

使用mark_circle()函數建立圖表,並使用jitter()函數加入抖動效果,我們可以在Altair Python中建立一個帶有抖動效果的長條圖。首先,必須使用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()方法產生的隨機數的自然對數的負兩倍的平方根,再乘以兩倍pi乘以另一個使用相同rand()方法產生的隨機數的餘弦值,產生了x軸的高斯抖動。這將抖動值加入到DataFrame的'jitter'欄位中。然後使用alt.X()方法中的'jitter: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())',
)

輸出

如何在Altair Python中制作带有Jitter的Stripplot?

#範例

此範例展示如何使用 Iris 資料集在 Altair 中建立帶有抖動的帶狀圖。程式碼首先從 vega_datasets 庫匯入必要的庫,包括 Altair 和 Iris 資料集。然後,它使用 mark_circle 方法建立一個 Altair 圖表,為每個資料點建立一個圓,並分別使用 Altair X、Y 和 Color 類別對 x、y 和顏色變數進行編碼。

此範例展示如何使用 Iris 資料集在 Altair 中建立帶有抖動的帶狀圖。程式碼首先從 vega_datasets 庫匯入必要的庫,包括 Altair 和 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())',
)

輸出

如何在Altair Python中制作带有Jitter的Stripplot?

Conclusion

總之,使用抖動來建立長條圖對於顯示資料點的分佈和變異性非常有用。 Python的Altair套件讓完成這個操作變得簡單又有效。使用者可以按照本文提供的說明,包括導入所需的庫、載入資料和編碼x、y和顏色變量,製作一個有教育意義和美觀的圖表。透過使用transform_calculate方法來包含抖動,圖表進一步改進,因為現在更容易識別資料中的特定資料點和模式。

整體而言,Altair 是一款強大的 Python 資料視覺化工具,使用抖動建立帶狀圖只是其功能的一個例證。您可以透過嘗試各種資料集和視覺編碼來製作各種強大且具有教育意義的視覺化。由於 Altair 簡單的語法和強大的功能,資料視覺化的可能性是無限的。

以上是如何在Altair Python中製作帶有Jitter的Stripplot?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除