matplotlib.plt在使用fill_between时添加不需要的行

yhuiod9q  于 2023-02-13  发布在  其他
关注(0)|答案(1)|浏览(176)

关于使用fill_between的问题:
在下面的代码片段中使用fill_between添加了一条不需要的垂直线和水平线。这是因为参数方程吗?我该如何修复它?

import matplotlib.pyplot as plt
import numpy as np
t = np.linspace(0, 2 * np.pi, 100)
x = 16 * np.sin(t)**3
y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2*np.cos(3*t) - np.cos(4*t)
plt.plot(x,y, 'red', linewidth=2)
plt.fill_between(x, y, color = 'red', alpha = 0.2)

结果如下:

1yjd4xko

1yjd4xko1#

可以使用plt.fill填充由xy值界定的区域。plt.fill_between填充零和定义为y是x的函数的曲线之间的区域。

import matplotlib.pyplot as plt
import numpy as np

t = np.linspace(0, 2 * np.pi, 100)
x = 16 * np.sin(t) ** 3
y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t)
plt.plot(x, y, 'deeppink', linewidth=2)
plt.fill(x, y, color='deeppink', alpha=0.2)
plt.axis('off')
plt.show()

或者在循环中:

t = np.linspace(0, 2 * np.pi, 100)
x = 16 * np.sin(t) ** 3
y = 13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t)
for r in np.linspace(1, 0.01, 50):
    plt.fill(r * x, r * y, color=plt.cm.Reds(r))
plt.axis('off')
plt.show()

相关问题