使用 Python 中的 Altair 繪製帶抖動的水平條形圖


資料分析中最關鍵的方面之一是熟練地視覺化資料,以便快速識別趨勢和模式,而使用帶抖動的水平條形圖是視覺化分類變數和連續變數的一種非常有效的工具。

我們的文章將演示如何使用 Altair(一個因其宣告式統計視覺化功能而聞名的流行 Python 庫)建立帶抖動的水平條形圖。

什麼是條形圖和抖動?

條形圖以水平方式顯示各個資料點,使我們能夠觀察它們在不同類別中的分佈。但是,當多個數據點共享相同水平位置時,它們可能會重疊,從而難以區分各個點。抖動是一種技術,它會在每個點的水平位置新增少量隨機噪聲,將其分散並減少重疊。

首先,必須確保在指定的 Python 環境中安裝了 Altair 和 Pandas。我們可以使用 pip(一個通用的 Python 包管理器)來安裝這些 Python 庫。

先決條件

pip install altair pandas

我們還需要一個數據集來處理。在本教程中,我們將使用 Seaborn 庫中的“tips”資料集,其中包含餐廳顧客的總賬單和小費金額資訊,以及其他變數,例如一週中的日期和顧客的性別。

使用 Altair 建立帶抖動的水平條形圖

一旦我們準備好了先決條件,就可以開始使用 Altair 建立帶抖動的水平條形圖。

按照以下步驟使用 Altair 建立帶抖動的水平條形圖:

步驟 1:安裝 Altair

在開始之前,請確保已在 Python 環境中安裝了 Altair。如果沒有,可以在終端中執行以下命令進行安裝:

pip install altair

步驟 2:匯入必要的庫

在 Python 指令碼或 Jupyter Notebook 中,匯入所需的庫:Altair 和 pandas。

import altair as alt
import pandas as pd

步驟 3:載入資料

將資料集載入到 pandas DataFrame 中。例如,可以使用 pd.read_csv() 載入 CSV 檔案:

data = pd.read_csv("your_dataset.csv")

步驟 4:建立帶抖動的水平條形圖

使用 Altair 建立帶抖動的水平條形圖。指定資料來源、標記型別、編碼和其他繪圖屬性:

chart = alt.Chart(data).mark_circle(size=40, opacity=0.8).encode(
   x=alt.X('continuous_variable:Q', title='X-axis Label'),
   y=alt.Y('categorical_variable:O', title='Y-axis Label'),
   color=alt.Color('group_variable:N', legend=alt.Legend(title='Group')),
   tooltip=['continuous_variable', 'categorical_variable', 'group_variable']
).properties(
   title='Horizontal Stripplot with Jitter',
   width=600,
   height=300
).configure_axis(
   labelFontSize=12,
   titleFontSize=14
).configure_legend(
   labelFontSize=12,
   titleFontSize=14

將“continuous_variable”、“categorical_variable”和“group_variable”替換為資料集中相應的列名。根據需要調整標記型別、大小、不透明度和其他屬性。

步驟 5:顯示或儲存繪圖

可以在 Jupyter Notebook 中直接顯示繪圖,也可以將其另存為影像或 HTML 檔案。要在筆記本中顯示繪圖,請使用:

chart.show()

要將繪圖另存為影像,請使用 .save() 並指定帶有所需格式的檔名(例如,“plot.png”):

chart.save('plot.png')

或者,可以使用 .save() 將繪圖儲存為互動式 HTML 檔案:

chart.save('plot.html')

以下是使用 Altair 在 Python 中使用 tips 資料集繪製帶抖動的水平條形圖的完整程式碼。

示例

import altair as alt
import pandas as pd

# Load example dataset
tips = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv")

# Create horizontal stripplot with jitter
chart = alt.Chart(tips).mark_circle(size=40, opacity=0.8).encode(
   x=alt.X('total_bill:Q', title='Total Bill ($)'),
   y=alt.Y('day:O', title='Day of Week'),
   color=alt.Color('sex:N', legend=alt.Legend(title='Gender')),
   tooltip=['total_bill', 'day', 'sex']
).properties(
   title='Total Bill by Day',
   width=600,
   height=300
).configure_axis(
   labelFontSize=12,
   titleFontSize=14
).configure_legend(
   labelFontSize=12,
   titleFontSize=14
)

# Save plot to HTML file
chart.save('stripplot.html')

輸出

結論

總之,使用 Python 中的 Altair 建立帶抖動的水平條形圖是視覺化資料集中分類變數和連續變數之間關係的一種簡單而強大的方法。Altair 提供了一種宣告式且直觀的語法來建立具有可自定義屬性的視覺上吸引人的繪圖。

透過遵循本文中概述的步驟,可以輕鬆載入資料、指定必要的編碼並自定義條形圖的各個方面,例如大小、不透明度、顏色和工具提示資訊。抖動的新增有助於避免點重疊,從而更清楚地瞭解不同類別中的資料密度和分佈。

更新於:2023年7月24日

130 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.