如何在 Python-Plotly 中分組條形圖?


資料視覺化是理解和解釋複雜資料的重要步驟。在眾多圖表型別中,條形圖仍然是表示分類資料的通用且流行的選擇。使用 Python(資料分析中的領先語言)和 Plotly(一個支援互動式繪圖的繪相簿),我們可以輕鬆而精確地建立和自定義條形圖,包括分組條形圖。

今天,我們將深入探討使用 Plotly 在 Python 中建立分組條形圖的過程。分組條形圖用於比較同一軸上多個類別的系列。這種型別的圖表可以提供更全面的複雜資料集的視覺化表示,有助於突出顯示模式、相關性和對比。

語法

使用 Plotly 的 express 函式建立分組條形圖的標準語法如下:

plotly.express.bar(data_frame, x, y, color, barmode = 'group', ...)

在此語法中

  • data_frame - 這是您用作資料來源的 DataFrame。

  • - DataFrame 中表示 x 軸值的列。

  • - DataFrame 中表示 y 軸值的列。

  • color - 您要用於對資料進行分組的列。

  • barmode - 對於分組條形圖,這應設定為“group”。如果未指定,則預設設定為“relative”。

  • ...: 用於自定義繪圖的其他引數的佔位符。

演算法

讓我們將使用 Plotly 建立分組條形圖的過程分解成簡單的步驟:

  • 匯入必要的庫。

  • 建立或匯入您的資料幀。

  • 根據您的 DataFrame 指定“x”、“y”和“color”引數。

  • 使用 plotly.express.bar() 函式建立您的繪圖。

  • 將 barmode 設定為“group”。

  • 自定義您的繪圖(可選)。

  • 顯示您的繪圖。

方法 1:從頭開始建立分組條形圖

假設我們有三種不同產品(A、B 和 C)在一年四個季度中的銷售資料。我們希望在分組條形圖中表示此資料以進行更好的比較。

示例

# Import necessary libraries
import plotly.express as px
import pandas as pd

# Create the DataFrame
data = {'Quarters': ['Q1', 'Q2', 'Q3', 'Q4'],
      'Product A': [200, 150, 100, 180],
      'Product B': [220, 130, 90, 150],
      'Product C': [210, 160, 130, 170]}

df = pd.DataFrame(data)

# Convert the DataFrame from wide to long format
df_melt = df.melt(id_vars='Quarters', var_name='Products', value_name='Sales')

# Create the grouped bar chart
fig = px.bar(df_melt, x='Quarters', y='Sales', color='Products', barmode='group')

# Show the plot
fig.show()

輸出

解釋

基本庫元件在頭兩行匯入。為簡潔起見,我們將 plotly.express 稱為 px。plotly.express 是 Plotly 庫的一個簡單且高階的介面。此外,我們還引入了 pandas(一個用於資料操作和分析的強大包),並將其別名為 pd。

然後,我們構造一個名為 data 的字典,它將包含三種不同產品(“A”、“B”和“C”)在四個不同季度(“Q1”到“Q4”)中的銷售額的條目。然後,我們將此字典轉換為 pandas DataFrame df。

melt() 函式用於將 DataFrame 從寬格式轉換為長格式。id_vars 引數確定要保持不變的列,而 var_name 和 value_name 引數分別指定新生成列的名稱。

在建立條形圖時,呼叫 px.bar() 函式來完成繁重的工作。x 引數、y 引數和 color 引數分別指定 DataFrame 中的列,這些列將用於指定分組顏色、x 軸和 y 軸。為了建立分組條形圖,barmode 設定為 group。

最後,透過呼叫 show() 函式顯示繪圖。

方法 2:從外部資料建立分組條形圖

假設我們有一個外部 CSV 檔案(“sales_data.csv”),其中包含不同地區和產品的銷售資料。

示例

# Import necessary libraries
import plotly.express as px
import pandas as pd

# Load the DataFrame from an external CSV file
df = pd.read_csv('sales_data.csv')

# Create the grouped bar chart
fig = px.bar(df, x='Region', y='Sales', color='Product', barmode='group')

# Customize the plot
fig.update_layout(title_text='Sales by Product and Region',
                  xaxis_title='Region',
                  yaxis_title='Sales')

# Show the plot
fig.show()

輸出

解釋

我們從匯入基本庫開始,這與第一種方法非常相似。

在這種情況下,我們不是建立自己的 DataFrame,而是使用 pd.read_csv() 函式從外部 CSV 檔案載入它,然後將資料轉換為 DataFrame。

我們建立分組條形圖的方式與第一種方法基本相同,區別在於我們使用新建立的 DataFrame 中的列名。

可以使用 update_layout() 函式自定義繪圖。這裡,我們將為繪圖新增標題,並標記 x 軸和 y 軸。

最後一步是顯示繪圖。

結論

分組條形圖對於比較同一類別中的多個數據系列非常有用。使用 Python 和 Plotly,我們可以輕鬆地從預先存在的或新建立的資料集中生成這些繪圖。Plotly 中的自定義選項允許根據我們的特定視覺和解釋需求進行調整。

請記住,資料視覺化不僅僅是建立漂亮的圖表;它還關係到有效地傳達複雜資料。因此,務必仔細考慮圖表型別、顏色方案和設計元素的選擇,以確保您的資料故事儘可能清晰和有說服力。透過掌握分組條形圖,您將為您的資料視覺化工具箱新增一個強大的工具。祝您繪圖愉快!

更新於: 2023-07-27

2K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告