如何在 Python-Plotly 中分組條形圖?
資料視覺化是理解和解釋複雜資料的重要步驟。在眾多圖表型別中,條形圖仍然是表示分類資料的通用且流行的選擇。使用 Python(資料分析中的領先語言)和 Plotly(一個支援互動式繪圖的繪相簿),我們可以輕鬆而精確地建立和自定義條形圖,包括分組條形圖。
今天,我們將深入探討使用 Plotly 在 Python 中建立分組條形圖的過程。分組條形圖用於比較同一軸上多個類別的系列。這種型別的圖表可以提供更全面的複雜資料集的視覺化表示,有助於突出顯示模式、相關性和對比。
語法
使用 Plotly 的 express 函式建立分組條形圖的標準語法如下:
plotly.express.bar(data_frame, x, y, color, barmode = 'group', ...)
在此語法中
data_frame - 這是您用作資料來源的 DataFrame。
x - DataFrame 中表示 x 軸值的列。
y - 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 中的自定義選項允許根據我們的特定視覺和解釋需求進行調整。
請記住,資料視覺化不僅僅是建立漂亮的圖表;它還關係到有效地傳達複雜資料。因此,務必仔細考慮圖表型別、顏色方案和設計元素的選擇,以確保您的資料故事儘可能清晰和有說服力。透過掌握分組條形圖,您將為您的資料視覺化工具箱新增一個強大的工具。祝您繪圖愉快!