五個案例快速入門 Plotly 可視化
數據可視化是數據分析和報告中至關重要的一環。在眾多的Python可視化庫中,Plotly以其強大的交互性、美觀的圖表和便捷的語法脫穎而出。本文將通過5個實用的案例,帶您快速入門Plotly的使用,讓您輕松創建令人印象深刻的交互式圖表。
準備工作
在開始之前,請確保您已經安裝了Plotly庫。您可以使用pip進行安裝:
pip install plotly
接下來,導入必要的模塊:
import plotly.express as px
import pandas as pd
案例一:簡單的折線圖
折線圖是最常用的圖表類型之一,用于展示數據隨時間或其他連續變量變化的趨勢。
假設我們有以下數據,記錄了某產品在過去幾個月的銷量:
data = {'月份': ['1月', '2月', '3月', '4月', '5月'],
'銷量': [150, 180, 220, 190, 250]}
df = pd.DataFrame(data)
使用Plotly繪制折線圖非常簡單:
fig = px.line(df, x='月份', y='銷量', title='產品月銷量趨勢')
fig.show()
這段代碼使用plotly.express模塊的line()函數,指定了數據來源(DataFrame)、x軸和y軸的列名,以及圖表的標題。fig.show()用于顯示生成的交互式圖表。您可以將鼠標懸停在數據點上查看詳細信息,還可以進行縮放和平移操作。
案例二:定制化的散點圖
散點圖用于展示兩個變量之間的關系。我們可以通過定制顏色、大小等屬性來增強圖表的信息表達能力。
假設我們有以下數據,記錄了不同學生的考試成績和學習時長:
data = {'學生': ['A', 'B', 'C', 'D', 'E', 'F'],
'學習時長(小時)': [5, 8, 3, 9, 6, 7],
'考試成績': [75, 92, 68, 95, 80, 88]}
df = pd.DataFrame(data)
繪制散點圖并根據學習時長定制顏色:
fig = px.scatter(df, x='學習時長(小時)', y='考試成績', color='學習時長(小時)',
title='學生學習時長與考試成績的關系',
hover_data=['學生'])
fig.show()
這里,我們使用scatter()函數,并通過color參數指定了根據“學習時長(小時)”這一列的值來設置散點的顏色。hover_data參數指定了當鼠標懸停在散點上時顯示“學生”這一列的信息。
案例三:清晰的柱狀圖
柱狀圖適用于比較不同類別的數據大小。
假設我們有以下數據,記錄了不同產品的銷售額:
data = {'產品': ['產品A', '產品B', '產品C', '產品D'],
'銷售額': [300, 450, 280, 520]}
df = pd.DataFrame(data)
繪制柱狀圖:
fig = px.bar(df, x='產品', y='銷售額', title='各產品銷售額')
fig.show()
bar()函數用于創建柱狀圖,同樣只需要指定x軸和y軸的列名即可。
案例四:交互式直方圖
直方圖用于展示數值數據的分布情況。Plotly的交互性使得探索數據分布更加方便。
假設我們有以下數據,記錄了一組用戶的年齡:
data = {'年齡': [25, 30, 22, 35, 28, 40, 27, 32, 29, 38]}
df = pd.DataFrame(data)
繪制直方圖:
fig = px.histogram(df, x='年齡', title='用戶年齡分布')
fig.show()
histogram()函數會自動計算數據的頻數并生成直方圖。您可以滑動鼠標選擇不同的區間,查看該區間內的數據數量。
案例五:3D散點圖
對于包含三個數值變量的數據,3D散點圖可以提供更豐富的視角。
假設我們有以下數據,記錄了不同產品的三個屬性:
data = {'X': [1, 2, 3, 4, 5],
'Y': [2, 5, 3, 6, 4],
'Z': [5, 3, 6, 2, 7]}
df = pd.DataFrame(data)
繪制3D散點圖:
fig = px.scatter_3d(df, x='X', y='Y', z='Z', title='產品屬性分布')
fig.show()
scatter_3d()函數用于創建3D散點圖。您可以拖動鼠標旋轉圖表,從不同角度觀察數據分布。
總結
通過以上五個案例,您已經掌握了使用Plotly繪制基本圖表的方法。Plotly的功能遠不止于此,它還支持創建更復雜的圖表類型,如箱線圖、熱力圖、地圖等,并且提供了豐富的定制選項。希望本文能夠幫助您快速入門Plotly,并在您的數據可視化工作中發揮作用。