Matplotlib是Python中令人驚歎的可視化庫,用於二維陣列圖。 Matplotlib是一個基於NumPy數組的多平台數據可視化庫,旨在與更廣泛的SciPy堆棧配合使用。
Matplotlib.pyplot.violinplot()
顧名思義,matplotlib.pyplot.violinplot()用於製作小提琴圖。通過此函數,您可以為數據集的每一列或數據集序列中的每個向量繪製小提琴圖。所有填充區域均擴展為顯示整個數據範圍,其中的線在平均值,中位數,最大值和最小值處為可選。
用法: matplotlib.pyplot.violinplot(dataset, positions=None, vert=True, widths=0.5, showmeans=False, showextrema=True, showmedians=False, points=100, bw_method=None, *, data=None)
參數:
- dataset:它是必需的參數,通常是數組或向量序列。這是將數據饋送到函數的地方。
- positions:它是一個array-like對象,其默認值為從1到n的數組(即默認= [1、2、3…n])。用於設置小提琴的位置。限製和刻度自動設置為與位置匹配。
- vert:此參數接受布爾值。此參數的默認值為False。如果設置為True,它將創建一個垂直的小提琴圖,否則將設置一個水平的小提琴圖。
- widths:它接受一個array-like對象,默認值為0.5。它用於設置每個小提琴的最大寬度,可以是標量或向量。如果使用默認值,它將占用大約一半的水平空間。
- showmeans:它接受布爾值,並且默認設置為False。如果設置為true,它將切換均值的呈現
- showextreama:它接受布爾值,默認情況下設置為False。如果設置為True,它將切換極值的渲染。
- showmedians:它接受布爾值,並且默認設置為False。如果設置為True,它將切換中位數的呈現。
- points:它接受標量,默認值為100。它用於定義要計算每個高斯核密度估計的點總數。
- bw_method:它是一個可選參數,它接受字符串,標量或可調用對象。估計器帶寬是使用此方法計算的。它可以是‘silverman’,‘scott’,可調用常量或標量常量。如果是標量,則直接用作kde.factor。如果它是可調用的,則它僅采用GaussianKDE實例並返回標量。如果沒有,則使用Scott
返回值:此函數將violin-plot的每個組件的字典映射返回到各個集合實例的列表。返回的字典具有以下鍵:
- bodies:matplotlib.collections.PolyCollection的實例列表,其中包含每個小提琴的填充區域。
- cmeans:創建matplotlib.collections.LineCollection的實例以標識每個小提琴分布的均值
- cmins:創建了matplotlib.collections.LineCollection的實例來標識每個小提琴發行的底部。
- cmaxes:創建了matplotlib.collections.LineCollection的實例來標識每個小提琴發行的頂部。
- cbars:創建了matplotlib.collections.LineCollection的實例來標識每個小提琴分布的中心。
- cmedians:創建了matplotlib.collections.LineCollection的實例來標識每個小提琴分布的平均值。
範例1:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(21)
data = np.random.random(111)
quartile1, median, quartile3 = np.percentile(data,
[ 50, 75,100],
axis=0)
plt.violinplot(data)
plt.vlines(1, quartile1,
quartile3,
color='r',
linestyle='--')
plt.hlines(quartile1,.7,1.2)
plt.hlines(quartile3,.7,1.2)
輸出:
範例2:
import matplotlib.pyplot as plt
# Fixing random state for
# reproducibility
np.random.seed(15437660)
# creating randomly generate
# collections / data
coll_1 = np.random.normal(100, 10, 200)
coll_2 = np.random.normal(80, 30, 200)
coll_3 = np.random.normal(90, 20, 200)
coll_4 = np.random.normal(70, 25, 200)
## combining these different
# collections into a list
data_plotter = [coll_1, coll_2,
coll_3, coll_4]
plt.violinplot(data_plotter)
plt.show()
輸出:
相關用法
注:本文由純淨天空篩選整理自RajuKumar19大神的英文原創作品 Matplotlib.pyplot.violinplot() in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。