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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。