如何在 Matplotlib 中的多个线条之间进行填充
我们可以在 Python Matplotlib 中使用 matplotlib.pyplot.fill_between()
方法来填充多个线条之间的区域。fill_between()
函数一次填充两条线之间的空间,但我们可以选择一对行来填充多个线条之间的区域。
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.02)
y1 = 8 - 4 * x
y2 = 6 - x
y3 = 2 - 2 * x
plt.plot(x, y1, color="red", label="8-4x")
plt.plot(x, y2, color="blue", label="6-x")
plt.plot(x, y3, color="green", label="2-2x")
plt.legend()
plt.show()
在图中,我们需要填充多边形,使其满足以下条件。
y <= 8- 4x
y <= 6 - x
y >= 2 - 2x
y >= 0
在 Matplotlib 中的多个线条之间进行填充
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.02)
y1 = 2 - 2 * x
y2 = 6 - x
y3 = 8 - 4 * x
y4 = np.minimum(y2, y3)
plt.plot(x, y1, color="red", label="2-2x")
plt.plot(x, y2, color="blue", label="6-x")
plt.plot(x, y3, color="green", label="8-4x")
plt.ylim(0, 10)
plt.fill_between(x, y1, y4, color="yellow")
plt.legend()
plt.show()
为了满足上述给定的条件,我们设置 y 轴极限为 0
到 10
,使 y >= 0
作为第一步。
由于线段 y=6-x
和 y=8-4x
相交,确保 y <= 8- 4x
和 y <= 6 - x
都满足,我们用 minimum()
方法选择符合这两个条件的点。
最后,我们填充 y1
和 y4
之间的区域,提供需求指定的多边形区域。
另外,我们也可以找到线的交点,作为区域的角点。一旦我们知道角点,我们就可以使用 matplotlib.pyplot.fill()
方法填充多边形。
import matplotlib.pyplot as plt
x = [2, 4, 2, 0]
y = [4, 2, 0, 2]
plt.fill(x, y)
plt.show()
这种方法用拐角点填充多边形,(2,4)
,(4,2)
,(2,0)
和 (0,2)
。
列表 x
代表多边形角点的 x 坐标,y
代表多边形角点的 y 坐标。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串