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