matplotlib.pyplot.violinplot()函数 - 制作小提琴图

matplotlib.pyplot.violinplot()函数

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)

参数:

  1. dataset:这是一个必需的参数,通常是一个数组或向量序列。这是向函数提供数据的地方。
  2. positions:它是一个类似数组的对象,默认值是1到n的数组(即default =[1,2,3…n])。用来设置小提琴的位置。将自动设置限制和刻度以匹配位置。
  3. vert:该参数接受一个布尔值。该参数默认为False。如果设置为True,它将创建一个垂直的小提琴图,否则将设置一个水平的小提琴图。
  4. width:它接受一个类似数组的对象,默认值为0.5。它用于设置每个小提琴的最大宽度,可以是标量或矢量。如果使用默认值,则大约占用水平空间的一半。
  5. showmeans:它接受一个布尔值,默认设置为False。如果设置为true,则切换平均值的呈现
  6. showextreama:它接受一个布尔值,默认设置为False。如果设置为True,则切换极值的呈现。
  7. showmedians:它接受布尔值,默认设置为False。如果设置为True,它将切换中值的呈现。
  8. points:它接受标量,默认值为100。它用于定义计算每一个高斯核密度估计的点的总数。
  9. bw_method:它是一个可选参数,接受字符串,标量或callable。利用该方法计算了估计器的带宽。它可以是“silverman”,“scott”,可拨打或标量常数。如果是标量,则直接用作kde.factor。如果它是callable,那么它只接受GaussianKDE实例并返回一个标量。如果无,则使用Scott

返回:此函数返回一个字典,将小提琴图的每个组件映射到各自集合实例的列表。返回的字典有以下键:

  • body: matplotlib.collections.PolyCollection的实例列表,包含每个小提琴的填充区域。
  • cmeans:创建一个matplotlib.collections.LineCollection的实例,以识别每个小提琴分布的平均值
  • cmins:一个matplotlib.collections.LineCollection的实例,创建以识别每个小提琴分布的底部。
  • cmax:一个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) 

输出:

matplotlib.pyplot.violinplot()函数

示例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()

输出:

matplotlib.pyplot.violinplot()函数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程