plt.fill_between和plt.stackplot的区别
时间: 2023-11-02 22:04:12 浏览: 104
plt.fill_between和plt.stackplot是用于填充图形区域的两个函数,它们的区别如下:
1. plt.fill_between函数用于在两个曲线之间填充颜色。它接受两个数组作为输入,分别表示x轴和y轴上的数据点,并根据这些点之间的关系来确定填充的区域。可以使用参数来指定填充的颜色、透明度等属性。
2. plt.stackplot函数用于绘制堆叠区域图。它接受多个数组作为输入,每个数组表示一个堆叠区域的数据点,这些区域会在y轴上按顺序堆叠起来。可以使用参数来指定每个堆叠区域的颜色、标签等属性。
相关问题
plt.fill_between(dates, Moderate_area, Light_area, facecolor='blue', alpha=0.1, label='轻旱面积')给图例加边框
您可以使用`edgecolor`参数来给`fill_between`函数的图例添加边框。以下是一个示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 生成数据
np.random.seed(1)
dates = pd.date_range('20220101', periods=60, freq='D')
Moderate_area = np.random.randint(100, 500, size=60)
Light_area = np.random.randint(50, 300, size=60)
# 绘制图表
fig, ax = plt.subplots()
ax.fill_between(dates, Moderate_area, Light_area, facecolor='blue', alpha=0.1, label='轻旱面积')
ax.legend(edgecolor='black') # 给图例添加边框,边框颜色为黑色
plt.show()
```
在这个例子中,我们使用`fill_between`函数绘制了一个区域图,并添加了一个图例。通过将`edgecolor`参数设置为`'black'`,我们为图例添加了一个黑色的边框。您可以根据需要修改`edgecolor`参数来更改边框的颜色。
x_d = np.linspace(-4, 8, 2000) density = sum((abs(xi - x_d) < 0.5) for xi in x) plt.fill_between(x_d, density, alpha=0.5) plt.plot(x, np.full_like(x, -0.1), '|k', markeredgewidth=1) plt.axis([-4, 8, -0.2, 8]);
这段代码使用了 Matplotlib 库绘制了一个核密度估计图和一个带有垂直刻度线的直方图。首先,使用 `np.linspace()` 函数生成了一个从 -4 到 8 的包含 2000 个元素的一维数组 `x_d`,用于在 x 轴上绘制核密度估计图。接着,使用列表推导式和 `sum()` 函数计算了每个 `x_d` 值周围 0.5 范围内的数据点数量,并将其存储在 `density` 变量中。然后,使用 `plt.fill_between()` 函数绘制了一条核密度估计曲线,其中 `x_d` 作为 x 坐标,`density` 作为 y 坐标,`alpha` 参数设置了填充颜色的透明度。接着,使用 `plt.plot()` 函数绘制了一条水平直线和垂直刻度线,作为直方图的基准线和数据点的垂直位置。最后,使用 `plt.axis()` 函数设置了 x 轴和 y 轴的范围。
阅读全文