violinplot是Python可視化中一種既優美又實用的圖表類型。它通過類似提琴的形狀展現數據分布,同時也能夠輕鬆比較不同分組的數據。本文將詳細介紹violinplot的使用,從繪製基本圖表開始,逐步擴展到自定義、展示多組數據以及數據探索。無論你是Python新手還是專業開發工程師,本文都將為你提供豐富的知識和實例代碼。
一、基本繪製
首先,我們需要導入matplotlib庫:
import matplotlib.pyplot as plt
import numpy as np
然後,我們利用numpy生成一組隨機數據:
np.random.seed(10)
data = np.random.normal(100, 20, 200)
這裡我們生成了一個均值為100,標準差為20,共200個樣本的數據集。接下來,我們就可以通過violinplot來將其可視化:
plt.violinplot(data)
plt.show()
運行代碼,即可得到一個基本的violinplot圖表。
可以看到,violinplot將數據的分布形態顯現出來,同時在每個分布的邊緣繪製了箱型圖,展示了分布的分位數信息。此外,我們也可以通過參數來自定義violinplot的外觀,比如調整寬度、顏色等等。
plt.violinplot(data, widths=0.4, showmeans=True,
showextrema=True, showmedians=True)
plt.boxplot(data, positions=[1], widths=0.1)
plt.xticks([1], ['Data'])
plt.show()
這段代碼將寬度設置為0.4,同時繪製了各種元素,包括樣本的平均值、極值、中位數,以及箱型圖。運行結果如下圖所示:
二、展示多組數據
在實際應用中,我們通常需要比較多個分組的數據情況。violinplot能夠輕鬆展示多組數據,同時也提供了豐富的參數來自定義每組數據的樣式,以及在同一張圖中展示多組數據。例如:
np.random.seed(10)
data1 = np.random.normal(100, 20, 200)
data2=np.random.normal(80, 30, 200)
data3=np.random.normal(90, 10, 200)
data=[data1,data2,data3]
fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(10, 6))
parts = ax.violinplot(data, showmedians=True, showmeans=True,showextrema=True)
for pc in parts['bodies']:
pc.set_facecolor('#D43F3A')
pc.set_alpha(0.7)
ax.set_xticks([y + 1 for y in range(len(data))])
ax.set_xticklabels(['Group1', 'Group2', 'Group3'])
plt.show()
這段代碼生成了三組隨機數據,並將它們展示在同一張圖中。我們通過設置violinplot的參數,在每個分布周圍繪製了箱型圖,以及中位數和平均數。同時,我們也自定義了每個分組的顏色和透明度。運行結果如下圖所示:
三、數據探索
最後,我們介紹如何將violinplot應用於數據探索。通常,我們需要在數據分析中了解各個因素對結果的影響,或者發現不同樣本之間的異常值。這時候,violinplot的可視化效果十分有效。
例如,我們在探索泰坦尼克號的乘客數據時,需要觀察乘客的年齡、性別、艙位等因素與生還率的關係。首先,我們需要讀入數據:
import pandas as pd
data=pd.read_excel('titanic.xls')
然後,我們可以繪製如下圖所示的年齡和性別對生還率的影響:
import seaborn as sns
sns.set(style="whitegrid")
fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(10, 6))
sns.violinplot(x="Age", y="Survived", hue="Sex", data=data, split=True)
ax.set_title('Age and Sex vs. Survived')
plt.show()
從圖中可以看出,在乘客年齡比較大的情況下,女性生還率比男性更高;在年齡小的情況下,性別差異對生還率的影響不大。此外,我們還可以利用其他因素(比如艙位和親屬人數)來探索數據,發現更多信息。
總結
本文詳細介紹了violinplot的用法和實例,希望能夠幫助讀者在Python可視化工具的應用中更好地使用該圖表類型。從基礎繪圖、展示多組數據到數據探索,violinplot為我們提供了一個優美而高效的數據可視化工具。如果你想深入了解violinplot的更多應用和實現,可以參考官方文檔或者相關的科技論文。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/295207.html