5 区域填充图,区域堆叠图,小提琴图图的绘制方法plt.fill_between(), plt.stackplot(),plt.violinplot()

1 区域填充图plt.fill_between()

plt.fill_between 是 Matplotlib 中用于绘制区域填充图的函数。它可以在两个曲线之间或曲线与坐标轴之间绘制填充区域。这个函数常用于表示误差范围、置信区间、阴影区域等可视化需求。plt.fill_between 函数的使用方法以及常用参数的含义如下:

fill_between(x, y1, y2=0, where=None, interpolate=False, step=None, **kwargs)
  • x:x 轴的值,可以是一个数组或序列。
  • y1:填充区域下边界的 y 值,可以是一个数组或序列。
  • y2:填充区域上边界的 y 值,默认为 0,表示与 x 轴之间的填充区域。可以是一个数组或序列。
  • where:条件数组,用于指定应该填充的区域。默认为 None,表示填充整个 x 范围。如果提供了一个布尔数组,数组为 True 的位置将被填充,False 的位置将保持不变。
  • interpolate:如果为 True,在非连续点之间进行插值以填充区域。默认为 False。
  • step:如果指定为 ‘pre’ 或 ‘post’,则在非连续点之间进行阶梯插值以填充区域。默认为 None,表示不使用阶梯插值。
  • color:填充区域的颜色。可以是一个字符串(如 'blue''#FF0000')或表示颜色的 RGB 元组(如 (0, 0, 1) 表示蓝色)。默认为 None,表示使用默认颜色。
  • alpha:填充区域的透明度,范围从 0 到 1。0 表示完全透明,1 表示完全不透明。默认为 None,表示使用默认透明度。
  • edgecolor:填充区域的边界颜色。可以是一个字符串或颜色的 RGB 元组。默认为 None,表示无边界颜色。
  • linewidth:填充区域的边界线宽度。默认为 None,表示使用默认线宽。
  • linestyle:填充区域的边界线样式。可以是一个字符串(如 'solid''dashed''dashdot''dotted')或线型代码(如 '-''--''-.'':')。默认为 None,表示使用默认线型。
  • label:填充区域的标签,用于图例显示。
    绘图示例如下:
import matplotlib.pyplot as plt
import numpy as np

# 创建示例数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 绘制填充区域图
plt.fill_between(x, y1, y2, color='blue', alpha=0.3, edgecolor='black', linewidth=2, linestyle='--', label='Fill Area')

# 设置图形属性
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Fill Between')
plt.grid(True)
plt.legend()

# 显示图形
plt.show()

在这里插入图片描述

2 区域堆叠图 plt.stackplot()

plt.stackplot(x, y)是Matplotlib库中的一个函数,用于绘制堆叠区域图。堆叠区域图用于显示多个数据系列的相对贡献,并展示它们在整体中的总和变化。plt.stackplot(x, y)函数用于绘制堆叠区域图,其中参数的含义如下:

stackplot(x, y, labels=None, colors=None, baseline='zero', alpha=1.0,
 edgecolor=None, linewidth=None)
  • x:横坐标数据,可以是一个一维数组或列表,表示各个数据点的位置。

  • y:纵坐标数据,可以是一个二维数组或列表的列表,每个子列表代表一个数据系列。每个数据系列的长度应与x的长度相同。

  • labels:可选参数,用于设置每个数据系列的标签,可以是一个字符串列表或元组。标签将在图例中显示。

  • colors:可选参数,用于设置每个数据系列的颜色。可以是一个颜色字符串,也可以是一个颜色字符串列表或元组。如果提供的颜色数目少于数据系列数目,则颜色会进行循环重复使用。

  • baseline:可选参数,用于设置堆叠区域图的基线。默认值为’zero’,表示从0开始堆叠。也可以指定一个数组或列表来设置基线值。

  • alpha:可选参数,用于设置堆叠区域图的透明度。取值范围为0到1之间,0表示完全透明,1表示完全不透明。

  • edgecolor:可选参数,用于设置堆叠区域图的边缘颜色。可以是一个颜色字符串或一个颜色字符串列表或元组。

  • linewidth:可选参数,用于设置堆叠区域图的边缘线宽度。默认值为None,表示使用默认线宽。

注意:x和y的长度必须相同,且y中的每个子列表的长度也必须相同。

下面是一个示例:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [
    [1, 2, 3, 4, 5],  # 第一个数据系列
    [2, 3, 4, 5, 6],  # 第二个数据系列
    [3, 4, 5, 6, 7]   # 第三个数据系列
]

labels = ['Series 1', 'Series 2', 'Series 3']
colors = ['red', 'green', 'blue']

plt.stackplot(x, y, labels=labels, colors=colors)

plt.legend()
plt.show()

在这里插入图片描述

3 小提琴图 plt.violinplot()

小提琴图(Violin Plot)是一种常用的数据可视化方法,用于显示数值数据的分布情况。它结合了箱线图和核密度估计,可以展示数据的中位数、四分位数、分布形状等信息。在Matplotlib中,可以使用violinplot()函数绘制小提琴图。violinplot()函数用于绘制小提琴图,其中参数的含义如下:

plt.violinplot(dataset, positions=None, vert=True, widths=0.5, showmeans=False,
 showextrema=True, showmedians=False, points=100, bw_method=None, *, data=None)
  • dataset:数据集,可以是一个一维或二维的数组、列表或Series对象。如果是一个一维数组或列表,将绘制单个小提琴图。如果是一个二维数组、列表或Series对象,每列将绘制一个小提琴图。
  • positions:可选参数,用于设置每个小提琴图的位置。可以是一个一维数组或列表,长度与数据集的列数相同。
  • vert:可选参数,用于设置小提琴图的方向。默认值为True,表示绘制垂直方向的小提琴图。如果设置为False,则绘制水平方向的小提琴图。
  • widths:可选参数,用于设置小提琴图的宽度。可以是一个标量值或一个一维数组,指定每个小提琴图的宽度。默认值为0.5。
  • showmeans:可选参数,用于设置是否显示均值。默认值为False,表示不显示均值。
  • showextrema:可选参数,用于设置是否显示最大值和最小值。默认值为True,表示显示最大值和最小值。
  • showmedians:可选参数,用于设置是否显示中位数。默认值为False,表示不显示中位数。
  • points:可选参数,用于设置核密度估计的点数。默认值为100。
  • bw_method:可选参数,用于设置核密度估计的带宽方法。可以是一个字符串,表示带宽确定的方法,也可以是一个标量值。默认值为None,表示使用默认的带宽方法。

除了上述参数外,violinplot()函数还可以使用其他常用的Matplotlib关键字参数进行进一步的设置,例如colorlinewidthlabels等。

下面是一个示例:

import matplotlib.pyplot as plt
import numpy as np

# 创建示例数据
np.random.seed(123)
data = [np.random.normal(0, std, 100) for std in range(1, 4)]

# 绘制小提琴图
plt.violinplot(data, positions=[1, 2, 3], showmedians=True)

plt.xlabel('Group')
plt.ylabel('Value')
plt.title('Violin Plot')

plt.show()

在这里插入图片描述

在上述示例中,我们使用np.random.normal()函数生成了三组正态分布的示例数据。然后,我们使用plt.violinplot()函数绘制了三个小提琴图,每个小提琴图对应一个数据组。使用positions参数设置小提琴图的位置,使用showmedians参数显示中位数。最后,我们添加了坐标轴标签和标题,并使用plt.show()显示图形。

  • 27
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值