3
我試圖使用matplotlib繪製一個洛倫茲曲線,我想填寫下面的洛倫茨曲線的區域,這裏就是我寫的代碼:ax.fill()在matplotlib填寫錯誤區域
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style("darkgrid")
# I used seaborn for different styles.
x = [0, 0.10304926499801351, 0.20455899880810488, 0.30986789829161698,
0.41132796980532377, 0.51018077075883983, 0.61201330949543098,
0.71223182359952319, 0.81185439014700034, 0.91063269765593957,
1.0]
y = [0, 0.016037735849056604, 0.033018867924528301, 0.063207547169811321,
0.087735849056603782, 0.13962264150943399, 0.20000000000000001,
0.27547169811320754, 0.37264150943396224, 0.53018867924528301,
1.0]
fig, ax = plt.subplots()
ax.fill(x, y, 'b', alpha=0.3)
plt.show()
它結束了這樣的事情:
顯然如預期,因爲我想填寫下面的曲線下面積它不工作。
我試圖像這樣的一些其他的例子:
x = np.linspace(0, 2 * np.pi, 500)
y1 = np.sin(x)
fig, ax = plt.subplots()
ax.fill(x, y1, 'b', alpha=0.3)
plt.show()
,他們都工作得很好。我一定錯過了自己的情節,但無法弄清楚。有什麼想法嗎?
原因'ax.fill'正在爲罪曲線即sin(0)== sin(2 * pi)== 0'。你可以嘗試讓x運行到'np.pi/2.',你將得到一個非常不同的結果。 – ImportanceOfBeingErnest
@OP,你現在有足夠的信譽來選擇答案。 –